mirror of
https://github.com/reactos/reactos.git
synced 2025-06-12 10:08:28 +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)
|
InvokeCommand(LPCMINVOKECOMMANDINFO lpici)
|
||||||
{
|
{
|
||||||
UINT uiCmdId = PtrToUlong(lpici->lpVerb);
|
UINT uiCmdId = PtrToUlong(lpici->lpVerb);
|
||||||
if (!IsShellCmdId((UINT_PTR)lpici->lpVerb))
|
if (!IsShellCmdId(uiCmdId))
|
||||||
{
|
{
|
||||||
CMINVOKECOMMANDINFO cmici = { 0 };
|
CMINVOKECOMMANDINFOEX cmici = { sizeof(cmici) };
|
||||||
CHAR szDir[MAX_PATH];
|
|
||||||
|
|
||||||
/* Setup and invoke the shell command */
|
/* Setup and invoke the shell command */
|
||||||
cmici.cbSize = sizeof(cmici);
|
|
||||||
cmici.hwnd = m_Owner;
|
cmici.hwnd = m_Owner;
|
||||||
if (IS_INTRESOURCE(lpici->lpVerb))
|
|
||||||
cmici.lpVerb = MAKEINTRESOURCEA(uiCmdId - INNERIDOFFSET);
|
|
||||||
else
|
|
||||||
cmici.lpVerb = lpici->lpVerb;
|
|
||||||
cmici.nShow = SW_NORMAL;
|
cmici.nShow = SW_NORMAL;
|
||||||
|
cmici.fMask = CMIC_MASK_UNICODE;
|
||||||
/* FIXME: Support Unicode!!! */
|
WCHAR szVerbW[MAX_PATH];
|
||||||
if (SHGetPathFromIDListA(m_FolderPidl, szDir))
|
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);
|
m_TrayWnd->ExecContextMenuCmd(uiCmdId);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue