SHLWAPI 5.0 Named Exports

It is version 5.0 that added the most weight to the SHLWAPI functional interface. However, by far the most are exported only by ordinal (and undocumented).

With only a handful of mostly trivial exceptions, all the named exports that first appeared in SHLWAPI version 5.0 are documented. Moreover, they are all said correctly to require “version 5.0 or later” or similar, except that one is said to be available as early as version 4.71.

Among the exceptions regarding documentation status, SHCreateStreamOnFileAOld and SHCreateStreamOnFileWOld (counted as one distinct function) are just aliases for SHCreateStreamOnFileA and SHCreateStreamOnFileW respectively, and anyway cease to exist in later builds of SHLWAPI version 5.0. The function _SHGetInstanceExplorer@4 also disappears in later builds. The function named SHCreateStreamWrapper is in these later builds implemented to fail trivially.

The function SHRegisterValidateTemplate, introduced with later builds of SHLWAPI version 5.0, appears to be genuinely undocumented.

Function Remarks
AssocCreate  
AssocQueryKeyA  
AssocQueryKeyW  
AssocQueryStringA  
AssocQueryStringW  
AssocQueryStringByKeyA  
AssocQueryStringByKeyW  
ColorAdjustLuma  
ColorHLSToRGB  
ColorRGBToHLS  
PathFindSuffixArrayA  
PathFindSuffixArrayW  
PathIsDirectoryEmptyA  
PathIsDirectoryEmptyW  
PathIsLFNFileSpecA  
PathIsLFNFileSpecW  
PathIsNetworkPathA  
PathIsNetworkPathW  
PathUndecorateA  
PathUndecorateW  
PathUnExpandEnvStringsA begins in Windows 2000
PathUnExpandEnvStringsW begins in Windows 2000
SHAutoComplete  
SHCopyKeyA  
SHCopyKeyW  
SHCreateStreamOnFileA  
SHCreateStreamOnFileW  
SHCreateStreamOnFileAOld discontinued in Windows 2000
SHCreateStreamOnFileWOld discontinued in Windows 2000
SHCreateStreamWrapper retired in 6.1 and higher
SHGetThreadRef  
SHOpenRegStream2A  
SHOpenRegStream2W  
SHRegDuplicateHKey  
SHRegGetPathA begins in Windows 2000
SHRegGetPathW begins in Windows 2000
SHRegisterValidateTemplate begins in Windows 2000
SHRegSetPathA begins in Windows 2000
SHRegSetPathW begins in Windows 2000
SHSetThreadRef  
SHSkipJunction documented as requiring “version 4.71 or later”
SHStrDupA  
SHStrDupW  
StrCatBuffA  
StrCatBuffW  
StrFormatByteSize64A  
StrFormatKBSizeA  
StrFormatKBSizeW  
StrRetToBufA  
StrRetToBufW  
StrRetToStrA  
StrRetToStrW  
_SHGetInstanceExplorer@4 before Windows 2000 only
wnsprintfA  
wnsprintfW  
wvnsprintfA  
wvnsprintfW  

Functions Previously Exported Only By Ordinal

It is typical practice by Microsoft, at least for functions in the Windows Shell, to leave undocumented functions unnamed as exports. Version 5.0 presents the first example of a SHLWAPI function that had been undocumented (e.g., in the January 1999 edition of the MSDN Library on CD) and exported only by ordinal, but which Microsoft decided to document. The function then becomes exported by name, while retaining its ordinal.

Function Ordinal First Availability
SHCreateThread 16 4.71