mirror of
https://github.com/reactos/reactos.git
synced 2024-10-06 09:24:11 +00:00
[SHELL32]
- CDefView: Correct the check for SVSI_EDIT because SVSI_EDIT implies SVSI_SELECT. This actualyl fixes SVSI_SELECT to not cause a rename. [BROWSEUI] - ExplorerMessageLoop: Implement the /select parameter for explorer. svn path=/trunk/; revision=73158
This commit is contained in:
parent
3c58a339dc
commit
0814bc5358
|
@ -357,14 +357,40 @@ static HRESULT ExplorerMessageLoop(IEThreadParamBlock * parameters)
|
||||||
if (parameters && parameters->offsetF8)
|
if (parameters && parameters->offsetF8)
|
||||||
parameters->offsetF8->AddRef();
|
parameters->offsetF8->AddRef();
|
||||||
|
|
||||||
|
/* Handle /e parameter */
|
||||||
UINT wFlags = 0;
|
UINT wFlags = 0;
|
||||||
if ((parameters->dwFlags & SH_EXPLORER_CMDLINE_FLAG_E))
|
if ((parameters->dwFlags & SH_EXPLORER_CMDLINE_FLAG_E))
|
||||||
wFlags |= SBSP_EXPLOREMODE;
|
wFlags |= SBSP_EXPLOREMODE;
|
||||||
|
|
||||||
|
/* Handle /select parameter */
|
||||||
|
PUITEMID_CHILD pidlSelect = NULL;
|
||||||
|
if ((parameters->dwFlags & SH_EXPLORER_CMDLINE_FLAG_SELECT) &&
|
||||||
|
(ILGetNext(parameters->directoryPIDL) != NULL))
|
||||||
|
{
|
||||||
|
pidlSelect = ILClone(ILFindLastID(parameters->directoryPIDL));
|
||||||
|
ILRemoveLastID(parameters->directoryPIDL);
|
||||||
|
}
|
||||||
|
|
||||||
hResult = CShellBrowser_CreateInstance(parameters->directoryPIDL, wFlags, IID_PPV_ARG(IBrowserService2, &browser));
|
hResult = CShellBrowser_CreateInstance(parameters->directoryPIDL, wFlags, IID_PPV_ARG(IBrowserService2, &browser));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
|
|
||||||
|
if (pidlSelect != NULL)
|
||||||
|
{
|
||||||
|
CComPtr<IShellBrowser> pisb;
|
||||||
|
hResult = browser->QueryInterface(IID_PPV_ARG(IShellBrowser, &pisb));
|
||||||
|
if (SUCCEEDED(hResult))
|
||||||
|
{
|
||||||
|
CComPtr<IShellView> shellView;
|
||||||
|
hResult = pisb->QueryActiveShellView(&shellView);
|
||||||
|
if (SUCCEEDED(hResult))
|
||||||
|
{
|
||||||
|
shellView->SelectItem(pidlSelect, SVSI_SELECT|SVSI_ENSUREVISIBLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ILFree(pidlSelect);
|
||||||
|
}
|
||||||
|
|
||||||
while ((Ret = GetMessage(&Msg, NULL, 0, 0)) != 0)
|
while ((Ret = GetMessage(&Msg, NULL, 0, 0)) != 0)
|
||||||
{
|
{
|
||||||
if (Ret == -1)
|
if (Ret == -1)
|
||||||
|
|
|
@ -2203,7 +2203,7 @@ HRESULT WINAPI CDefView::SelectItem(PCUITEMID_CHILD pidl, UINT uFlags)
|
||||||
lvItem.iItem++;
|
lvItem.iItem++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(uFlags & SVSI_EDIT)
|
if((uFlags & SVSI_EDIT) == SVSI_EDIT)
|
||||||
m_ListView.EditLabel(i);
|
m_ListView.EditLabel(i);
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
Loading…
Reference in a new issue