[SHELL32] CDefView: Implement SFVM_GETCOMMANDIR callback (#6941)

Implementing missing folder view callbacks...
JIRA issue: CORE-19616
- In CDefView::InvokeContextMenuCommand,
  call SFVM_GETCOMMANDDIR callback and
  store the directory into 
  CMINVOKECOMMANDINFOEX structure.
This commit is contained in:
Katayama Hirofumi MZ 2024-05-27 07:01:51 +09:00 committed by GitHub
parent ef693390ef
commit d56e507e95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1582,6 +1582,17 @@ HRESULT CDefView::InvokeContextMenuCommand(CComPtr<IContextMenu>& pCM, LPCSTR lp
cmi.ptInvoke = *pt;
}
WCHAR szDirW[MAX_PATH] = L"";
CHAR szDirA[MAX_PATH];
if (SUCCEEDED(_DoFolderViewCB(SFVM_GETCOMMANDDIR, _countof(szDirW), (LPARAM)szDirW)) &&
*szDirW != UNICODE_NULL)
{
SHUnicodeToAnsi(szDirW, szDirA, _countof(szDirA));
cmi.fMask |= CMIC_MASK_UNICODE;
cmi.lpDirectory = szDirA;
cmi.lpDirectoryW = szDirW;
}
HRESULT hr = pCM->InvokeCommand((LPCMINVOKECOMMANDINFO)&cmi);
// Most of our callers will do this, but if they would forget (File menu!)
IUnknown_SetSite(pCM, NULL);