diff --git a/dlls/kernelbase/path.c b/dlls/kernelbase/path.c index a9105341fad..b4b31410a3a 100644 --- a/dlls/kernelbase/path.c +++ b/dlls/kernelbase/path.c @@ -4020,7 +4020,7 @@ HRESULT WINAPI UrlApplySchemeW(const WCHAR *url, WCHAR *out, DWORD *length, DWOR if (flags & URL_APPLY_GUESSFILE) { - if (*length > 1 && ':' == url[1]) + if ((*length > 1 && ':' == url[1]) || PathIsUNCW(url)) { res1 = *length; hr = url_create_from_path(url, out, &res1); diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index 9e04c6d7b6f..0cc14dc65bf 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -97,6 +97,11 @@ static const TEST_URL_APPLY TEST_APPLY[] = { {"u:\\windows", URL_APPLY_DEFAULT, S_OK, 17, "http://u:\\windows"}, {"file:///c:/windows", URL_APPLY_GUESSFILE , S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, {"aa:\\windows", URL_APPLY_GUESSFILE , S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, + {"\\\\server\\share", URL_APPLY_DEFAULT, S_OK, 21, "http://\\\\server\\share"}, + {"\\\\server\\share", URL_APPLY_GUESSFILE, S_OK, 19, "file://server/share"}, + {"\\\\server\\share", URL_APPLY_GUESSSCHEME, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, + {"file://server/share", URL_APPLY_GUESSFILE, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, + {"file://server/share", URL_APPLY_GUESSSCHEME, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, }; /* ################ */