Use SHGetPathFromIDList instead of SHELL32_GetPathFromIDList.
This commit is contained in:
parent
0901b23206
commit
81b7509f3b
@ -176,7 +176,7 @@ HGLOBAL RenderFILENAMEA (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl)
|
|||||||
char szTemp[MAX_PATH], *szFileName;
|
char szTemp[MAX_PATH], *szFileName;
|
||||||
LPITEMIDLIST pidl;
|
LPITEMIDLIST pidl;
|
||||||
HGLOBAL hGlobal;
|
HGLOBAL hGlobal;
|
||||||
HRESULT hr;
|
BOOL bSuccess;
|
||||||
|
|
||||||
TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl);
|
TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl);
|
||||||
|
|
||||||
@ -185,9 +185,9 @@ HGLOBAL RenderFILENAMEA (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl)
|
|||||||
if (!pidl)
|
if (!pidl)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
hr = SHELL_GetPathFromIDListA(pidl, szTemp, MAX_PATH);
|
bSuccess = SHGetPathFromIDListA(pidl, szTemp);
|
||||||
SHFree(pidl);
|
SHFree(pidl);
|
||||||
if (FAILED(hr))
|
if (!bSuccess)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
size = strlen(szTemp) + 1;
|
size = strlen(szTemp) + 1;
|
||||||
@ -208,7 +208,7 @@ HGLOBAL RenderFILENAMEW (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl)
|
|||||||
WCHAR szTemp[MAX_PATH], *szFileName;
|
WCHAR szTemp[MAX_PATH], *szFileName;
|
||||||
LPITEMIDLIST pidl;
|
LPITEMIDLIST pidl;
|
||||||
HGLOBAL hGlobal;
|
HGLOBAL hGlobal;
|
||||||
HRESULT hr;
|
BOOL bSuccess;
|
||||||
|
|
||||||
TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl);
|
TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl);
|
||||||
|
|
||||||
@ -217,9 +217,9 @@ HGLOBAL RenderFILENAMEW (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl)
|
|||||||
if (!pidl)
|
if (!pidl)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
hr = SHELL_GetPathFromIDListW(pidl, szTemp, MAX_PATH);
|
bSuccess = SHGetPathFromIDListW(pidl, szTemp);
|
||||||
SHFree(pidl);
|
SHFree(pidl);
|
||||||
if (FAILED(hr))
|
if (!bSuccess)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
size = (strlenW(szTemp)+1) * sizeof(WCHAR);
|
size = (strlenW(szTemp)+1) * sizeof(WCHAR);
|
||||||
|
@ -1973,6 +1973,7 @@ static HRESULT WINAPI IShellLinkW_fnSetRelativePath(IShellLinkW * iface, LPCWSTR
|
|||||||
static HRESULT WINAPI IShellLinkW_fnResolve(IShellLinkW * iface, HWND hwnd, DWORD fFlags)
|
static HRESULT WINAPI IShellLinkW_fnResolve(IShellLinkW * iface, HWND hwnd, DWORD fFlags)
|
||||||
{
|
{
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
BOOL bSuccess;
|
||||||
|
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
||||||
|
|
||||||
@ -1983,9 +1984,9 @@ static HRESULT WINAPI IShellLinkW_fnResolve(IShellLinkW * iface, HWND hwnd, DWOR
|
|||||||
if (!This->sPath && This->pPidl) {
|
if (!This->sPath && This->pPidl) {
|
||||||
WCHAR buffer[MAX_PATH];
|
WCHAR buffer[MAX_PATH];
|
||||||
|
|
||||||
hr = SHELL_GetPathFromIDListW(This->pPidl, buffer, MAX_PATH);
|
bSuccess = SHGetPathFromIDListW(This->pPidl, buffer);
|
||||||
|
|
||||||
if (SUCCEEDED(hr) && *buffer) {
|
if (bSuccess && *buffer) {
|
||||||
This->sPath = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(buffer)+1)*sizeof(WCHAR));
|
This->sPath = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(buffer)+1)*sizeof(WCHAR));
|
||||||
if (!This->sPath)
|
if (!This->sPath)
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
|
@ -296,7 +296,7 @@ static HRESULT SHELL_ResolveShortCutW(LPWSTR wcmd, LPWSTR wargs, LPWSTR wdir, HW
|
|||||||
|
|
||||||
if (SUCCEEDED(hr) && *ppidl) {
|
if (SUCCEEDED(hr) && *ppidl) {
|
||||||
/* We got a PIDL instead of a file system path - try to translate it. */
|
/* We got a PIDL instead of a file system path - try to translate it. */
|
||||||
if (SUCCEEDED(SHELL_GetPathFromIDListW(*ppidl, wcmd, MAX_PATH))) {
|
if (SHGetPathFromIDListW(*ppidl, wcmd)) {
|
||||||
SHFree(*ppidl);
|
SHFree(*ppidl);
|
||||||
*ppidl = NULL;
|
*ppidl = NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user