[NETSHELL] CNetConUiObject: Implement the Connect and Disconnect context menu items

This commit is contained in:
Giannis Adamopoulos 2018-11-13 00:09:46 +02:00
parent 7506198780
commit 132463abf2

View file

@ -477,7 +477,7 @@ HRESULT WINAPI CNetConUiObject::QueryContextMenu(
return E_FAIL; 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); _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_ACTIVATE), MFS_DEFAULT);
else else
_InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 1, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_DEACTIVATE), MFS_ENABLED); _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) 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: case IDS_NET_RENAME:
{ {
HRESULT hr; HRESULT hr;
@ -646,8 +639,13 @@ HRESULT WINAPI CNetConUiObject::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi)
{ {
return ShowNetConnectionStatus(m_lpOleCmd, m_pidl, lpcmi->hwnd); return ShowNetConnectionStatus(m_lpOleCmd, m_pidl, lpcmi->hwnd);
} }
case IDS_NET_PROPERTIES: case IDS_NET_REPAIR:
{ case IDS_NET_CREATELINK:
case IDS_NET_DELETE:
FIXME("Command %u is not implemented\n", CmdId);
return E_NOTIMPL;
}
HRESULT hr; HRESULT hr;
CComPtr<INetConnection> pCon; CComPtr<INetConnection> pCon;
@ -655,9 +653,15 @@ HRESULT WINAPI CNetConUiObject::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi)
if (FAILED_UNEXPECTEDLY(hr)) if (FAILED_UNEXPECTEDLY(hr))
return 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 ShowNetConnectionProperties(pCon, lpcmi->hwnd);
} }
}
return E_NOTIMPL; return E_NOTIMPL;
} }