SHLWAPI Path functions

Jon Griffiths jon_p_griffiths at
Tue Mar 12 06:17:46 CST 2002


After a long spell away from a network connection, its time for some
more SHLWAPI merging.

This patch merges my path function changes. For a summary see the
Changelog, and the detailed changelog for more information.

I have a Winelib app for testing these calls; If someone wants to
convert it to the new testing framework, let me know and I'll mail
you a copy.


COPYRIGHT: All original work contained in this email is released
under the terms of the old Wine license (LICENSE.OLD in the
distribution). This means that any new functions I have created can
be incorporated into a non LGPL Wine fork, for example. These terms
apply only to the portions of this patch Which I have created, and
they are not applicable to this work once it is integrated into the
LGPL Wine tree (i.e they apply to this email only). In the event that
my original work constitutes a derived work under the terms of the
LGPL, then the terms of that license apply instead.


  Jon Griffiths (jon_p_griffiths at
  +dlls/shlwapi/path.c dlls/shlwapi/shlwapi.spec
   dlls/shlwapi/ordinal.h dlls/shlwapi/ordinal.c
   Document, implement/fix and test 110+ Path functions.
   Share the GET_FUNC macro, other places than ordinal.c need it.

  +dlls/shell32/shellpath.c dlls/shell32/undocshell.h
   Update shell xxxAW wrapper prototypes for fixed SHLWAPI functions.

Detailed Changelog:

All functions now have consistent TRACEs, parameter names and style.
The majority have been fairly thoroughly tested.
Complex routines do the right thing(TM) and forward to the Unicode


[Impl]  New implementation from scratch
[Add]   Added
[Doc]   Documented
[Args]  Protect against invalid arguments
[Bugs]  Fixed bugs in old behaviour
[Proto] Fixed Prototype

Function          [Impl] [Add] [Doc] [Args] [Bugs] [Proto]
PathAppendA                      X     X
PathAppendW                      X     X
PathCombineA        X            X     X      X
PathCombineW        X            X     X      X
PathAddBackslashA                X     X      X
PathAddBackslashW                X     X      X
PathBuildRootA                   X     X
PathBuildRootW                   X     X
PathFindFileNameA                X     X      X
PathFindFileNameW                X     X      X
PathFindExtensionA               X     X
PathFindExtensionW               X     X
PathGetArgsA                     X     X
PathGetArgsW                     X     X
PathGetDriveNumberA              X            X
PathGetDriveNumberW              X
PathRemoveFileSpecA              X            X
PathRemoveFileSpecA              X            X
PathStripPathA                   X     X
PathStripPathW                   X     X
PathStripToRootA                 X
PathStripToRootW                 X
PathRemoveArgsA                  X            X
PathRemoveArgsW                  X            X
PathRemoveExtensionA             X     X
PathRemoveExtensionW             X     X
PathRemoveBackslashA             X
PathRemoveBackslashW             X
PathRemoveBlanksA                X            X
PathRemoveBlanksW                X            X
PathQuoteSpacesA                 X     X             X
PathQuoteSpacesW                 X     X             X
PathUnquoteSpacesA  X            X     X
PathUnquoteSpacesW  X            X     X
PathParseIconLocationA           X     X      X
PathParseIconLocationW           X     X      X
PathFindOnPathA     X            X
PathFindOnPathW     X            X
SHLWAPI_3                 X      X
SHLWAPI_4                 X      X
SHLWAPI_5                 X      X
SHLWAPI_6                 X      X
PathCompactPathExA  X            X     X
PathCompactPathExW               X     X
PathIsUNCA                       X
PathIsUNCW                       X
PathIsRelativeA     X            X           X
PathIsRelativeW     X            X           X
PathIsRootA                      X     X
PathIsRootW                      X     X
PathIsDirectoryA    X            X     X     X
PathIsDirectoryW    X            X     X     X
PathFileExistsA     X            X     X     X
PathFileExistsW     X            X     X     X
PathIsSameRootA     X            X     X     X
PathIsSameRootW     X            X     X     X
PathIsURLA                       X
PathIsURL                        X
PathIsContentTypeA  X            X
PathIsContentTypeW  X            X
PathIsFileSpecA     X            X
PathIsFileSpecW     X            X
PathIsPrefixA       X            X
PathIsPrefixW       X            X
PathIsSystemFolderA X            X
PathIsSystemFolderW X            X
PathIsUNCServerA    X            X     X
PathIsUNCServerW    X            X     X
PathIsUNCS...ShareA X            X
PathIsUNCS...ShareW X            X
PathCanonicalizeA   X            X           X
PathCanonicalizeW   X            X           X
PathFindNextCo...tA              X
PathFindNextCo...tW              X
PathAddExtensionA   X            X     X
PathAddExtensionW   X            X     X
PathMakePrettyA     X            X
PathMakePrettyW     X            X
PathCommonPrefixA   X            X
PathCommonPrefixW   X            X
PathCompactPathA    X            X
PathCompactPathW    X            X
PathGetCharTypeA    X            X           X
PathGetCharTypeW    X            X           X
PathMakeS...FolderA X            X
PathMakeS...FolderW X            X
PathRenameExtensionA             X
PathRenameExtensionW             X
PathSearchAndQ...fyA             X
PathSearchAndQ...fyW             X
PathSkipRootA       X            X
PathSkipRootW       X            X
PathCreateFromUrlA               X
PathCreateFromUrlW               X
PathRelativePathToA X            X
PathRelativePathToW X            X
PathUnmakeSy...derA X            X
PathUnmakeSy...derW X            X
PathSetDlgItemPathA X            X                   X
PathSetDlgItemPathW X            X                   X
PathIsNetworkPathA        X      X
PathIsNetworkPathW        X      X
PathIsLFNFileSpecA        X      X
PathIsLFNFileSpecW        X      X
PathIsDir...yEmptyA       X      X
PathIsDir...yEmptyW       X      X
PathFindS...xArrayA       X      X                   X
PathFindS...xArrayW       X      X                   X
PathUndecorateA           X      X
PathUndecorateW           X      X
PathMatchSpecA                   X
PathMatchSpecW                   X

"Don't wait for the seas to part, or messiahs to come;
 Don't you sit around and waste this chance..." - Live

jon_p_griffiths at

Do You Yahoo!?
Try FREE Yahoo! Mail - the world's greatest free email!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: shlwapi_path.diff.bz2
Type: application/octet-stream
Size: 20492 bytes
Desc: shlwapi_path.diff.bz2
Url :

More information about the wine-patches mailing list