mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 15:26:02 +00:00
- Add Items to Connection ShellFolder Item Context Menu
- Are not yet handled svn path=/trunk/; revision=35719
This commit is contained in:
parent
5ea699faeb
commit
f5852bccf9
4 changed files with 116 additions and 4 deletions
|
@ -18,4 +18,12 @@ BEGIN
|
||||||
IDS_STATUS_CONNECTED "Verbindung hergestellt"
|
IDS_STATUS_CONNECTED "Verbindung hergestellt"
|
||||||
IDS_STATUS_OPERATIONAL "Verbindung hergestellt"
|
IDS_STATUS_OPERATIONAL "Verbindung hergestellt"
|
||||||
|
|
||||||
|
IDS_NET_ACTIVATE "Aktivieren"
|
||||||
|
IDS_NET_DEACTIVATE "Deaktivieren"
|
||||||
|
IDS_NET_STATUS "Status"
|
||||||
|
IDS_NET_REPAIR "Reparieren"
|
||||||
|
IDS_NET_CREATELINK "Verknüpfung erstellen"
|
||||||
|
IDS_NET_DELETE "Löschen"
|
||||||
|
IDS_NET_RENAME "Umbenennen"
|
||||||
|
IDS_NET_PROPERTIES "Eigenschaften"
|
||||||
END
|
END
|
||||||
|
|
|
@ -16,5 +16,13 @@ BEGIN
|
||||||
IDS_STATUS_CONNECTING "Acquiring network address"
|
IDS_STATUS_CONNECTING "Acquiring network address"
|
||||||
IDS_STATUS_CONNECTED "Connected"
|
IDS_STATUS_CONNECTED "Connected"
|
||||||
IDS_STATUS_OPERATIONAL "Connected"
|
IDS_STATUS_OPERATIONAL "Connected"
|
||||||
|
|
||||||
|
IDS_NET_ACTIVATE "Enable"
|
||||||
|
IDS_NET_DEACTIVATE "Disable"
|
||||||
|
IDS_NET_STATUS "Status"
|
||||||
|
IDS_NET_REPAIR "Repair"
|
||||||
|
IDS_NET_CREATELINK "Create Shortcut"
|
||||||
|
IDS_NET_DELETE "Delete"
|
||||||
|
IDS_NET_PROPERTIES "Properties"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -29,3 +29,12 @@
|
||||||
#define IDS_STATUS_CONNECTING 10011
|
#define IDS_STATUS_CONNECTING 10011
|
||||||
#define IDS_STATUS_CONNECTED 10012
|
#define IDS_STATUS_CONNECTED 10012
|
||||||
#define IDS_STATUS_OPERATIONAL 10013
|
#define IDS_STATUS_OPERATIONAL 10013
|
||||||
|
|
||||||
|
#define IDS_NET_ACTIVATE 10100
|
||||||
|
#define IDS_NET_DEACTIVATE 10101
|
||||||
|
#define IDS_NET_STATUS 10102
|
||||||
|
#define IDS_NET_REPAIR 10103
|
||||||
|
#define IDS_NET_CREATELINK 10104
|
||||||
|
#define IDS_NET_DELETE 10105
|
||||||
|
#define IDS_NET_RENAME 10106
|
||||||
|
#define IDS_NET_PROPERTIES 10107
|
||||||
|
|
|
@ -380,7 +380,7 @@ static HRESULT WINAPI ISF_NetConnect_fnGetDisplayNameOf (IShellFolder2 * iface,
|
||||||
val = _ILGetValueStruct(pidl);
|
val = _ILGetValueStruct(pidl);
|
||||||
if (val)
|
if (val)
|
||||||
{
|
{
|
||||||
if (INetConnection_GetProperties((INetConnection*)val->pItem, &pProperties) == NOERROR)
|
if (INetConnection_GetProperties(val->pItem, &pProperties) == NOERROR)
|
||||||
{
|
{
|
||||||
if (pProperties->pszwName)
|
if (pProperties->pszwName)
|
||||||
{
|
{
|
||||||
|
@ -628,6 +628,51 @@ static ULONG WINAPI ISF_NetConnect_IContextMenu2_Release(IContextMenu2 * iface)
|
||||||
return IShellFolder2_Release((IShellFolder2*)This);
|
return IShellFolder2_Release((IShellFolder2*)This);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WINAPI _InsertMenuItemW (
|
||||||
|
HMENU hmenu,
|
||||||
|
UINT indexMenu,
|
||||||
|
BOOL fByPosition,
|
||||||
|
UINT wID,
|
||||||
|
UINT fType,
|
||||||
|
LPCWSTR dwTypeData,
|
||||||
|
UINT fState)
|
||||||
|
{
|
||||||
|
MENUITEMINFOW mii;
|
||||||
|
WCHAR szText[100];
|
||||||
|
|
||||||
|
ZeroMemory(&mii, sizeof(mii));
|
||||||
|
mii.cbSize = sizeof(mii);
|
||||||
|
if (fType == MFT_SEPARATOR)
|
||||||
|
{
|
||||||
|
mii.fMask = MIIM_ID | MIIM_TYPE;
|
||||||
|
}
|
||||||
|
else if (fType == MFT_STRING)
|
||||||
|
{
|
||||||
|
mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE;
|
||||||
|
if ((ULONG_PTR)HIWORD((ULONG_PTR)dwTypeData) == 0)
|
||||||
|
{
|
||||||
|
if (LoadStringW(netshell_hInstance, LOWORD((ULONG_PTR)dwTypeData), szText, sizeof(szText)/sizeof(WCHAR)))
|
||||||
|
{
|
||||||
|
szText[(sizeof(szText)/sizeof(WCHAR))-1] = 0;
|
||||||
|
mii.dwTypeData = szText;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mii.dwTypeData = (LPWSTR) dwTypeData;
|
||||||
|
}
|
||||||
|
mii.fState = fState;
|
||||||
|
}
|
||||||
|
|
||||||
|
mii.wID = wID;
|
||||||
|
mii.fType = fType;
|
||||||
|
InsertMenuItemW( hmenu, indexMenu, fByPosition, &mii);
|
||||||
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* ISF_NetConnect_IContextMenu_QueryContextMenu()
|
* ISF_NetConnect_IContextMenu_QueryContextMenu()
|
||||||
*/
|
*/
|
||||||
|
@ -639,10 +684,52 @@ static HRESULT WINAPI ISF_NetConnect_IContextMenu2_QueryContextMenu(
|
||||||
UINT idCmdLast,
|
UINT idCmdLast,
|
||||||
UINT uFlags)
|
UINT uFlags)
|
||||||
{
|
{
|
||||||
int Count = 1;
|
IGenericSFImpl * This = impl_from_IContextMenu2(iface);
|
||||||
//IGenericSFImpl * This = impl_from_IContextMenu2(iface);
|
VALUEStruct * val;
|
||||||
|
NETCON_PROPERTIES * pProperties;
|
||||||
|
|
||||||
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, Count);
|
val = _ILGetValueStruct(This->apidl);
|
||||||
|
if (!val)
|
||||||
|
return E_FAIL;
|
||||||
|
|
||||||
|
if (INetConnection_GetProperties((INetConnection*)val->pItem, &pProperties) != NOERROR)
|
||||||
|
return E_FAIL;
|
||||||
|
|
||||||
|
if (pProperties->Status == NCS_HARDWARE_DISABLED)
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_ACTIVATE, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_ACTIVATE), MFS_DEFAULT);
|
||||||
|
else
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_DEACTIVATE, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_DEACTIVATE), MFS_ENABLED);
|
||||||
|
|
||||||
|
if (pProperties->Status == NCS_HARDWARE_DISABLED || pProperties->Status == NCS_MEDIA_DISCONNECTED || pProperties->Status == NCS_DISCONNECTED)
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_STATUS, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_STATUS), MFS_GRAYED);
|
||||||
|
else if (pProperties->Status == NCS_CONNECTED)
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_STATUS, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_STATUS), MFS_DEFAULT);
|
||||||
|
else
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_STATUS, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_STATUS), MFS_ENABLED);
|
||||||
|
|
||||||
|
if (pProperties->Status == NCS_HARDWARE_DISABLED || pProperties->Status == NCS_MEDIA_DISCONNECTED)
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_REPAIR, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_REPAIR), MFS_GRAYED);
|
||||||
|
else
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_REPAIR, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_REPAIR), MFS_ENABLED);
|
||||||
|
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, -1, MFT_SEPARATOR, NULL, MFS_ENABLED);
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_CREATELINK, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_CREATELINK), MFS_ENABLED);
|
||||||
|
|
||||||
|
if (pProperties->dwCharacter & NCCF_ALLOW_REMOVAL)
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_DELETE, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_DELETE), MFS_ENABLED);
|
||||||
|
else
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_DELETE, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_DELETE), MFS_GRAYED);
|
||||||
|
|
||||||
|
if (pProperties->dwCharacter & NCCF_ALLOW_RENAME)
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_RENAME, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_RENAME), MFS_ENABLED);
|
||||||
|
else
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_RENAME, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_RENAME), MFS_GRAYED);
|
||||||
|
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, -1, MFT_SEPARATOR, NULL, MFS_ENABLED);
|
||||||
|
_InsertMenuItemW(hMenu, indexMenu++, TRUE, IDS_NET_PROPERTIES, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_PROPERTIES), MFS_ENABLED);
|
||||||
|
|
||||||
|
|
||||||
|
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 9);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue