diff --git a/dlls/shell32/pidl.c b/dlls/shell32/pidl.c index 308463670c7..dc1af4e5ad4 100644 --- a/dlls/shell32/pidl.c +++ b/dlls/shell32/pidl.c @@ -1162,17 +1162,14 @@ LPITEMIDLIST _ILCreateValue(WIN32_FIND_DATAA * stffile) LPITEMIDLIST _ILCreateSpecial(LPCSTR szGUID) { - IID iid; - WCHAR buffer[40]; + IID iid; - if (!MultiByteToWideChar( CP_ACP, 0, szGUID, -1, buffer, sizeof(buffer)/sizeof(WCHAR) )) - return NULL; - - if (! SUCCEEDED (CLSIDFromString( buffer, &iid ))) { - ERR("%s is not a GUID\n", szGUID); - return NULL; - } - return _ILCreate(PT_MYCOMP, &iid, sizeof(IID)); + if (!SUCCEEDED(SHCLSIDFromStringA(szGUID, &iid))) + { + ERR("%s is not a GUID\n", szGUID); + return NULL; + } + return _ILCreate(PT_MYCOMP, &iid, sizeof(IID)); } /************************************************************************** diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c index b1b0371c3e6..1253c4459dd 100644 --- a/dlls/shell32/shellole.c +++ b/dlls/shell32/shellole.c @@ -42,7 +42,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); -DWORD WINAPI SHCLSIDFromStringA (LPCSTR clsid, CLSID *id); extern HRESULT WINAPI IFSFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv); const WCHAR sShell32[12] = {'S','H','E','L','L','3','2','.','D','L','L','\0'}; diff --git a/dlls/shell32/shfldr_desktop.c b/dlls/shell32/shfldr_desktop.c index 621cf841a9d..a87c0c30034 100644 --- a/dlls/shell32/shfldr_desktop.c +++ b/dlls/shell32/shfldr_desktop.c @@ -205,7 +205,7 @@ static HRESULT WINAPI ISF_Desktop_fnParseDisplayName (IShellFolder2 * iface, if (lpszDisplayName[0] == ':' && lpszDisplayName[1] == ':') { szNext = GetNextElementW (lpszDisplayName, szElement, MAX_PATH); TRACE ("-- element: %s\n", debugstr_w (szElement)); - CLSIDFromString (szElement + 2, &clsid); + SHCLSIDFromStringW (szElement + 2, &clsid); pidlTemp = _ILCreate (PT_MYCOMP, &clsid, sizeof (clsid)); } else if (PathGetDriveNumberW (lpszDisplayName) >= 0) { /* it's a filesystem path with a drive. Let MyComputer parse it */