shell32: Implement undocumented IsLFNDriveA/W/AW

Rolf Kalbermatter rolf.kalbermatter at citeng.com
Fri Sep 26 15:28:19 CDT 2003


Changelog
  - dlls/shell32/shell32.spec
    Added IsLFNDriveA/W/AW exports and two more stubs
  - dlls/shell32/shellpath.c
    Implemented IsLFNDriveA/W/AW based on the previously existing IsLFNDrive

License: X11

Rolf Kalbermatter

Index: dlls/shell32/shell32.spec
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32.spec,v
retrieving revision 1.76
diff -u -r1.76 shell32.spec
--- dlls/shell32/shell32.spec	25 Sep 2003 20:26:28 -0000	1.76
+++ dlls/shell32/shell32.spec	26 Sep 2003 20:04:18 -0000
@@ -35,6 +35,8 @@
   38 stdcall PathStripPath(ptr)PathStripPathAW
   39 stdcall PathIsUNC (ptr) PathIsUNCAW
   40 stdcall PathIsRelative (ptr) PathIsRelativeAW
+  41 stdcall IsLFNDriveA(str)
+  42 stdcall IsLFNDrive(ptr) IsLFNDriveAW
   43 stdcall PathIsExe (ptr) PathIsExeAW
   45 stdcall PathFileExists(ptr) PathFileExistsAW
   46 stdcall PathMatchSpec (ptr ptr) PathMatchSpecAW
@@ -92,6 +94,7 @@
   98 stdcall SHGetRealIDL (ptr ptr ptr)
   99 stdcall SetAppStartingCursor (long long)
  100 stdcall SHRestricted(long)
+
  102 stdcall SHCoCreateInstance(ptr ptr long ptr ptr)
  103 stdcall SignalFileOpen(long)
  104 stdcall FileMenu_DeleteAllItems(long)
@@ -109,7 +112,7 @@
  116 stdcall FileMenu_TrackPopupMenuEx (long long long long long long)
  117 stdcall FileMenu_DeleteItemByCmd(long long)
  118 stdcall FileMenu_Destroy (long)
- 119 stdcall IsLFNDrive(str) IsLFNDriveA
+ 119 stdcall IsLFNDriveW(wstr)
  120 stdcall FileMenu_AbortInitMenu ()
  121 stdcall SHFlushClipboard ()
  122 stdcall RunDLL_CallEntry16 (long long long long long) #name wrong?
@@ -138,6 +141,7 @@
  146 stdcall RLBuildListOfPaths()
  147 stdcall SHCLSIDFromString(long long) SHCLSIDFromStringAW
  149 stdcall SHFind_InitMenuPopup(long long long long)
+
  151 stdcall SHLoadOLE (long)
  152 stdcall ILGetSize(ptr)
  153 stdcall ILGetNext(ptr)
@@ -174,6 +178,8 @@
  184 stdcall ArrangeWindows(long long long long long)
  185 stub SHHandleDiskFull
  186 stdcall ILGetDisplayNameEx(ptr ptr ptr long)
+ 187 stub ILGetPseudoNameW
+ 188 stub ShellDDEInit
  189 stdcall ILCreateFromPathA(str)
  190 stdcall ILCreateFromPathW(wstr)
  195 stdcall SHFree(ptr)

Index: dlls/shell32/shellpath.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shellpath.c,v
retrieving revision 1.71
diff -u -r1.71 shellpath.c
--- dlls/shell32/shellpath.c	8 Sep 2003 18:47:10 -0000	1.71
+++ dlls/shell32/shellpath.c	26 Sep 2003 20:04:18 -0000
@@ -426,18 +426,37 @@
 }
 
 /*************************************************************************
- * IsLFNDrive		[SHELL32.119]
- *
- * NOTES
- *     exported by ordinal Name
+ * IsLFNDriveW		[SHELL32.119]
  */
-BOOL WINAPI IsLFNDriveA(LPCSTR lpszPath)
+BOOL WINAPI IsLFNDriveW(LPCWSTR lpszPath)
 {
     DWORD	fnlen;
 
-    if (!GetVolumeInformationA(lpszPath,NULL,0,NULL,&fnlen,NULL,NULL,0))
+    if (!GetVolumeInformationW(lpszPath, NULL, 0, NULL, &fnlen, NULL, NULL, 0))
 	return FALSE;
     return fnlen>12;
+}
+
+/*************************************************************************
+ * IsLFNDriveA		[SHELL32.41]
+ */
+BOOL WINAPI IsLFNDriveA(LPCSTR lpszPath)
+{
+    DWORD	fnlen;
+
+    if (!GetVolumeInformationA(lpszPath, NULL, 0, NULL, &fnlen, NULL, NULL, 0))
+	return FALSE;
+    return fnlen > 12;
+}
+
+/*************************************************************************
+ * IsLFNDrive		[SHELL32.42]
+ */
+BOOL WINAPI IsLFNDriveAW(LPCVOID lpszPath)
+{
+	if (SHELL_OsIsUnicode())
+	  return IsLFNDriveW(lpszPath);
+	return IsLFNDriveA(lpszPath);
 }
 
 /*
 





More information about the wine-patches mailing list