The Win32 shell lightweight utility API (shlwapi.dll
) is a cornucopia of useful functions. It appears to be Microsoft’s “dumping ground” for functions without a better home. (I believe Microsoft internal DLL ownership also played a part.) Had I known about shlwapi
years ago, it would have saved me considerable programming effort.
Particularly useful are SHCreateStreamOnFile
, the path family of functions (e.g. PathCombine
), and the registry family of functions (e.g. SHRegGetPath
).
However, it appears that Microsoft is slowly moving functionality out of shlwapi
into other places. For example, many of shlwapi
’s string handling functions have better-designed replacements in Microsoft’s safe string library strsafe
. Similarly, shlwapi
’s SHRegGetValue
has been deprecated in favor of advapi32.dll
’s RegGetValue
.
Be sure to look at all the functionality shlwapi
provides — you may find a hidden gem of your own!