mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 17:05:44 +00:00
[SHELL32]
- CDefaultContextMenu: Make it respect the IContextMenu interface and expect menu id offsets instead of real menu ids and actually use the idCmdFirst and idCmdLast parameters in QueryContextMenu. Make the default part use and existed menu from the resources but changed accordingly so the ids of its elements can be adjusted to the next free id of the constructed menu. Rename InsertMenuItemsOfDynamicContextMenuExtension to AddShellExtensionsToMenu, DoDynamicShellExtensions to InvokeShellExt, and DoStaticShellExtensions to InvokeRegVerb. Make AddShellExtensionsToMenu and AddStaticContextMenusToMenu behave like QueryContextMenu to return the number of ids they occupy. Add two helpers SHGetMenuIdFromMenuMsg and SHSetMenuIdInMenuMsg to change the id that is contained in the lparam of WM_DRAWITEM and WM_MEASUREITEM before forwarding them. - CDefView: When calling QueryContextMenu before using TrackPopupMenu, use 1 as the first id that will filled by the IContextMenu because we want 0 to be used as an indicator that the menu was canceled. Use SHGetMenuIdFromMenuMsg and SHSetMenuIdInMenuMsg to change the lparam of the messages forwarded to the IContextMenu accordingly. - CDefViewBckgrndMenu: Add a hack so as to keep the code as simple as possible while respecting idCmdFirst and idCmdLast. - CNewMenu: Remove a hack that was needed because WM_DRAWITEM didn't come with the menu id offset but with the real menu id. - CDesktopFolder, CFSFolder: Make the callbacks avoid adding an extra separators. After that shell extensions in menus should work better and callbacks to shell folders should really be able to add several menu items. svn path=/trunk/; revision=75533
This commit is contained in:
parent
9748e8bde3
commit
551d8fa312
39 changed files with 438 additions and 465 deletions
|
@ -53,6 +53,10 @@ typedef struct
|
||||||
|
|
||||||
#define SHV_CHANGE_NOTIFY WM_USER + 0x1111
|
#define SHV_CHANGE_NOTIFY WM_USER + 0x1111
|
||||||
|
|
||||||
|
/* For the context menu of the def view, the id of the items are based on 1 because we need
|
||||||
|
to call TrackPopupMenu and let it use the 0 value as an indication that the menu was canceled */
|
||||||
|
#define CONTEXT_MENU_BASE_ID 1
|
||||||
|
|
||||||
class CDefView :
|
class CDefView :
|
||||||
public CWindowImpl<CDefView, CWindow, CControlWinTraits>,
|
public CWindowImpl<CDefView, CWindow, CControlWinTraits>,
|
||||||
public CComObjectRootEx<CComMultiThreadModelNoCS>,
|
public CComObjectRootEx<CComMultiThreadModelNoCS>,
|
||||||
|
@ -1272,7 +1276,7 @@ HRESULT CDefView::OpenSelectedItems()
|
||||||
|
|
||||||
IUnknown_SetSite(m_pCM, (IShellView *)this);
|
IUnknown_SetSite(m_pCM, (IShellView *)this);
|
||||||
|
|
||||||
hResult = m_pCM->QueryContextMenu(hMenu, 0, 0x20, 0x7fff, CMF_DEFAULTONLY);
|
hResult = m_pCM->QueryContextMenu(hMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, CMF_DEFAULTONLY);
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
@ -1325,7 +1329,8 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
|
||||||
|
|
||||||
IUnknown_SetSite(m_pCM, (IShellView *)this);
|
IUnknown_SetSite(m_pCM, (IShellView *)this);
|
||||||
|
|
||||||
hResult = m_pCM->QueryContextMenu(m_hContextMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, CMF_NORMAL);
|
/* Use 1 as the first id as we want 0 the mean that the user canceled the menu */
|
||||||
|
hResult = m_pCM->QueryContextMenu(m_hContextMenu, 0, CONTEXT_MENU_BASE_ID, FCIDM_SHVIEWLAST, CMF_NORMAL);
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
@ -1338,7 +1343,7 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
|
||||||
if (uCommand == FCIDM_SHVIEW_OPEN && OnDefaultCommand() == S_OK)
|
if (uCommand == FCIDM_SHVIEW_OPEN && OnDefaultCommand() == S_OK)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
InvokeContextMenuCommand(uCommand);
|
InvokeContextMenuCommand(uCommand - CONTEXT_MENU_BASE_ID);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (m_pCM)
|
if (m_pCM)
|
||||||
|
@ -1600,7 +1605,7 @@ LRESULT CDefView::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHand
|
||||||
return OnExplorerCommand(dwCmdID, FALSE);
|
return OnExplorerCommand(dwCmdID, FALSE);
|
||||||
default:
|
default:
|
||||||
/* WM_COMMAND messages from the file menu are routed to the CDefView so as to let m_pCM handle the command */
|
/* WM_COMMAND messages from the file menu are routed to the CDefView so as to let m_pCM handle the command */
|
||||||
if (m_pCM)
|
if (m_pCM && dwCmd == 0)
|
||||||
{
|
{
|
||||||
InvokeContextMenuCommand(dwCmdID);
|
InvokeContextMenuCommand(dwCmdID);
|
||||||
}
|
}
|
||||||
|
@ -1955,6 +1960,9 @@ LRESULT CDefView::OnChangeNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT SHGetMenuIdFromMenuMsg(UINT uMsg, LPARAM lParam, UINT *CmdId);
|
||||||
|
HRESULT SHSetMenuIdInMenuMsg(UINT uMsg, LPARAM lParam, UINT CmdId);
|
||||||
|
|
||||||
/**********************************************************
|
/**********************************************************
|
||||||
* CDefView::OnCustomItem
|
* CDefView::OnCustomItem
|
||||||
*/
|
*/
|
||||||
|
@ -1967,12 +1975,18 @@ LRESULT CDefView::OnCustomItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bH
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT result;
|
/* The lParam of WM_DRAWITEM WM_MEASUREITEM contain a menu id and this also needs to
|
||||||
HRESULT hres = SHForwardContextMenuMsg(m_pCM, uMsg, wParam, lParam, &result, TRUE);
|
be changed to a menu identifier offset */
|
||||||
|
UINT CmdID;
|
||||||
|
HRESULT hres = SHGetMenuIdFromMenuMsg(uMsg, lParam, &CmdID);
|
||||||
if (SUCCEEDED(hres))
|
if (SUCCEEDED(hres))
|
||||||
return TRUE;
|
SHSetMenuIdInMenuMsg(uMsg, lParam, CmdID - CONTEXT_MENU_BASE_ID);
|
||||||
else
|
|
||||||
return FALSE;
|
/* Forward the message to the IContextMenu2 */
|
||||||
|
LRESULT result;
|
||||||
|
hres = SHForwardContextMenuMsg(m_pCM, uMsg, wParam, lParam, &result, TRUE);
|
||||||
|
|
||||||
|
return (SUCCEEDED(hres));
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT CDefView::OnSettingChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
|
LRESULT CDefView::OnSettingChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
|
||||||
|
|
|
@ -20,6 +20,9 @@ class CDefViewBckgrndMenu :
|
||||||
CComPtr<IShellFolder> m_psf;
|
CComPtr<IShellFolder> m_psf;
|
||||||
CComPtr<IContextMenu> m_folderCM;
|
CComPtr<IContextMenu> m_folderCM;
|
||||||
|
|
||||||
|
UINT m_idCmdFirst;
|
||||||
|
UINT m_LastFolderCMId;
|
||||||
|
|
||||||
BOOL _bIsDesktopBrowserMenu();
|
BOOL _bIsDesktopBrowserMenu();
|
||||||
BOOL _bCanPaste();
|
BOOL _bCanPaste();
|
||||||
public:
|
public:
|
||||||
|
@ -52,6 +55,8 @@ class CDefViewBckgrndMenu :
|
||||||
|
|
||||||
CDefViewBckgrndMenu::CDefViewBckgrndMenu()
|
CDefViewBckgrndMenu::CDefViewBckgrndMenu()
|
||||||
{
|
{
|
||||||
|
m_idCmdFirst = 0;
|
||||||
|
m_LastFolderCMId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CDefViewBckgrndMenu::~CDefViewBckgrndMenu()
|
CDefViewBckgrndMenu::~CDefViewBckgrndMenu()
|
||||||
|
@ -135,6 +140,39 @@ CDefViewBckgrndMenu::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFir
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
HMENU hMenuPart;
|
HMENU hMenuPart;
|
||||||
|
UINT cIds = 0;
|
||||||
|
|
||||||
|
/* This is something the implementations of IContextMenu should never really do.
|
||||||
|
However CDefViewBckgrndMenu is more or less an overengineering result, its code could really be part of the
|
||||||
|
CDefView. Given this, I think that abusing the interface here is not that bad since only CDefView is the ony
|
||||||
|
user of this class. Here we need to do two things to keep things as simple as possible.
|
||||||
|
First we want the menu part added by the shell folder to be the first to add so as to make as few id translations
|
||||||
|
as possible. Second, we want to add the default part of the background menu without shifted ids, so as
|
||||||
|
to let the CDefView fill some parts like filling the arrange modes or checking the view mode. In order
|
||||||
|
for that to work we need to save idCmdFirst because our caller will pass id offsets to InvokeCommand.
|
||||||
|
This makes it impossible to concatenate the CDefViewBckgrndMenu with other menus since it abuses IContextMenu
|
||||||
|
but as stated above, its sole user is CDefView and should really be that way. */
|
||||||
|
m_idCmdFirst = idCmdFirst;
|
||||||
|
|
||||||
|
/* Query the shell folder to add any items it wants to add in the background context menu */
|
||||||
|
hr = m_psf->CreateViewObject(NULL, IID_PPV_ARG(IContextMenu, &m_folderCM));
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = m_folderCM->QueryContextMenu(hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
m_LastFolderCMId = LOWORD(hr);
|
||||||
|
cIds = m_LastFolderCMId;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
WARN("QueryContextMenu failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
WARN("GetUIObjectOf didn't give any context menu!\n");
|
||||||
|
}
|
||||||
|
|
||||||
/* Load the default part of the background context menu */
|
/* Load the default part of the background context menu */
|
||||||
hMenuPart = LoadMenuW(shell32_hInstance, L"MENU_002");
|
hMenuPart = LoadMenuW(shell32_hInstance, L"MENU_002");
|
||||||
|
@ -154,8 +192,7 @@ CDefViewBckgrndMenu::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFir
|
||||||
}
|
}
|
||||||
|
|
||||||
/* merge general background context menu in */
|
/* merge general background context menu in */
|
||||||
Shell_MergeMenus(hMenu, GetSubMenu(hMenuPart, 0), indexMenu, 0, 0xFFFF, MM_DONTREMOVESEPS | MM_SUBMENUSHAVEIDS);
|
Shell_MergeMenus(hMenu, GetSubMenu(hMenuPart, 0), indexMenu, 0, idCmdLast, MM_DONTREMOVESEPS | MM_SUBMENUSHAVEIDS | MM_ADDSEPARATOR);
|
||||||
indexMenu += GetMenuItemCount(GetSubMenu(hMenuPart, 0));
|
|
||||||
DestroyMenu(hMenuPart);
|
DestroyMenu(hMenuPart);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -163,52 +200,24 @@ CDefViewBckgrndMenu::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFir
|
||||||
ERR("Failed to load menu from resource!\n");
|
ERR("Failed to load menu from resource!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Query the shell folder to add any items it wants to add in the background context menu */
|
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds);
|
||||||
hMenuPart = CreatePopupMenu();
|
|
||||||
if (hMenuPart)
|
|
||||||
{
|
|
||||||
hr = m_psf->CreateViewObject(NULL, IID_PPV_ARG(IContextMenu, &m_folderCM));
|
|
||||||
if (SUCCEEDED(hr))
|
|
||||||
{
|
|
||||||
InsertMenuA(hMenu, indexMenu++, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);
|
|
||||||
UINT SeparatorIndex = indexMenu;
|
|
||||||
int count = GetMenuItemCount(hMenu);
|
|
||||||
|
|
||||||
hr = m_folderCM->QueryContextMenu(hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
|
|
||||||
if (SUCCEEDED(hr))
|
|
||||||
{
|
|
||||||
//Shell_MergeMenus(hMenu, hMenuPart, indexMenu, 0, UINT_MAX, MM_ADDSEPARATOR| MM_DONTREMOVESEPS | MM_SUBMENUSHAVEIDS);
|
|
||||||
//DestroyMenu(hMenuPart);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
WARN("QueryContextMenu failed!\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If no item was added after the separator, remove it */
|
|
||||||
if (count == GetMenuItemCount(hMenu))
|
|
||||||
DeleteMenu(hMenu, SeparatorIndex, MF_BYPOSITION);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
WARN("GetUIObjectOf didn't give any context menu!\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ERR("CreatePopupMenu failed!\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
WINAPI
|
WINAPI
|
||||||
CDefViewBckgrndMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi)
|
CDefViewBckgrndMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi)
|
||||||
{
|
{
|
||||||
|
UINT idCmd = LOWORD(lpcmi->lpVerb);
|
||||||
|
if(HIWORD(lpcmi->lpVerb) != 0 || idCmd < m_LastFolderCMId)
|
||||||
|
{
|
||||||
|
return m_folderCM->InvokeCommand(lpcmi);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The default part of the background menu doesn't have shifted ids so we need to convert the id offset to the real id */
|
||||||
|
idCmd += m_idCmdFirst;
|
||||||
|
|
||||||
/* The commands that are handled by the def view are forwarded to it */
|
/* The commands that are handled by the def view are forwarded to it */
|
||||||
switch (LOWORD(lpcmi->lpVerb))
|
switch (idCmd)
|
||||||
{
|
{
|
||||||
case FCIDM_SHVIEW_BIGICON:
|
case FCIDM_SHVIEW_BIGICON:
|
||||||
case FCIDM_SHVIEW_SMALLICON:
|
case FCIDM_SHVIEW_SMALLICON:
|
||||||
|
@ -232,13 +241,12 @@ CDefViewBckgrndMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi)
|
||||||
|
|
||||||
HWND hwndSV = NULL;
|
HWND hwndSV = NULL;
|
||||||
if (SUCCEEDED(psv->GetWindow(&hwndSV)))
|
if (SUCCEEDED(psv->GetWindow(&hwndSV)))
|
||||||
SendMessageW(hwndSV, WM_COMMAND, MAKEWPARAM(LOWORD(lpcmi->lpVerb), 0), 0);
|
SendMessageW(hwndSV, WM_COMMAND, MAKEWPARAM(idCmd, 0), 0);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unknown commands are added by the folder context menu so forward the invocation */
|
ERR("Got unknown command id %ul\n", LOWORD(lpcmi->lpVerb));
|
||||||
return m_folderCM->InvokeCommand(lpcmi);
|
return E_FAIL;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
|
|
|
@ -78,6 +78,8 @@ class CDefaultContextMenu :
|
||||||
UINT m_iIdSCMLast; /* last static used id */
|
UINT m_iIdSCMLast; /* last static used id */
|
||||||
UINT m_iIdCBFirst; /* first callback used id */
|
UINT m_iIdCBFirst; /* first callback used id */
|
||||||
UINT m_iIdCBLast; /* last callback used id */
|
UINT m_iIdCBLast; /* last callback used id */
|
||||||
|
UINT m_iIdDfltFirst; /* first default part id */
|
||||||
|
UINT m_iIdDfltLast; /* last default part id */
|
||||||
|
|
||||||
HRESULT _DoCallback(UINT uMsg, WPARAM wParam, LPVOID lParam);
|
HRESULT _DoCallback(UINT uMsg, WPARAM wParam, LPVOID lParam);
|
||||||
void AddStaticEntry(const HKEY hkeyClass, const WCHAR *szVerb);
|
void AddStaticEntry(const HKEY hkeyClass, const WCHAR *szVerb);
|
||||||
|
@ -85,8 +87,8 @@ class CDefaultContextMenu :
|
||||||
BOOL IsShellExtensionAlreadyLoaded(const CLSID *pclsid);
|
BOOL IsShellExtensionAlreadyLoaded(const CLSID *pclsid);
|
||||||
HRESULT LoadDynamicContextMenuHandler(HKEY hKey, const CLSID *pclsid);
|
HRESULT LoadDynamicContextMenuHandler(HKEY hKey, const CLSID *pclsid);
|
||||||
BOOL EnumerateDynamicContextHandlerForKey(HKEY hRootKey);
|
BOOL EnumerateDynamicContextHandlerForKey(HKEY hRootKey);
|
||||||
UINT InsertMenuItemsOfDynamicContextMenuExtension(HMENU hMenu, UINT IndexMenu, UINT idCmdFirst, UINT idCmdLast);
|
UINT AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UINT idCmdFirst, UINT idCmdLast);
|
||||||
UINT AddStaticContextMenusToMenu(HMENU hMenu, UINT IndexMenu, UINT iIdCmdFirst, UINT iIdCmdLast);
|
UINT AddStaticContextMenusToMenu(HMENU hMenu, UINT* IndexMenu, UINT iIdCmdFirst, UINT iIdCmdLast);
|
||||||
HRESULT DoPaste(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink);
|
HRESULT DoPaste(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink);
|
||||||
HRESULT DoOpenOrExplore(LPCMINVOKECOMMANDINFO lpcmi);
|
HRESULT DoOpenOrExplore(LPCMINVOKECOMMANDINFO lpcmi);
|
||||||
HRESULT DoCreateLink(LPCMINVOKECOMMANDINFO lpcmi);
|
HRESULT DoCreateLink(LPCMINVOKECOMMANDINFO lpcmi);
|
||||||
|
@ -95,8 +97,8 @@ class CDefaultContextMenu :
|
||||||
HRESULT DoRename(LPCMINVOKECOMMANDINFO lpcmi);
|
HRESULT DoRename(LPCMINVOKECOMMANDINFO lpcmi);
|
||||||
HRESULT DoProperties(LPCMINVOKECOMMANDINFO lpcmi);
|
HRESULT DoProperties(LPCMINVOKECOMMANDINFO lpcmi);
|
||||||
HRESULT DoCreateNewFolder(LPCMINVOKECOMMANDINFO lpici);
|
HRESULT DoCreateNewFolder(LPCMINVOKECOMMANDINFO lpici);
|
||||||
HRESULT DoDynamicShellExtensions(LPCMINVOKECOMMANDINFO lpcmi);
|
HRESULT InvokeShellExt(LPCMINVOKECOMMANDINFO lpcmi);
|
||||||
HRESULT DoStaticShellExtensions(LPCMINVOKECOMMANDINFO lpcmi);
|
HRESULT InvokeRegVerb(LPCMINVOKECOMMANDINFO lpcmi);
|
||||||
DWORD BrowserFlagsFromVerb(LPCMINVOKECOMMANDINFO lpcmi, PStaticShellEntry pEntry);
|
DWORD BrowserFlagsFromVerb(LPCMINVOKECOMMANDINFO lpcmi, PStaticShellEntry pEntry);
|
||||||
HRESULT TryToBrowse(LPCMINVOKECOMMANDINFO lpcmi, LPCITEMIDLIST pidl, DWORD wFlags);
|
HRESULT TryToBrowse(LPCMINVOKECOMMANDINFO lpcmi, LPCITEMIDLIST pidl, DWORD wFlags);
|
||||||
HRESULT InvokePidl(LPCMINVOKECOMMANDINFO lpcmi, LPCITEMIDLIST pidl, PStaticShellEntry pEntry);
|
HRESULT InvokePidl(LPCMINVOKECOMMANDINFO lpcmi, LPCITEMIDLIST pidl, PStaticShellEntry pEntry);
|
||||||
|
@ -149,7 +151,10 @@ CDefaultContextMenu::CDefaultContextMenu() :
|
||||||
m_iIdSCMFirst(0),
|
m_iIdSCMFirst(0),
|
||||||
m_iIdSCMLast(0),
|
m_iIdSCMLast(0),
|
||||||
m_iIdCBFirst(0),
|
m_iIdCBFirst(0),
|
||||||
m_iIdCBLast(0)
|
m_iIdCBLast(0),
|
||||||
|
m_iIdDfltFirst(0),
|
||||||
|
m_iIdDfltLast(0)
|
||||||
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -463,47 +468,38 @@ CDefaultContextMenu::EnumerateDynamicContextHandlerForKey(HKEY hRootKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT
|
UINT
|
||||||
CDefaultContextMenu::InsertMenuItemsOfDynamicContextMenuExtension(HMENU hMenu, UINT IndexMenu, UINT idCmdFirst, UINT idCmdLast)
|
CDefaultContextMenu::AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UINT idCmdFirst, UINT idCmdLast)
|
||||||
{
|
{
|
||||||
|
UINT cIds = 0;
|
||||||
|
|
||||||
if (!m_pDynamicEntries)
|
if (!m_pDynamicEntries)
|
||||||
{
|
return cIds;
|
||||||
m_iIdSHEFirst = 0;
|
|
||||||
m_iIdSHELast = 0;
|
|
||||||
return IndexMenu;
|
|
||||||
}
|
|
||||||
|
|
||||||
PDynamicShellEntry pEntry = m_pDynamicEntries;
|
PDynamicShellEntry pEntry = m_pDynamicEntries;
|
||||||
m_iIdSHEFirst = idCmdFirst;
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
HRESULT hr = pEntry->pCM->QueryContextMenu(hMenu, IndexMenu++, idCmdFirst, idCmdLast, CMF_NORMAL);
|
HRESULT hr = pEntry->pCM->QueryContextMenu(hMenu, *pIndexMenu, idCmdFirst + cIds, idCmdLast, CMF_NORMAL);
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
{
|
{
|
||||||
pEntry->iIdCmdFirst = idCmdFirst;
|
pEntry->iIdCmdFirst = cIds;
|
||||||
pEntry->NumIds = LOWORD(hr);
|
pEntry->NumIds = LOWORD(hr);
|
||||||
IndexMenu += pEntry->NumIds;
|
(*pIndexMenu) += pEntry->NumIds;
|
||||||
idCmdFirst += pEntry->NumIds + 0x10;
|
|
||||||
|
|
||||||
if(idCmdFirst >= idCmdLast)
|
cIds += pEntry->NumIds;
|
||||||
{
|
if(idCmdFirst + cIds >= idCmdLast)
|
||||||
/* There is no more room for items */
|
|
||||||
idCmdFirst = idCmdLast;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
TRACE("pEntry %p hr %x contextmenu %p cmdfirst %x num ids %x\n", pEntry, hr, pEntry->pCM, pEntry->iIdCmdFirst, pEntry->NumIds);
|
TRACE("pEntry %p hr %x contextmenu %p cmdfirst %x num ids %x\n", pEntry, hr, pEntry->pCM, pEntry->iIdCmdFirst, pEntry->NumIds);
|
||||||
pEntry = pEntry->pNext;
|
pEntry = pEntry->pNext;
|
||||||
} while (pEntry);
|
} while (pEntry);
|
||||||
|
|
||||||
m_iIdSHELast = idCmdFirst;
|
return cIds;
|
||||||
TRACE("SH_LoadContextMenuHandlers first %x last %x\n", m_iIdSHEFirst, m_iIdSHELast);
|
|
||||||
return IndexMenu;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT
|
UINT
|
||||||
CDefaultContextMenu::AddStaticContextMenusToMenu(
|
CDefaultContextMenu::AddStaticContextMenusToMenu(
|
||||||
HMENU hMenu,
|
HMENU hMenu,
|
||||||
UINT IndexMenu,
|
UINT* pIndexMenu,
|
||||||
UINT iIdCmdFirst,
|
UINT iIdCmdFirst,
|
||||||
UINT iIdCmdLast)
|
UINT iIdCmdLast)
|
||||||
{
|
{
|
||||||
|
@ -511,13 +507,12 @@ CDefaultContextMenu::AddStaticContextMenusToMenu(
|
||||||
UINT idResource;
|
UINT idResource;
|
||||||
WCHAR wszVerb[40];
|
WCHAR wszVerb[40];
|
||||||
UINT fState;
|
UINT fState;
|
||||||
|
UINT cIds = 0;
|
||||||
|
|
||||||
mii.cbSize = sizeof(mii);
|
mii.cbSize = sizeof(mii);
|
||||||
mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | MIIM_DATA;
|
mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | MIIM_DATA;
|
||||||
mii.fType = MFT_STRING;
|
mii.fType = MFT_STRING;
|
||||||
mii.wID = iIdCmdFirst;
|
|
||||||
mii.dwTypeData = NULL;
|
mii.dwTypeData = NULL;
|
||||||
m_iIdSCMFirst = mii.wID;
|
|
||||||
|
|
||||||
PStaticShellEntry pEntry = m_pStaticEntries;
|
PStaticShellEntry pEntry = m_pStaticEntries;
|
||||||
|
|
||||||
|
@ -596,17 +591,18 @@ CDefaultContextMenu::AddStaticContextMenusToMenu(
|
||||||
|
|
||||||
mii.cch = wcslen(mii.dwTypeData);
|
mii.cch = wcslen(mii.dwTypeData);
|
||||||
mii.fState = fState;
|
mii.fState = fState;
|
||||||
InsertMenuItemW(hMenu, IndexMenu++, TRUE, &mii);
|
mii.wID = iIdCmdFirst + cIds;
|
||||||
|
InsertMenuItemW(hMenu, *pIndexMenu, TRUE, &mii);
|
||||||
|
(*pIndexMenu)++;
|
||||||
|
cIds++;
|
||||||
|
|
||||||
mii.wID++;
|
|
||||||
pEntry = pEntry->pNext;
|
pEntry = pEntry->pNext;
|
||||||
|
|
||||||
if (mii.wID >= iIdCmdLast)
|
if (mii.wID >= iIdCmdLast)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_iIdSCMLast = mii.wID - 1;
|
return cIds;
|
||||||
return IndexMenu;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WINAPI _InsertMenuItemW(
|
void WINAPI _InsertMenuItemW(
|
||||||
|
@ -659,10 +655,7 @@ CDefaultContextMenu::QueryContextMenu(
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
UINT idCmdNext = idCmdFirst;
|
UINT idCmdNext = idCmdFirst;
|
||||||
|
UINT cIds = 0;
|
||||||
/* Add a tiny hack to make all the shell happy until we understand how we should handle 0 ids */
|
|
||||||
if (!idCmdNext)
|
|
||||||
idCmdNext = 1;
|
|
||||||
|
|
||||||
TRACE("BuildShellItemContextMenu entered\n");
|
TRACE("BuildShellItemContextMenu entered\n");
|
||||||
|
|
||||||
|
@ -674,92 +667,69 @@ CDefaultContextMenu::QueryContextMenu(
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add static context menu handlers */
|
/* Add static context menu handlers */
|
||||||
IndexMenu = AddStaticContextMenusToMenu(hMenu, IndexMenu, idCmdNext, idCmdLast);
|
cIds = AddStaticContextMenusToMenu(hMenu, &IndexMenu, idCmdFirst, idCmdLast);
|
||||||
if (m_iIdSCMLast && m_iIdSCMFirst > m_iIdSCMLast)
|
m_iIdSCMFirst = 0;
|
||||||
m_iIdSCMLast = m_iIdSCMFirst = 0;
|
m_iIdSCMLast = cIds;
|
||||||
else if (m_iIdSCMLast)
|
idCmdNext = idCmdFirst + cIds;
|
||||||
idCmdNext = m_iIdSCMLast + 1;
|
|
||||||
|
|
||||||
/* Add dynamic context menu handlers */
|
/* Add dynamic context menu handlers */
|
||||||
BOOL bAddSep = FALSE;
|
cIds += AddShellExtensionsToMenu(hMenu, &IndexMenu, idCmdNext, idCmdLast);
|
||||||
IndexMenu = InsertMenuItemsOfDynamicContextMenuExtension(hMenu, IndexMenu, idCmdNext, idCmdLast);
|
m_iIdSHEFirst = m_iIdSCMLast;
|
||||||
if (m_iIdSHELast && m_iIdSHELast != m_iIdSHEFirst)
|
m_iIdSHELast = cIds;
|
||||||
idCmdNext = m_iIdSHELast + 1;
|
idCmdNext = idCmdFirst + cIds;
|
||||||
|
TRACE("SH_LoadContextMenuHandlers first %x last %x\n", m_iIdSHEFirst, m_iIdSHELast);
|
||||||
|
|
||||||
/* Now let the callback add its own items */
|
/* Now let the callback add its own items */
|
||||||
QCMINFO qcminfo = {hMenu, IndexMenu, idCmdNext, idCmdLast, NULL};
|
QCMINFO qcminfo = {hMenu, IndexMenu, idCmdNext, idCmdLast, NULL};
|
||||||
if (SUCCEEDED(_DoCallback(DFM_MERGECONTEXTMENU, uFlags, &qcminfo)))
|
if (SUCCEEDED(_DoCallback(DFM_MERGECONTEXTMENU, uFlags, &qcminfo)))
|
||||||
{
|
{
|
||||||
m_iIdCBFirst = idCmdNext;
|
cIds += qcminfo.idCmdFirst;
|
||||||
m_iIdCBLast = qcminfo.idCmdFirst;
|
IndexMenu += qcminfo.idCmdFirst;
|
||||||
idCmdNext = m_iIdCBLast + 1;
|
m_iIdCBFirst = m_iIdSHELast;
|
||||||
|
m_iIdCBLast = cIds;
|
||||||
|
idCmdNext = idCmdFirst + cIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The rest of the items will be added in the end of the menu */
|
|
||||||
IndexMenu = GetMenuItemCount(hMenu);
|
|
||||||
|
|
||||||
if (uFlags & CMF_VERBSONLY)
|
if (uFlags & CMF_VERBSONLY)
|
||||||
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, idCmdNext - idCmdFirst);
|
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds);
|
||||||
|
|
||||||
/* If this is a background context menu we are done */
|
/* If this is a background context menu we are done */
|
||||||
if (!m_cidl)
|
if (!m_cidl)
|
||||||
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, idCmdNext - idCmdFirst);
|
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds);
|
||||||
|
|
||||||
/* Get the attributes of the items */
|
/* Get the attributes of the items */
|
||||||
SFGAOF rfg = SFGAO_BROWSABLE | SFGAO_CANCOPY | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANDELETE | SFGAO_CANRENAME | SFGAO_HASPROPSHEET | SFGAO_FILESYSTEM | SFGAO_FOLDER;
|
SFGAOF rfg = SFGAO_BROWSABLE | SFGAO_CANCOPY | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANDELETE | SFGAO_CANRENAME | SFGAO_HASPROPSHEET | SFGAO_FILESYSTEM | SFGAO_FOLDER;
|
||||||
hr = m_psf->GetAttributesOf(m_cidl, m_apidl, &rfg);
|
hr = m_psf->GetAttributesOf(m_cidl, m_apidl, &rfg);
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, idCmdNext - idCmdFirst);
|
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds);
|
||||||
|
|
||||||
/* Add the standard menu entries based on the attributes of the items */
|
/* Add the default part of the menu */
|
||||||
BOOL bClipboardData = (HasClipboardData() && (rfg & SFGAO_FILESYSTEM));
|
HMENU hmenuDefault = LoadMenu(_AtlBaseModule.GetResourceInstance(), L"MENU_SHV_FILE");
|
||||||
if (rfg & (SFGAO_CANCOPY | SFGAO_CANMOVE) || bClipboardData)
|
|
||||||
{
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);
|
|
||||||
if (rfg & SFGAO_CANMOVE)
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_CUT, MFT_STRING, MAKEINTRESOURCEW(IDS_CUT), MFS_ENABLED);
|
|
||||||
if (rfg & SFGAO_CANCOPY)
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_COPY, MFT_STRING, MAKEINTRESOURCEW(IDS_COPY), MFS_ENABLED);
|
|
||||||
if (bClipboardData)
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_INSERT, MFT_STRING, MAKEINTRESOURCEW(IDS_PASTE), MFS_ENABLED);
|
|
||||||
|
|
||||||
bAddSep = TRUE;
|
/* Remove uneeded entries */
|
||||||
}
|
if (!(rfg & SFGAO_CANMOVE))
|
||||||
|
DeleteMenu(hmenuDefault, IDM_CUT, MF_BYCOMMAND);
|
||||||
|
if (!(rfg & SFGAO_CANCOPY))
|
||||||
|
DeleteMenu(hmenuDefault, IDM_COPY, MF_BYCOMMAND);
|
||||||
|
if (!((rfg & SFGAO_FILESYSTEM) && HasClipboardData()))
|
||||||
|
DeleteMenu(hmenuDefault, IDM_INSERT, MF_BYCOMMAND);
|
||||||
|
if (!(rfg & SFGAO_CANLINK))
|
||||||
|
DeleteMenu(hmenuDefault, IDM_CREATELINK, MF_BYCOMMAND);
|
||||||
|
if (!(rfg & SFGAO_CANDELETE))
|
||||||
|
DeleteMenu(hmenuDefault, IDM_DELETE, MF_BYCOMMAND);
|
||||||
|
if (!(rfg & SFGAO_CANRENAME))
|
||||||
|
DeleteMenu(hmenuDefault, IDM_RENAME, MF_BYCOMMAND);
|
||||||
|
if (!(rfg & SFGAO_HASPROPSHEET))
|
||||||
|
DeleteMenu(hmenuDefault, IDM_PROPERTIES, MF_BYCOMMAND);
|
||||||
|
|
||||||
if (rfg & SFGAO_CANLINK)
|
UINT idMax = Shell_MergeMenus(hMenu, GetSubMenu(hmenuDefault, 0), IndexMenu, idCmdNext, idCmdLast, 0);
|
||||||
{
|
m_iIdDfltFirst = cIds;
|
||||||
bAddSep = FALSE;
|
cIds += idMax - idCmdNext;
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);
|
m_iIdDfltLast = cIds;
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_CREATELINK, MFT_STRING, MAKEINTRESOURCEW(IDS_CREATELINK), MFS_ENABLED);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rfg & SFGAO_CANDELETE)
|
DestroyMenu(hmenuDefault);
|
||||||
{
|
|
||||||
if (bAddSep)
|
|
||||||
{
|
|
||||||
bAddSep = FALSE;
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);
|
|
||||||
}
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_DELETE, MFT_STRING, MAKEINTRESOURCEW(IDS_DELETE), MFS_ENABLED);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rfg & SFGAO_CANRENAME)
|
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds);
|
||||||
{
|
|
||||||
if (bAddSep)
|
|
||||||
{
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);
|
|
||||||
}
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_RENAME, MFT_STRING, MAKEINTRESOURCEW(IDS_RENAME), MFS_ENABLED);
|
|
||||||
bAddSep = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rfg & SFGAO_HASPROPSHEET)
|
|
||||||
{
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);
|
|
||||||
_InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_PROPERTIES, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED);
|
|
||||||
}
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CDefaultContextMenu::DoPaste(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink)
|
HRESULT CDefaultContextMenu::DoPaste(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink)
|
||||||
|
@ -967,7 +937,7 @@ PDynamicShellEntry CDefaultContextMenu::GetDynamicEntry(UINT idCmd)
|
||||||
{
|
{
|
||||||
PDynamicShellEntry pEntry = m_pDynamicEntries;
|
PDynamicShellEntry pEntry = m_pDynamicEntries;
|
||||||
|
|
||||||
while(pEntry && idCmd > pEntry->iIdCmdFirst + pEntry->NumIds)
|
while(pEntry && idCmd >= pEntry->iIdCmdFirst + pEntry->NumIds)
|
||||||
pEntry = pEntry->pNext;
|
pEntry = pEntry->pNext;
|
||||||
|
|
||||||
if (!pEntry)
|
if (!pEntry)
|
||||||
|
@ -1016,7 +986,7 @@ CDefaultContextMenu::MapVerbToCmdId(PVOID Verb, PUINT idCmd, BOOL IsUnicode)
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
CDefaultContextMenu::DoDynamicShellExtensions(
|
CDefaultContextMenu::InvokeShellExt(
|
||||||
LPCMINVOKECOMMANDINFO lpcmi)
|
LPCMINVOKECOMMANDINFO lpcmi)
|
||||||
{
|
{
|
||||||
TRACE("verb %p first %x last %x\n", lpcmi->lpVerb, m_iIdSHEFirst, m_iIdSHELast);
|
TRACE("verb %p first %x last %x\n", lpcmi->lpVerb, m_iIdSHEFirst, m_iIdSHELast);
|
||||||
|
@ -1134,7 +1104,7 @@ CDefaultContextMenu::InvokePidl(LPCMINVOKECOMMANDINFO lpcmi, LPCITEMIDLIST pidl,
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
CDefaultContextMenu::DoStaticShellExtensions(
|
CDefaultContextMenu::InvokeRegVerb(
|
||||||
LPCMINVOKECOMMANDINFO lpcmi)
|
LPCMINVOKECOMMANDINFO lpcmi)
|
||||||
{
|
{
|
||||||
PStaticShellEntry pEntry = m_pStaticEntries;
|
PStaticShellEntry pEntry = m_pStaticEntries;
|
||||||
|
@ -1198,8 +1168,37 @@ CDefaultContextMenu::InvokeCommand(
|
||||||
LocalInvokeInfo.lpVerb = MAKEINTRESOURCEA(CmdId);
|
LocalInvokeInfo.lpVerb = MAKEINTRESOURCEA(CmdId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CmdId = LOWORD(LocalInvokeInfo.lpVerb);
|
||||||
|
|
||||||
|
if (m_pDynamicEntries && CmdId >= m_iIdSHEFirst && CmdId < m_iIdSHELast)
|
||||||
|
{
|
||||||
|
LocalInvokeInfo.lpVerb -= m_iIdSHEFirst;
|
||||||
|
Result = InvokeShellExt(&LocalInvokeInfo);
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_pStaticEntries && CmdId >= m_iIdSCMFirst && CmdId < m_iIdSCMLast)
|
||||||
|
{
|
||||||
|
LocalInvokeInfo.lpVerb -= m_iIdSCMFirst;
|
||||||
|
Result = InvokeRegVerb(&LocalInvokeInfo);
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_iIdCBFirst != m_iIdCBLast && CmdId >= m_iIdCBFirst && CmdId < m_iIdCBLast)
|
||||||
|
{
|
||||||
|
Result = _DoCallback(DFM_INVOKECOMMAND, CmdId - m_iIdCBFirst, NULL);
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_iIdDfltFirst != m_iIdDfltLast && CmdId >= m_iIdDfltFirst && CmdId < m_iIdDfltLast)
|
||||||
|
{
|
||||||
|
CmdId -= m_iIdDfltFirst;
|
||||||
|
/* See the definitions of IDM_CUT and co to see how this works */
|
||||||
|
CmdId += 0x7000;
|
||||||
|
}
|
||||||
|
|
||||||
/* Check if this is a Id */
|
/* Check if this is a Id */
|
||||||
switch (LOWORD(LocalInvokeInfo.lpVerb))
|
switch (CmdId)
|
||||||
{
|
{
|
||||||
case FCIDM_SHVIEW_INSERT:
|
case FCIDM_SHVIEW_INSERT:
|
||||||
Result = DoPaste(&LocalInvokeInfo, FALSE);
|
Result = DoPaste(&LocalInvokeInfo, FALSE);
|
||||||
|
@ -1232,34 +1231,10 @@ CDefaultContextMenu::InvokeCommand(
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Result = E_UNEXPECTED;
|
Result = E_UNEXPECTED;
|
||||||
|
ERR("Unhandled Verb %xl\n", LOWORD(LocalInvokeInfo.lpVerb));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for ID's we didn't find a handler for */
|
|
||||||
if (Result == E_UNEXPECTED)
|
|
||||||
{
|
|
||||||
if (m_pDynamicEntries)
|
|
||||||
{
|
|
||||||
if (LOWORD(LocalInvokeInfo.lpVerb) >= m_iIdSHEFirst && LOWORD(LocalInvokeInfo.lpVerb) <= m_iIdSHELast)
|
|
||||||
Result = DoDynamicShellExtensions(&LocalInvokeInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_pStaticEntries)
|
|
||||||
{
|
|
||||||
if (LOWORD(LocalInvokeInfo.lpVerb) >= m_iIdSCMFirst && LOWORD(LocalInvokeInfo.lpVerb) <= m_iIdSCMLast)
|
|
||||||
Result = DoStaticShellExtensions(&LocalInvokeInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_iIdCBFirst != m_iIdCBLast)
|
|
||||||
{
|
|
||||||
if (LOWORD(LocalInvokeInfo.lpVerb) >= m_iIdCBFirst && LOWORD(LocalInvokeInfo.lpVerb) <= m_iIdCBLast)
|
|
||||||
Result = _DoCallback(DFM_INVOKECOMMAND, LOWORD(LocalInvokeInfo.lpVerb), NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Result == E_UNEXPECTED)
|
|
||||||
ERR("Unhandled Verb %xl\n", LOWORD(LocalInvokeInfo.lpVerb));
|
|
||||||
|
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1315,6 +1290,42 @@ CDefaultContextMenu::HandleMenuMsg(
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT SHGetMenuIdFromMenuMsg(UINT uMsg, LPARAM lParam, UINT *CmdId)
|
||||||
|
{
|
||||||
|
if (uMsg == WM_DRAWITEM)
|
||||||
|
{
|
||||||
|
DRAWITEMSTRUCT* pDrawStruct = reinterpret_cast<DRAWITEMSTRUCT*>(lParam);
|
||||||
|
*CmdId = pDrawStruct->itemID;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
else if (uMsg == WM_MEASUREITEM)
|
||||||
|
{
|
||||||
|
MEASUREITEMSTRUCT* pMeasureStruct = reinterpret_cast<MEASUREITEMSTRUCT*>(lParam);
|
||||||
|
*CmdId = pMeasureStruct->itemID;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
return E_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT SHSetMenuIdInMenuMsg(UINT uMsg, LPARAM lParam, UINT CmdId)
|
||||||
|
{
|
||||||
|
if (uMsg == WM_DRAWITEM)
|
||||||
|
{
|
||||||
|
DRAWITEMSTRUCT* pDrawStruct = reinterpret_cast<DRAWITEMSTRUCT*>(lParam);
|
||||||
|
pDrawStruct->itemID = CmdId;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
else if (uMsg == WM_MEASUREITEM)
|
||||||
|
{
|
||||||
|
MEASUREITEMSTRUCT* pMeasureStruct = reinterpret_cast<MEASUREITEMSTRUCT*>(lParam);
|
||||||
|
pMeasureStruct->itemID = CmdId;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
return E_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
WINAPI
|
WINAPI
|
||||||
CDefaultContextMenu::HandleMenuMsg2(
|
CDefaultContextMenu::HandleMenuMsg2(
|
||||||
|
@ -1323,9 +1334,7 @@ CDefaultContextMenu::HandleMenuMsg2(
|
||||||
LPARAM lParam,
|
LPARAM lParam,
|
||||||
LRESULT *plResult)
|
LRESULT *plResult)
|
||||||
{
|
{
|
||||||
switch (uMsg)
|
if (uMsg == WM_INITMENUPOPUP)
|
||||||
{
|
|
||||||
case WM_INITMENUPOPUP:
|
|
||||||
{
|
{
|
||||||
PDynamicShellEntry pEntry = m_pDynamicEntries;
|
PDynamicShellEntry pEntry = m_pDynamicEntries;
|
||||||
while (pEntry)
|
while (pEntry)
|
||||||
|
@ -1333,30 +1342,25 @@ CDefaultContextMenu::HandleMenuMsg2(
|
||||||
SHForwardContextMenuMsg(pEntry->pCM, uMsg, wParam, lParam, plResult, TRUE);
|
SHForwardContextMenuMsg(pEntry->pCM, uMsg, wParam, lParam, plResult, TRUE);
|
||||||
pEntry = pEntry->pNext;
|
pEntry = pEntry->pNext;
|
||||||
}
|
}
|
||||||
break;
|
return S_OK;
|
||||||
}
|
}
|
||||||
case WM_DRAWITEM:
|
|
||||||
{
|
UINT CmdId;
|
||||||
DRAWITEMSTRUCT* pDrawStruct = reinterpret_cast<DRAWITEMSTRUCT*>(lParam);
|
HRESULT hr = SHGetMenuIdFromMenuMsg(uMsg, lParam, &CmdId);
|
||||||
PDynamicShellEntry pEntry = GetDynamicEntry(pDrawStruct->itemID);
|
if (FAILED(hr))
|
||||||
|
return S_FALSE;
|
||||||
|
|
||||||
|
if (CmdId < m_iIdSHEFirst || CmdId >= m_iIdSHELast)
|
||||||
|
return S_FALSE;
|
||||||
|
|
||||||
|
CmdId -= m_iIdSHEFirst;
|
||||||
|
PDynamicShellEntry pEntry = GetDynamicEntry(CmdId);
|
||||||
if (pEntry)
|
if (pEntry)
|
||||||
SHForwardContextMenuMsg(pEntry->pCM, uMsg, wParam, lParam, plResult, TRUE);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case WM_MEASUREITEM:
|
|
||||||
{
|
{
|
||||||
MEASUREITEMSTRUCT* pMeasureStruct = reinterpret_cast<MEASUREITEMSTRUCT*>(lParam);
|
SHSetMenuIdInMenuMsg(uMsg, lParam, CmdId - pEntry->iIdCmdFirst);
|
||||||
PDynamicShellEntry pEntry = GetDynamicEntry(pMeasureStruct->itemID);
|
|
||||||
if (pEntry)
|
|
||||||
SHForwardContextMenuMsg(pEntry->pCM, uMsg, wParam, lParam, plResult, TRUE);
|
SHForwardContextMenuMsg(pEntry->pCM, uMsg, wParam, lParam, plResult, TRUE);
|
||||||
break;
|
|
||||||
}
|
|
||||||
case WM_MENUCHAR :
|
|
||||||
/* FIXME */
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
ERR("Got unknown message:%d\n", uMsg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,8 +31,7 @@ CNewMenu::CNewMenu() :
|
||||||
m_pLinkItem(NULL),
|
m_pLinkItem(NULL),
|
||||||
m_pSite(NULL),
|
m_pSite(NULL),
|
||||||
m_hiconFolder(NULL),
|
m_hiconFolder(NULL),
|
||||||
m_hiconLink(NULL),
|
m_hiconLink(NULL)
|
||||||
m_idCmdFirst(0)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -614,8 +613,6 @@ CNewMenu::QueryContextMenu(HMENU hMenu,
|
||||||
MENUITEMINFOW mii;
|
MENUITEMINFOW mii;
|
||||||
UINT cItems = 0;
|
UINT cItems = 0;
|
||||||
|
|
||||||
m_idCmdFirst = idCmdFirst;
|
|
||||||
|
|
||||||
TRACE("%p %p %u %u %u %u\n", this,
|
TRACE("%p %p %u %u %u %u\n", this,
|
||||||
hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
|
hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
|
||||||
|
|
||||||
|
@ -711,7 +708,7 @@ CNewMenu::HandleMenuMsg2(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *plRes
|
||||||
if (!lpdis || lpdis->CtlType != ODT_MENU)
|
if (!lpdis || lpdis->CtlType != ODT_MENU)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
DWORD id = LOWORD(lpdis->itemID) - m_idCmdFirst;
|
DWORD id = LOWORD(lpdis->itemID);
|
||||||
HICON hIcon = 0;
|
HICON hIcon = 0;
|
||||||
if (id == 0)
|
if (id == 0)
|
||||||
hIcon = m_hiconFolder;
|
hIcon = m_hiconFolder;
|
||||||
|
|
|
@ -60,7 +60,6 @@ private:
|
||||||
CComPtr<IUnknown> m_pSite;
|
CComPtr<IUnknown> m_pSite;
|
||||||
HMENU m_hSubMenu;
|
HMENU m_hSubMenu;
|
||||||
HICON m_hiconFolder, m_hiconLink;
|
HICON m_hiconFolder, m_hiconLink;
|
||||||
UINT m_idCmdFirst;
|
|
||||||
|
|
||||||
SHELLNEW_ITEM *LoadItem(LPCWSTR pwszExt);
|
SHELLNEW_ITEM *LoadItem(LPCWSTR pwszExt);
|
||||||
void UnloadItem(SHELLNEW_ITEM *pItem);
|
void UnloadItem(SHELLNEW_ITEM *pItem);
|
||||||
|
|
|
@ -840,7 +840,7 @@ HRESULT WINAPI CDesktopFolder::CallBack(IShellFolder *psf, HWND hwndOwner, IData
|
||||||
/* no data object means no selection */
|
/* no data object means no selection */
|
||||||
if (!pdtobj)
|
if (!pdtobj)
|
||||||
{
|
{
|
||||||
if (uMsg == DFM_INVOKECOMMAND && wParam == DFM_CMD_PROPERTIES)
|
if (uMsg == DFM_INVOKECOMMAND && wParam == 0)
|
||||||
{
|
{
|
||||||
if (32 >= (UINT)ShellExecuteW(hwndOwner, L"open", L"rundll32.exe shell32.dll,Control_RunDLL desk.cpl", NULL, NULL, SW_SHOWNORMAL))
|
if (32 >= (UINT)ShellExecuteW(hwndOwner, L"open", L"rundll32.exe shell32.dll,Control_RunDLL desk.cpl", NULL, NULL, SW_SHOWNORMAL))
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
@ -849,8 +849,10 @@ HRESULT WINAPI CDesktopFolder::CallBack(IShellFolder *psf, HWND hwndOwner, IData
|
||||||
else if (uMsg == DFM_MERGECONTEXTMENU)
|
else if (uMsg == DFM_MERGECONTEXTMENU)
|
||||||
{
|
{
|
||||||
QCMINFO *pqcminfo = (QCMINFO *)lParam;
|
QCMINFO *pqcminfo = (QCMINFO *)lParam;
|
||||||
_InsertMenuItemW(pqcminfo->hmenu, pqcminfo->indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);
|
HMENU hpopup = CreatePopupMenu();
|
||||||
_InsertMenuItemW(pqcminfo->hmenu, pqcminfo->indexMenu++, TRUE, FCIDM_SHVIEW_PROPERTIES, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED);
|
_InsertMenuItemW(hpopup, 0, TRUE, 0, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED);
|
||||||
|
Shell_MergeMenus(pqcminfo->hmenu, hpopup, pqcminfo->indexMenu++, pqcminfo->idCmdFirst, pqcminfo->idCmdLast, MM_ADDSEPARATOR);
|
||||||
|
DestroyMenu(hpopup);
|
||||||
}
|
}
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
|
@ -1500,7 +1500,7 @@ HRESULT WINAPI CFSFolder::CallBack(IShellFolder *psf, HWND hwndOwner, IDataObjec
|
||||||
/* no data object means no selection */
|
/* no data object means no selection */
|
||||||
if (!pdtobj)
|
if (!pdtobj)
|
||||||
{
|
{
|
||||||
if (uMsg == DFM_INVOKECOMMAND && wParam == DFM_CMD_PROPERTIES)
|
if (uMsg == DFM_INVOKECOMMAND && wParam == 0)
|
||||||
{
|
{
|
||||||
PUITEMID_CHILD pidlChild = ILClone(ILFindLastID(pidlRoot));
|
PUITEMID_CHILD pidlChild = ILClone(ILFindLastID(pidlRoot));
|
||||||
LPITEMIDLIST pidlParent = ILClone(pidlRoot);
|
LPITEMIDLIST pidlParent = ILClone(pidlRoot);
|
||||||
|
@ -1514,8 +1514,10 @@ HRESULT WINAPI CFSFolder::CallBack(IShellFolder *psf, HWND hwndOwner, IDataObjec
|
||||||
else if (uMsg == DFM_MERGECONTEXTMENU)
|
else if (uMsg == DFM_MERGECONTEXTMENU)
|
||||||
{
|
{
|
||||||
QCMINFO *pqcminfo = (QCMINFO *)lParam;
|
QCMINFO *pqcminfo = (QCMINFO *)lParam;
|
||||||
_InsertMenuItemW(pqcminfo->hmenu, pqcminfo->indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);
|
HMENU hpopup = CreatePopupMenu();
|
||||||
_InsertMenuItemW(pqcminfo->hmenu, pqcminfo->indexMenu++, TRUE, FCIDM_SHVIEW_PROPERTIES, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED);
|
_InsertMenuItemW(hpopup, 0, TRUE, 0, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED);
|
||||||
|
Shell_MergeMenus(pqcminfo->hmenu, hpopup, pqcminfo->indexMenu++, pqcminfo->idCmdFirst, pqcminfo->idCmdLast, MM_ADDSEPARATOR);
|
||||||
|
DestroyMenu(hpopup);
|
||||||
}
|
}
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Обзор", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "О&тваряне", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Из&рязване", FCIDM_SHVIEW_CUT
|
MENUITEM "Из&рязване", IDM_CUT
|
||||||
MENUITEM "За&помняне", FCIDM_SHVIEW_COPY
|
MENUITEM "За&помняне", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Създаване на &връзка", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Създаване на &връзка", IDM_CREATELINK
|
||||||
MENUITEM "Из&триване", FCIDM_SHVIEW_DELETE
|
MENUITEM "Из&триване", IDM_DELETE
|
||||||
MENUITEM "Пре&именуване", FCIDM_SHVIEW_RENAME
|
MENUITEM "Пре&именуване", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Свойства", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Свойства", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Open", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ut", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ut", IDM_CUT
|
||||||
MENUITEM "&Copy", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copy", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Create &Link", IDM_CREATELINK
|
||||||
MENUITEM "&Delete", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Delete", IDM_DELETE
|
||||||
MENUITEM "&Rename", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Rename", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Properties", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -69,17 +69,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "P&rozkoumat", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "O&tevřít", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Vyj&mout", FCIDM_SHVIEW_CUT
|
MENUITEM "Vyj&mout", IDM_CUT
|
||||||
MENUITEM "&Kopírovat", FCIDM_SHVIEW_COPY
|
MENUITEM "&Kopírovat", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Vytvořit zástupc&e", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Vytvořit zástupc&e", IDM_CREATELINK
|
||||||
MENUITEM "O&dstranit", FCIDM_SHVIEW_DELETE
|
MENUITEM "O&dstranit", IDM_DELETE
|
||||||
MENUITEM "&Přejmenovat", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Přejmenovat", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Vlastnosti", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Vlastnosti", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -69,17 +69,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Åbn", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "K&lip", FCIDM_SHVIEW_CUT
|
MENUITEM "K&lip", IDM_CUT
|
||||||
MENUITEM "&Kopiere", FCIDM_SHVIEW_COPY
|
MENUITEM "&Kopiere", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Opret &Link", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Opret &Link", IDM_CREATELINK
|
||||||
MENUITEM "&Slet", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Slet", IDM_DELETE
|
||||||
MENUITEM "&Omdøb", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Omdøb", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Egenskabe", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Egenskabe", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplorer", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Öffnen", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Ausschneiden", FCIDM_SHVIEW_CUT
|
MENUITEM "&Ausschneiden", IDM_CUT
|
||||||
MENUITEM "&Kopieren", FCIDM_SHVIEW_COPY
|
MENUITEM "&Kopieren", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Verknüpfung erstellen", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "&Verknüpfung erstellen", IDM_CREATELINK
|
||||||
MENUITEM "&Löschen", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Löschen", IDM_DELETE
|
||||||
MENUITEM "&Umbenennen", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Umbenennen", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Eigenschaften", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Eigenschaften", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Εξερεύνηση", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Άνοιγμα", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Α&ποκοπή", FCIDM_SHVIEW_CUT
|
MENUITEM "Α&ποκοπή", IDM_CUT
|
||||||
MENUITEM "Α&ντιγραφή", FCIDM_SHVIEW_COPY
|
MENUITEM "Α&ντιγραφή", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Δημιουργία &συντόμευσης", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Δημιουργία &συντόμευσης", IDM_CREATELINK
|
||||||
MENUITEM "&Διαγραφή", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Διαγραφή", IDM_DELETE
|
||||||
MENUITEM "&Μετονομασία", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Μετονομασία", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Ιδιότητες", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Ιδιότητες", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Open", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ut", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ut", IDM_CUT
|
||||||
MENUITEM "&Copy", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copy", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Create &Link", IDM_CREATELINK
|
||||||
MENUITEM "&Delete", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Delete", IDM_DELETE
|
||||||
MENUITEM "&Rename", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Rename", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Properties", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,16 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Open", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Cu&t", FCIDM_SHVIEW_CUT
|
MENUITEM "Cu&t", IDM_CUT
|
||||||
MENUITEM "&Copy", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copy", IDM_COPY
|
||||||
|
MENUITEM "Paste", IDM_INSERT
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Create &Link", IDM_CREATELINK
|
||||||
MENUITEM "&Delete", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Delete", IDM_DELETE
|
||||||
MENUITEM "&Rename", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Rename", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Properties", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -65,17 +65,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplorar", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Abrir", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ortar", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ortar", IDM_CUT
|
||||||
MENUITEM "&Copiar", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copiar", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&rear acceso directo", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "C&rear acceso directo", IDM_CREATELINK
|
||||||
MENUITEM "&Eliminar", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Eliminar", IDM_DELETE
|
||||||
MENUITEM "Re&nombrar", FCIDM_SHVIEW_RENAME
|
MENUITEM "Re&nombrar", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Propiedades", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Propiedades", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Selaa", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Avaa", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Leikkaa", FCIDM_SHVIEW_CUT
|
MENUITEM "&Leikkaa", IDM_CUT
|
||||||
MENUITEM "&Kopioi", FCIDM_SHVIEW_COPY
|
MENUITEM "&Kopioi", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Lu&o Linkki", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Lu&o Linkki", IDM_CREATELINK
|
||||||
MENUITEM "&Poista", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Poista", IDM_DELETE
|
||||||
MENUITEM "&Nimeä Uudelleen", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Nimeä Uudelleen", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Ominaisuudet", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Ominaisuudet", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplorer", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Ouvrir", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ouper", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ouper", IDM_CUT
|
||||||
MENUITEM "&Copier", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copier", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Créer un &lien", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Créer un &lien", IDM_CREATELINK
|
||||||
MENUITEM "&Supprimer", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Supprimer", IDM_DELETE
|
||||||
MENUITEM "&Renommer", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Renommer", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Propriétés", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Propriétés", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "סייר", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "פתח", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "גזור", FCIDM_SHVIEW_CUT
|
MENUITEM "גזור", IDM_CUT
|
||||||
MENUITEM "העתק", FCIDM_SHVIEW_COPY
|
MENUITEM "העתק", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "צור קישור", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "צור קישור", IDM_CREATELINK
|
||||||
MENUITEM "מחק", FCIDM_SHVIEW_DELETE
|
MENUITEM "מחק", IDM_DELETE
|
||||||
MENUITEM "שנה שם", FCIDM_SHVIEW_RENAME
|
MENUITEM "שנה שם", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "מאפיינים", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "מאפיינים", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "B&öngész", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "Megnyit", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Kivágás", FCIDM_SHVIEW_CUT
|
MENUITEM "Kivágás", IDM_CUT
|
||||||
MENUITEM "Másolás", FCIDM_SHVIEW_COPY
|
MENUITEM "Másolás", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Parancsikon létrehozása", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Parancsikon létrehozása", IDM_CREATELINK
|
||||||
MENUITEM "Törlés", FCIDM_SHVIEW_DELETE
|
MENUITEM "Törlés", IDM_DELETE
|
||||||
MENUITEM "Átnevezés", FCIDM_SHVIEW_RENAME
|
MENUITEM "Átnevezés", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Tulajdonságok", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "Tulajdonságok", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&splora", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Apri", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Taglia", FCIDM_SHVIEW_CUT
|
MENUITEM "&Taglia", IDM_CUT
|
||||||
MENUITEM "&Copia", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copia", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Crea Collegamento", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "&Crea Collegamento", IDM_CREATELINK
|
||||||
MENUITEM "&Cancella", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Cancella", IDM_DELETE
|
||||||
MENUITEM "&Rinomina", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Rinomina", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Proprietà", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Proprietà", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "エクスプローラ(&X)", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "開く(&O)", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "切り取り(&U)", FCIDM_SHVIEW_CUT
|
MENUITEM "切り取り(&U)", IDM_CUT
|
||||||
MENUITEM "コピー(&C)", FCIDM_SHVIEW_COPY
|
MENUITEM "コピー(&C)", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "ショートカットの作成(&L)", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "ショートカットの作成(&L)", IDM_CREATELINK
|
||||||
MENUITEM "削除(&D)", FCIDM_SHVIEW_DELETE
|
MENUITEM "削除(&D)", IDM_DELETE
|
||||||
MENUITEM "名前の変更(&R)", FCIDM_SHVIEW_RENAME
|
MENUITEM "名前の変更(&R)", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "プロパティ(&P)", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "プロパティ(&P)", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Open", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ut", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ut", IDM_CUT
|
||||||
MENUITEM "&Copy", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copy", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Create &Link", IDM_CREATELINK
|
||||||
MENUITEM "&Delete", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Delete", IDM_DELETE
|
||||||
MENUITEM "&Rename", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Rename", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Properties", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Open", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ut", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ut", IDM_CUT
|
||||||
MENUITEM "&Copy", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copy", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Create &Link", IDM_CREATELINK
|
||||||
MENUITEM "&Delete", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Delete", IDM_DELETE
|
||||||
MENUITEM "&Rename", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Rename", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Properties", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Utforsk", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Åpne", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Klipp &ut", FCIDM_SHVIEW_CUT
|
MENUITEM "Klipp &ut", IDM_CUT
|
||||||
MENUITEM "&Kopier", FCIDM_SHVIEW_COPY
|
MENUITEM "&Kopier", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Opprett snarvei", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "&Opprett snarvei", IDM_CREATELINK
|
||||||
MENUITEM "&Slett", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Slett", IDM_DELETE
|
||||||
MENUITEM "&Gi nytt navn", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Gi nytt navn", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Egenska&per", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "Egenska&per", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -67,17 +67,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Eksploruj", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Otwórz", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Wytnij", FCIDM_SHVIEW_CUT
|
MENUITEM "&Wytnij", IDM_CUT
|
||||||
MENUITEM "&Kopiuj", FCIDM_SHVIEW_COPY
|
MENUITEM "&Kopiuj", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Utwórz &Skrót", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Utwórz &Skrót", IDM_CREATELINK
|
||||||
MENUITEM "&Usuń", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Usuń", IDM_DELETE
|
||||||
MENUITEM "&Zmień nazwę", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Zmień nazwę", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Wł&aściwości", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "Wł&aściwości", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Explorar", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "A&brir", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ortar", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ortar", IDM_CUT
|
||||||
MENUITEM "&Copiar", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copiar", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Criar a&talho", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Criar a&talho", IDM_CREATELINK
|
||||||
MENUITEM "E&xcluir", FCIDM_SHVIEW_DELETE
|
MENUITEM "E&xcluir", IDM_DELETE
|
||||||
MENUITEM "&Renomear", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Renomear", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Propriedades", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Propriedades", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplorador", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Abrir", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ortar", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ortar", IDM_CUT
|
||||||
MENUITEM "&Copiar", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copiar", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Criar &Link", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Criar &Link", IDM_CREATELINK
|
||||||
MENUITEM "&Apagar", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Apagar", IDM_DELETE
|
||||||
MENUITEM "&Renomear", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Renomear", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Propriadades", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Propriadades", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -65,17 +65,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplorează", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "Desc&hide", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Decupează", FCIDM_SHVIEW_CUT
|
MENUITEM "&Decupează", IDM_CUT
|
||||||
MENUITEM "&Copiază", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copiază", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Crează sc&urtătură", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Crează sc&urtătură", IDM_CREATELINK
|
||||||
MENUITEM "Șt&erge", FCIDM_SHVIEW_DELETE
|
MENUITEM "Șt&erge", IDM_DELETE
|
||||||
MENUITEM "&Redenumește", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Redenumește", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Proprietăți", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Proprietăți", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -65,17 +65,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Проводник", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Открыть", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Вырезать", FCIDM_SHVIEW_CUT
|
MENUITEM "&Вырезать", IDM_CUT
|
||||||
MENUITEM "&Копировать", FCIDM_SHVIEW_COPY
|
MENUITEM "&Копировать", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Создать &ярлык", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Создать &ярлык", IDM_CREATELINK
|
||||||
MENUITEM "&Удалить", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Удалить", IDM_DELETE
|
||||||
MENUITEM "Переи&меновать", FCIDM_SHVIEW_RENAME
|
MENUITEM "Переи&меновать", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Сво&йства", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "Сво&йства", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Preskúmať", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Otvoriť", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Vystrihnúť", FCIDM_SHVIEW_CUT
|
MENUITEM "&Vystrihnúť", IDM_CUT
|
||||||
MENUITEM "&Kopírovať", FCIDM_SHVIEW_COPY
|
MENUITEM "&Kopírovať", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Vytvoriť o&dkaz", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Vytvoriť o&dkaz", IDM_CREATELINK
|
||||||
MENUITEM "&Odstrániť", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Odstrániť", IDM_DELETE
|
||||||
MENUITEM "Pre&menovať", FCIDM_SHVIEW_RENAME
|
MENUITEM "Pre&menovať", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Vl&astnosti", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "Vl&astnosti", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Open", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ut", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ut", IDM_CUT
|
||||||
MENUITEM "&Copy", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copy", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Create &Link", IDM_CREATELINK
|
||||||
MENUITEM "&Delete", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Delete", IDM_DELETE
|
||||||
MENUITEM "&Rename", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Rename", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Properties", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -67,17 +67,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplorues", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Hap", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Prej", FCIDM_SHVIEW_CUT
|
MENUITEM "Prej", IDM_CUT
|
||||||
MENUITEM "&Kopjo", FCIDM_SHVIEW_COPY
|
MENUITEM "&Kopjo", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Krijo &Lidhje", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Krijo &Lidhje", IDM_CREATELINK
|
||||||
MENUITEM "&Fshi", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Fshi", IDM_DELETE
|
||||||
MENUITEM "&Riemërto", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Riemërto", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Cilësime", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Cilësime", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "U&tforska", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Öppna", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "K&lipp ut", FCIDM_SHVIEW_CUT
|
MENUITEM "K&lipp ut", IDM_CUT
|
||||||
MENUITEM "&Kopiera", FCIDM_SHVIEW_COPY
|
MENUITEM "&Kopiera", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Skapa &genväg", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Skapa &genväg", IDM_CREATELINK
|
||||||
MENUITEM "&Ta bort", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Ta bort", IDM_DELETE
|
||||||
MENUITEM "&Byt namn", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Byt namn", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Egenskaper", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Egenskaper", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -65,17 +65,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "A&raştır", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Aç", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Kes", FCIDM_SHVIEW_CUT
|
MENUITEM "&Kes", IDM_CUT
|
||||||
MENUITEM "&Çoğalt", FCIDM_SHVIEW_COPY
|
MENUITEM "&Çoğalt", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "K&ısayol Oluştur", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "K&ısayol Oluştur", IDM_CREATELINK
|
||||||
MENUITEM "&Sil", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Sil", IDM_DELETE
|
||||||
MENUITEM "&Yeniden Adlandır", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Yeniden Adlandır", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Husûsîyetler", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Husûsîyetler", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -63,17 +63,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "&Провідник", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "В&ідкрити", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Вирізати", FCIDM_SHVIEW_CUT
|
MENUITEM "&Вирізати", IDM_CUT
|
||||||
MENUITEM "&Копіювати", FCIDM_SHVIEW_COPY
|
MENUITEM "&Копіювати", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Створити &ярлик", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Створити &ярлик", IDM_CREATELINK
|
||||||
MENUITEM "В&идалити", FCIDM_SHVIEW_DELETE
|
MENUITEM "В&идалити", IDM_DELETE
|
||||||
MENUITEM "Перей&менувати", FCIDM_SHVIEW_RENAME
|
MENUITEM "Перей&менувати", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "В&ластивості", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "В&ластивості", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -72,17 +72,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "浏览(&X)", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "打开(&O)", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "剪切(&U)", FCIDM_SHVIEW_CUT
|
MENUITEM "剪切(&U)", IDM_CUT
|
||||||
MENUITEM "复制(&C)", FCIDM_SHVIEW_COPY
|
MENUITEM "复制(&C)", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "创建快捷方式(&L)", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "创建快捷方式(&L)", IDM_CREATELINK
|
||||||
MENUITEM "删除(&D)", FCIDM_SHVIEW_DELETE
|
MENUITEM "删除(&D)", IDM_DELETE
|
||||||
MENUITEM "重命名(&R)", FCIDM_SHVIEW_RENAME
|
MENUITEM "重命名(&R)", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "属性(&P)", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "属性(&P)", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -71,17 +71,15 @@ MENU_SHV_FILE MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP ""
|
POPUP ""
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE
|
|
||||||
MENUITEM "&Open", FCIDM_SHVIEW_OPEN
|
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "C&ut", FCIDM_SHVIEW_CUT
|
MENUITEM "C&ut", IDM_CUT
|
||||||
MENUITEM "&Copy", FCIDM_SHVIEW_COPY
|
MENUITEM "&Copy", IDM_COPY
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK
|
MENUITEM "Create &Link", IDM_CREATELINK
|
||||||
MENUITEM "&Delete", FCIDM_SHVIEW_DELETE
|
MENUITEM "&Delete", IDM_DELETE
|
||||||
MENUITEM "&Rename", FCIDM_SHVIEW_RENAME
|
MENUITEM "&Rename", IDM_RENAME
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES
|
MENUITEM "&Properties", IDM_PROPERTIES
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -658,6 +658,14 @@
|
||||||
#define FCIDM_TB_REPORTVIEW 0xA004
|
#define FCIDM_TB_REPORTVIEW 0xA004
|
||||||
#define FCIDM_TB_DESKTOP 0xA005 /* FIXME */
|
#define FCIDM_TB_DESKTOP 0xA005 /* FIXME */
|
||||||
|
|
||||||
|
#define IDM_CUT (FCIDM_SHVIEW_CUT - 0x7000)
|
||||||
|
#define IDM_COPY (FCIDM_SHVIEW_COPY - 0x7000)
|
||||||
|
#define IDM_INSERT (FCIDM_SHVIEW_INSERT - 0x7000)
|
||||||
|
#define IDM_CREATELINK (FCIDM_SHVIEW_CREATELINK - 0x7000)
|
||||||
|
#define IDM_DELETE (FCIDM_SHVIEW_DELETE - 0x7000)
|
||||||
|
#define IDM_RENAME (FCIDM_SHVIEW_RENAME - 0x7000)
|
||||||
|
#define IDM_PROPERTIES (FCIDM_SHVIEW_PROPERTIES - 0x7000)
|
||||||
|
|
||||||
/* Registrar scripts (RGS) */
|
/* Registrar scripts (RGS) */
|
||||||
#define IDR_ADMINFOLDERSHORTCUT 128
|
#define IDR_ADMINFOLDERSHORTCUT 128
|
||||||
#define IDR_CONTROLPANEL 130
|
#define IDR_CONTROLPANEL 130
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue