mirror of
https://github.com/reactos/reactos.git
synced 2025-02-28 19:32:59 +00:00
[EXPLORER] Support Unicode on Start Button InvokeCommand (#7644)
Support Unicode on Start Button context menu for international text support. JIRA issue: N/A - Support Unicode in CStartMenuBtnCtxMenu::InvokeCommand method by using CMINVOKECOMMANDINFOEX structure.
This commit is contained in:
parent
d4f283b67b
commit
56988ffbf8
1 changed files with 23 additions and 13 deletions
|
@ -193,27 +193,37 @@ public:
|
|||
InvokeCommand(LPCMINVOKECOMMANDINFO lpici)
|
||||
{
|
||||
UINT uiCmdId = PtrToUlong(lpici->lpVerb);
|
||||
if (!IsShellCmdId((UINT_PTR)lpici->lpVerb))
|
||||
if (!IsShellCmdId(uiCmdId))
|
||||
{
|
||||
CMINVOKECOMMANDINFO cmici = { 0 };
|
||||
CHAR szDir[MAX_PATH];
|
||||
CMINVOKECOMMANDINFOEX cmici = { sizeof(cmici) };
|
||||
|
||||
/* Setup and invoke the shell command */
|
||||
cmici.cbSize = sizeof(cmici);
|
||||
cmici.hwnd = m_Owner;
|
||||
if (IS_INTRESOURCE(lpici->lpVerb))
|
||||
cmici.lpVerb = MAKEINTRESOURCEA(uiCmdId - INNERIDOFFSET);
|
||||
else
|
||||
cmici.lpVerb = lpici->lpVerb;
|
||||
cmici.nShow = SW_NORMAL;
|
||||
|
||||
/* FIXME: Support Unicode!!! */
|
||||
if (SHGetPathFromIDListA(m_FolderPidl, szDir))
|
||||
cmici.fMask = CMIC_MASK_UNICODE;
|
||||
WCHAR szVerbW[MAX_PATH];
|
||||
if (IS_INTRESOURCE(lpici->lpVerb))
|
||||
{
|
||||
cmici.lpDirectory = szDir;
|
||||
cmici.lpVerb = MAKEINTRESOURCEA(uiCmdId - INNERIDOFFSET);
|
||||
cmici.lpVerbW = MAKEINTRESOURCEW(uiCmdId - INNERIDOFFSET);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmici.lpVerb = lpici->lpVerb;
|
||||
SHAnsiToUnicode(lpici->lpVerb, szVerbW, _countof(szVerbW));
|
||||
cmici.lpVerbW = szVerbW;
|
||||
}
|
||||
|
||||
return m_Inner->InvokeCommand(&cmici);
|
||||
CHAR szDirA[MAX_PATH];
|
||||
WCHAR szDirW[MAX_PATH];
|
||||
if (SHGetPathFromIDListW(m_FolderPidl, szDirW))
|
||||
{
|
||||
SHUnicodeToAnsi(szDirW, szDirA, _countof(szDirA));
|
||||
cmici.lpDirectory = szDirA;
|
||||
cmici.lpDirectoryW = szDirW;
|
||||
}
|
||||
|
||||
return m_Inner->InvokeCommand((LPCMINVOKECOMMANDINFO)&cmici);
|
||||
}
|
||||
m_TrayWnd->ExecContextMenuCmd(uiCmdId);
|
||||
return S_OK;
|
||||
|
|
Loading…
Reference in a new issue