shell32: Handle shell: urls internal in ParseDisplayName instead of passing them to shdocvw.

This commit is contained in:
Aric Stewart 2009-06-26 17:01:08 +09:00 committed by Alexandre Julliard
parent b44596ffff
commit 9224609589
1 changed files with 13 additions and 1 deletions

View File

@ -187,7 +187,19 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface,
}
else if (strchrW(lpszDisplayName,':'))
{
return IEParseDisplayNameWithBCW(CP_ACP,lpszDisplayName,pbc,ppidl);
PARSEDURLW urldata;
urldata.cbSize = sizeof(urldata);
ParseURLW(lpszDisplayName,&urldata);
if (urldata.nScheme == URL_SCHEME_SHELL) /* handle shell: urls */
{
TRACE ("-- shell url: %s\n", debugstr_w(urldata.pszSuffix));
SHCLSIDFromStringW (urldata.pszSuffix+2, &clsid);
pidlTemp = _ILCreateGuid (PT_GUID, &clsid);
}
else
return IEParseDisplayNameWithBCW(CP_ACP,lpszDisplayName,pbc,ppidl);
}
else
{