https://git.reactos.org/?p=reactos.git;a=commitdiff;h=132463abf20d379e6d3e7…
commit 132463abf20d379e6d3e7051b0718052c60b334b
Author: Giannis Adamopoulos <gadamopoulos(a)reactos.org>
AuthorDate: Tue Nov 13 00:09:46 2018 +0200
Commit: Giannis Adamopoulos <gadamopoulos(a)reactos.org>
CommitDate: Sun Nov 18 14:01:54 2018 +0200
[NETSHELL] CNetConUiObject: Implement the Connect and Disconnect context menu items
---
dll/shellext/netshell/shfldr_netconnect.cpp | 36 ++++++++++++++++-------------
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/dll/shellext/netshell/shfldr_netconnect.cpp
b/dll/shellext/netshell/shfldr_netconnect.cpp
index 8f553d289b..a3398f36ec 100644
--- a/dll/shellext/netshell/shfldr_netconnect.cpp
+++ b/dll/shellext/netshell/shfldr_netconnect.cpp
@@ -477,7 +477,7 @@ HRESULT WINAPI CNetConUiObject::QueryContextMenu(
return E_FAIL;
}
- if (pdata->Status == NCS_HARDWARE_DISABLED)
+ if (pdata->Status == NCS_HARDWARE_DISABLED || pdata->Status ==
NCS_MEDIA_DISCONNECTED || pdata->Status == NCS_DISCONNECTED)
_InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst, MFT_STRING,
MAKEINTRESOURCEW(IDS_NET_ACTIVATE), MFS_DEFAULT);
else
_InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 1, MFT_STRING,
MAKEINTRESOURCEW(IDS_NET_DEACTIVATE), MFS_ENABLED);
@@ -622,13 +622,6 @@ HRESULT WINAPI CNetConUiObject::InvokeCommand(LPCMINVOKECOMMANDINFO
lpcmi)
switch(CmdId)
{
- case IDS_NET_ACTIVATE:
- case IDS_NET_DEACTIVATE:
- case IDS_NET_REPAIR:
- case IDS_NET_CREATELINK:
- case IDS_NET_DELETE:
- FIXME("Command %u is not implemented\n", CmdId);
- return E_NOTIMPL;
case IDS_NET_RENAME:
{
HRESULT hr;
@@ -646,17 +639,28 @@ HRESULT WINAPI CNetConUiObject::InvokeCommand(LPCMINVOKECOMMANDINFO
lpcmi)
{
return ShowNetConnectionStatus(m_lpOleCmd, m_pidl, lpcmi->hwnd);
}
- case IDS_NET_PROPERTIES:
- {
- HRESULT hr;
- CComPtr<INetConnection> pCon;
+ case IDS_NET_REPAIR:
+ case IDS_NET_CREATELINK:
+ case IDS_NET_DELETE:
+ FIXME("Command %u is not implemented\n", CmdId);
+ return E_NOTIMPL;
+ }
- hr = ILGetConnection(m_pidl, &pCon);
- if (FAILED_UNEXPECTEDLY(hr))
- return hr;
+ HRESULT hr;
+ CComPtr<INetConnection> pCon;
+
+ hr = ILGetConnection(m_pidl, &pCon);
+ if (FAILED_UNEXPECTEDLY(hr))
+ return hr;
+ switch(CmdId)
+ {
+ case IDS_NET_ACTIVATE:
+ return pCon->Connect();
+ case IDS_NET_DEACTIVATE:
+ return pCon->Disconnect();
+ case IDS_NET_PROPERTIES:
return ShowNetConnectionProperties(pCon, lpcmi->hwnd);
- }
}
return E_NOTIMPL;