diff --git a/dlls/shell32/.cvsignore b/dlls/shell32/.cvsignore index 884d8e447c1..68f59dcded7 100644 --- a/dlls/shell32/.cvsignore +++ b/dlls/shell32/.cvsignore @@ -1,4 +1,5 @@ Makefile -shell32.spec.c shell.spec.c +shell32.spec.c +shlwapi.spec.c shres.s diff --git a/dlls/shell32/Makefile.in b/dlls/shell32/Makefile.in index 2c6f38d6e38..a28c3e92af8 100644 --- a/dlls/shell32/Makefile.in +++ b/dlls/shell32/Makefile.in @@ -6,7 +6,10 @@ VPATH = @srcdir@ MODULE = shell32 WRCEXTRA = -s -p$(MODULE) -SPEC_SRCS = shell32.spec shell.spec +SPEC_SRCS = \ + shell.spec \ + shell32.spec \ + shlwapi.spec C_SRCS = \ brsfolder.c \ diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c index e59c7d588fb..e0ca91e0ed6 100644 --- a/dlls/shell32/shellord.c +++ b/dlls/shell32/shellord.c @@ -930,6 +930,11 @@ HRESULT WINAPI IsUserAdmin(void) * NOTES * the pidl is for STRRET OFFSET */ +HRESULT WINAPI StrRetToBufA (LPSTRRET src, LPITEMIDLIST pidl, LPSTR dest, DWORD len) +{ + return StrRetToStrNA(dest, len, src, pidl); +} + HRESULT WINAPI StrRetToStrNA (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl) { TRACE("dest=0x%p len=0x%lx strret=0x%p pidl=%p stub\n",dest,len,src,pidl); @@ -960,6 +965,11 @@ HRESULT WINAPI StrRetToStrNA (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST return S_OK; } +HRESULT WINAPI StrRetToBufW (LPSTRRET src, LPITEMIDLIST pidl, LPWSTR dest, DWORD len) +{ + return StrRetToStrNW(dest, len, src, pidl); +} + HRESULT WINAPI StrRetToStrNW (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl) { TRACE("dest=0x%p len=0x%lx strret=0x%p pidl=%p stub\n",dest,len,src,pidl); diff --git a/dlls/shell32/shlwapi.spec b/dlls/shell32/shlwapi.spec new file mode 100644 index 00000000000..2e07eff2d37 --- /dev/null +++ b/dlls/shell32/shlwapi.spec @@ -0,0 +1,398 @@ +name shlwapi +type win32 + +1 stub stub_01 +2 stub stub_02 +3 stub stub_03 +4 stub stub_04 +5 stub stub_05 +6 stub stub_06 +7 stub stub_07 +8 stub stub_08 +9 stub stub_09 +10 stub stub_10 +11 stub stub_11 +12 stub stub_12 +13 stub stub_13 +14 stub stub_14 +15 stub stub_15 +16 stub stub_16 +17 stub stub_17 +18 stub stub_18 +19 stub stub_19 +20 stub stub_20 +21 stub stub_21 +22 stub stub_22 +23 stub stub_23 +24 stub stub_24 +25 stub stub_25 +26 stub stub_26 +27 stub stub_27 +28 stub stub_28 +29 stub stub_29 +30 stub stub_30 +31 stub stub_31 +32 stub stub_32 +33 stub stub_33 +34 stub stub_34 +35 stub stub_35 +36 stub stub_36 +37 stub stub_37 +38 stub stub_38 +39 stub stub_39 +40 stub stub_40 +41 stub stub_41 +42 stub stub_42 +43 stub stub_43 +44 stub stub_44 +45 stub stub_45 +46 stub stub_46 +47 stub stub_47 +48 stub stub_48 +49 stub stub_49 +50 stub stub_50 +51 stub stub_51 +52 stub stub_52 +53 stub stub_53 +54 stub stub_54 +55 stub stub_55 +56 stub stub_56 +57 stub stub_57 +58 stub stub_58 +59 stub stub_59 +60 stub stub_60 +61 stub stub_61 +62 stub stub_62 +63 stub stub_63 +64 stub stub_64 +65 stub stub_65 +66 stub stub_66 +67 stub stub_67 +68 stub stub_68 +69 stub stub_69 +70 stub stub_70 +71 stub stub_71 +72 stub stub_72 +73 stub stub_73 +74 stub stub_74 +75 stub stub_75 +76 stub stub_76 +77 stub stub_77 +78 stub stub_78 +79 stub stub_79 +80 stub stub_80 +81 stub stub_81 +82 stub stub_82 +83 stub stub_83 +84 stub stub_84 +85 stub stub_85 +86 stub stub_86 +87 stub stub_87 +88 stub stub_88 +89 stub stub_89 +90 stub stub_90 +91 stub stub_91 +92 stub stub_92 +93 stub stub_93 +94 stub stub_94 +95 stub stub_95 +96 stub stub_96 +97 stub stub_97 +98 stub stub_98 +99 stub stub_99 +100 stub stub_100 +101 stub stub_101 +102 stub stub_102 +103 stub stub_103 +104 stub stub_104 +105 stub stub_105 +106 stub stub_106 +107 stub stub_107 +108 stub stub_108 +109 stub stub_109 +110 stub stub_110 +111 stub stub_111 +112 stub stub_112 +113 stub stub_113 +114 stub stub_114 +115 stub stub_115 +116 stub stub_116 +117 stub stub_117 +118 stub stub_118 +119 stub stub_119 +120 stub stub_120 +121 stub stub_121 +122 stub stub_122 +123 stub stub_123 +124 stub stub_124 +125 stub stub_125 +126 stub stub_126 +127 stub stub_127 +128 stub stub_128 +129 stub stub_129 +130 stub stub_130 +131 stub stub_131 +132 stub stub_132 +133 stub stub_133 +134 stub stub_134 +135 stub stub_135 +136 stub stub_136 +137 stub stub_137 +138 stub stub_138 +139 stub stub_139 +140 stub stub_140 +141 stub stub_141 +142 stub stub_142 +143 stub stub_143 +144 stub stub_144 +145 stub stub_145 +146 stub stub_146 +147 stub stub_147 +148 stub stub_148 +149 stub stub_149 +150 stub stub_150 +151 stub stub_151 +152 stub stub_152 +153 stub stub_153 +154 stub stub_154 +155 stub stub_155 +156 stub stub_156 +157 stub stub_157 +158 stub stub_158 +159 stub stub_159 +160 stub stub_160 +161 stub stub_161 +162 stub ChrCmpIA +163 stub ChrCmpIW +164 stub DllGetVersion +165 stub GetMenuPosFromID +166 stub HashData +167 stub IntlStrEqWorkerA +168 stub IntlStrEqWorkerW +169 stdcall PathAddBackslashA (ptr) PathAddBackslashA +170 stdcall PathAddBackslashW (ptr) PathAddBackslashW +171 stub PathAddExtensionA +172 stub PathAddExtensionW +173 stdcall PathAppendA (str str) PathAppendA +174 stub PathAppendW +175 stdcall PathBuildRootA (ptr long) PathBuildRootA +176 stub PathBuildRootW +177 stub PathCanonicalizeA +178 stub PathCanonicalizeW +179 stdcall PathCombineA (ptr ptr ptr) PathCombineA +180 stdcall PathCombineW (ptr ptr ptr) PathCombineW +181 stub PathCommonPrefixA +182 stub PathCommonPrefixW +183 stub PathCompactPathA +184 stub PathCompactPathExA +185 stub PathCompactPathExW +186 stub PathCompactPathW +187 stub PathCreateFromUrlA +188 stub PathCreateFromUrlW +189 stdcall PathFileExistsA (str) PathFileExistsA +190 stub PathFileExistsW +191 stdcall PathFindExtensionA (ptr) PathFindExtensionA +192 stdcall PathFindExtensionW (ptr) PathFindExtensionW +193 stdcall PathFindFileNameA (ptr) PathFindFilenameA +194 stdcall PathFindFileNameW (ptr) PathFindFilenameW +195 stub PathFindNextComponentA +196 stub PathFindNextComponentW +197 stdcall PathFindOnPathA (ptr ptr) PathFindOnPathA +198 stdcall PathFindOnPathW (ptr ptr) PathFindOnPathW +199 stdcall PathGetArgsA (str) PathGetArgsA +200 stdcall PathGetArgsW (str) PathGetArgsW +201 stub PathGetCharTypeA +202 stub PathGetCharTypeW +203 stdcall PathGetDriveNumberA (str) PathGetDriveNumber +204 stub PathGetDriveNumberW #(str) PathGetDriveNumber +205 stub PathIsContentTypeA +206 stub PathIsContentTypeW +207 stub PathIsDirectoryA +208 stub PathIsDirectoryW +209 stub PathIsFileSpecA +210 stub PathIsFileSpecW +211 stub PathIsPrefixA +212 stub PathIsPrefixW +213 stdcall PathIsRelativeA (ptr) PathIsRelativeA +214 stdcall PathIsRelativeW (ptr) PathIsRelativeW +215 stub PathIsRootA +216 stub PathIsRootW +217 stub PathIsSameRootA +218 stub PathIsSameRootW +219 stub PathIsSystemFolderA +220 stub PathIsSystemFolderW +221 stub PathIsUNCA +222 stub PathIsUNCServerA +223 stub PathIsUNCServerShareA +224 stub PathIsUNCServerShareW +225 stub PathIsUNCServerW +226 stdcall PathIsUNCW (ptr) PathIsUNCW +227 stdcall PathIsURLA (ptr) PathIsUNCA +228 stub PathIsURLW +229 stub PathMakePrettyA +230 stub PathMakePrettyW +231 stub PathMakeSystemFolderA +232 stub PathMakeSystemFolderW +233 stdcall PathMatchSpecA (str str) PathMatchSpecA +234 stdcall PathMatchSpecW (str str) PathMatchSpecW +235 stub PathParseIconLocationA +236 stub PathParseIconLocationW +237 stdcall PathQuoteSpacesA (ptr) PathQuoteSpacesW +238 stdcall PathQuoteSpacesW (ptr) PathQuoteSpacesW +239 stub PathRelativePathToA +240 stub PathRelativePathToW +241 stub PathRemoveArgsA +242 stub PathRemoveArgsW +243 stub PathRemoveBackslashA +244 stub PathRemoveBackslashW +245 stub PathRemoveBlanksA +246 stub PathRemoveBlanksW +247 stub PathRemoveExtensionA +248 stub PathRemoveExtensionW +249 stdcall PathRemoveFileSpecA (str) PathRemoveFileSpecA +250 stub PathRemoveFileSpecW +251 stub PathRenameExtensionA +252 stub PathRenameExtensionW +253 stub PathSearchAndQualifyA +254 stub PathSearchAndQualifyW +255 stdcall PathSetDlgItemPathA (long long ptr) PathSetDlgItemPathA +256 stdcall PathSetDlgItemPathW (long long ptr) PathSetDlgItemPathW +257 stub PathSkipRootA +258 stub PathSkipRootW +259 stub PathStripPathA +260 stub PathStripPathW +261 stub PathStripToRootA +262 stub PathStripToRootW +263 stub PathUnmakeSystemFolderA +264 stub PathUnmakeSystemFolderW +265 stdcall PathUnquoteSpacesA (str) PathUnquoteSpacesA +266 stdcall PathUnquoteSpacesW (str) PathUnquoteSpacesW +267 stub SHCreateShellPalette +268 stub SHDeleteEmptyKeyA +269 stub SHDeleteEmptyKeyW +270 stub SHDeleteKeyA +271 stub SHDeleteKeyW +272 stub SHDeleteOrphanKeyA +273 stub SHDeleteOrphanKeyW +274 stub SHDeleteValueA +275 stub SHDeleteValueW +276 stub SHEnumKeyExA +277 stub SHEnumKeyExW +278 stub SHEnumValueA +279 stub SHEnumValueW +280 stub SHGetInverseCMAP +281 stub SHGetValueA +282 stub SHGetValueW +283 stub SHIsLowMemoryMachine +284 stub SHOpenRegStreamA +285 stub SHOpenRegStreamW +286 stub SHQueryInfoKeyA +287 stub SHQueryInfoKeyW +288 stub SHQueryValueExA +289 stub SHQueryValueExW +290 stub SHRegCloseUSKey +291 stub SHRegCreateUSKeyA +292 stub SHRegCreateUSKeyW +293 stub SHRegDeleteEmptyUSKeyA +294 stub SHRegDeleteEmptyUSKeyW +295 stub SHRegDeleteUSValueA +296 stub SHRegDeleteUSValueW +297 stub SHRegEnumUSKeyA +298 stub SHRegEnumUSKeyW +299 stub SHRegEnumUSValueA +300 stub SHRegEnumUSValueW +301 stub SHRegGetBoolUSValueA +302 stub SHRegGetBoolUSValueW +303 stub SHRegGetUSValueA +304 stub SHRegGetUSValueW +305 stub SHRegOpenUSKeyA +306 stub SHRegOpenUSKeyW +307 stub SHRegQueryInfoUSKeyA +308 stub SHRegQueryInfoUSKeyW +309 stub SHRegQueryUSValueA +310 stub SHRegQueryUSValueW +311 stub SHRegSetUSValueA +312 stub SHRegSetUSValueW +313 stub SHRegWriteUSValueA +314 stub SHRegWriteUSValueW +315 stub SHSetValueA +316 stub SHSetValueW +317 stub StrCSpnA +318 stub StrCSpnIA +319 stub StrCSpnIW +320 stub StrCSpnW +321 stub StrCatW +322 stub StrChrA +323 stub StrChrIA +324 stub StrChrIW +325 stdcall StrChrW (ptr ptr) StrChrW +326 stub StrCmpIW +327 stub StrCmpNA +328 stub StrCmpNIA +329 stdcall StrCmpNIW (wstr wstr long) StrCmpNIW +330 stub StrCmpNW +331 stub StrCmpW +332 stub StrCpyNW +333 stub StrCpyW +334 stub StrDupA +335 stub StrDupW +336 stub StrFormatByteSizeA +337 stub StrFormatByteSizeW +338 stub StrFromTimeIntervalA +339 stub StrFromTimeIntervalW +340 stub StrIsIntlEqualA +341 stub StrIsIntlEqualW +342 stub StrNCatA +343 stub StrNCatW +344 stub StrPBrkA +345 stub StrPBrkW +346 stub StrRChrA +347 stub StrRChrIA +348 stub StrRChrIW +349 stdcall StrRChrW (wstr wstr long) StrRChrW +350 stub StrRStrIA +351 stub StrRStrIW +352 stub StrSpnA +353 stub StrSpnW +354 stub StrStrA +355 stub StrStrIA +356 stub StrStrIW +357 stub StrStrW +358 stub StrToIntA +359 stub StrToIntExA +360 stub StrToIntExW +361 stub StrToIntW +362 stub StrTrimA +363 stub StrTrimW +364 stub UrlApplySchemeA +365 stub UrlApplySchemeW +366 stub UrlCanonicalizeA +367 stub UrlCanonicalizeW +368 stub UrlCombineA +369 stub UrlCombineW +370 stub UrlCompareA +371 stub UrlCompareW +372 stub UrlCreateFromPathA +373 stub UrlCreateFromPathW +374 stub UrlEscapeA +375 stub UrlEscapeW +376 stub UrlGetLocationA +377 stub UrlGetLocationW +378 stub UrlGetPartA +379 stub UrlGetPartW +380 stub UrlHashA +381 stub UrlHashW +382 stub UrlIsA +383 stub UrlIsNoHistoryA +384 stub UrlIsNoHistoryW +385 stub UrlIsOpaqueA +386 stub UrlIsOpaqueW +387 stub UrlIsW +388 stub UrlUnescapeA +389 stub UrlUnescapeW + +# exported in later versions +400 stdcall StrRetToBufA (ptr ptr ptr long) StrRetToBufA +401 stdcall StrRetToBufW (ptr ptr ptr long) StrRetToBufW +#402 stdcall StrRetToStrA (ptr ptr ptr) StrRetToStrA +#403 stdcall StrRetToStrW (ptr ptr ptr) StrRetToStrW diff --git a/loader/loadorder.c b/loader/loadorder.c index 0e9e533bd9a..e2de71328ea 100644 --- a/loader/loadorder.c +++ b/loader/loadorder.c @@ -39,6 +39,7 @@ static struct tagDllOverride { {"comdlg32,commdlg", "elfdll,builtin,native"}, {"version,ver", "elfdll,builtin,native"}, {"shell32,shell", "builtin,native"}, + {"shlwapi", "native,builtin"}, {"lz32,lzexpand", "builtin,native"}, {"commctrl,comctl32", "builtin,native"}, {"wsock32,winsock", "builtin"}, diff --git a/relay32/builtin32.c b/relay32/builtin32.c index d08653c56f6..bdfa707084e 100644 --- a/relay32/builtin32.c +++ b/relay32/builtin32.c @@ -82,6 +82,7 @@ extern const BUILTIN32_DESCRIPTOR OLESVR32_Descriptor; extern const BUILTIN32_DESCRIPTOR PSAPI_Descriptor; extern const BUILTIN32_DESCRIPTOR RASAPI32_Descriptor; extern const BUILTIN32_DESCRIPTOR SHELL32_Descriptor; +extern const BUILTIN32_DESCRIPTOR SHLWAPI_Descriptor; extern const BUILTIN32_DESCRIPTOR TAPI32_Descriptor; extern const BUILTIN32_DESCRIPTOR USER32_Descriptor; extern const BUILTIN32_DESCRIPTOR VERSION_Descriptor; @@ -134,6 +135,7 @@ static BUILTIN32_DLL BuiltinDLLs[] = { &PSAPI_Descriptor, 0, 0, NULL }, { &RASAPI32_Descriptor, 0, 0, NULL }, { &SHELL32_Descriptor, BI32_DANGER, 0, &shell32_ResourceDescriptor }, + { &SHLWAPI_Descriptor, 0, 0, NULL }, { &TAPI32_Descriptor, 0, 0, NULL }, { &USER32_Descriptor, 0, 0, &user32_ResourceDescriptor }, { &VERSION_Descriptor, 0, 0, NULL },