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)
|
||||
parameters->offsetF8->AddRef();
|
||||
|
||||
/* Handle /e parameter */
|
||||
UINT wFlags = 0;
|
||||
if ((parameters->dwFlags & SH_EXPLORER_CMDLINE_FLAG_E))
|
||||
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));
|
||||
if (FAILED_UNEXPECTEDLY(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)
|
||||
{
|
||||
if (Ret == -1)
|
||||
|
|
|
@ -2203,7 +2203,7 @@ HRESULT WINAPI CDefView::SelectItem(PCUITEMID_CHILD pidl, UINT uFlags)
|
|||
lvItem.iItem++;
|
||||
}
|
||||
|
||||
if(uFlags & SVSI_EDIT)
|
||||
if((uFlags & SVSI_EDIT) == SVSI_EDIT)
|
||||
m_ListView.EditLabel(i);
|
||||
|
||||
return S_OK;
|
||||
|
|
Loading…
Reference in a new issue