ReactOS 0.4.15-dev-8434-g155a7c7
CNetConUiObject Class Reference

#include <shfldr_netconnect.h>

Inheritance diagram for CNetConUiObject:
Collaboration diagram for CNetConUiObject:

Public Member Functions

 CNetConUiObject ()
 
 ~CNetConUiObject ()
 
HRESULT WINAPI Initialize (PCUITEMID_CHILD pidl, IOleCommandTarget *lpOleCmd)
 
STDMETHOD() QueryContextMenu (HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
 
STDMETHOD() InvokeCommand (LPCMINVOKECOMMANDINFO lpici) override
 
STDMETHOD() GetCommandString (UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax) override
 
STDMETHOD() HandleMenuMsg (UINT uMsg, WPARAM wParam, LPARAM lParam) override
 
STDMETHOD() HandleMenuMsg2 (UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *plResult) override
 
STDMETHOD() SetSite (IUnknown *punk) override
 
STDMETHOD() GetSite (REFIID iid, void **ppvSite) override
 
STDMETHOD() GetInfoFlags (DWORD *pdwFlags) override
 
STDMETHOD() GetInfoTip (DWORD dwFlags, WCHAR **ppwszTip) override
 
STDMETHOD() GetIconLocation (UINT uFlags, LPWSTR szIconFile, UINT cchMax, int *piIndex, UINT *pwFlags) override
 
STDMETHOD() Extract (LPCWSTR pszFile, UINT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize) override
 
- Public Member Functions inherited from ATL::CComObjectRootEx< CComMultiThreadModelNoCS >
 ~CComObjectRootEx ()
 
ULONG InternalAddRef ()
 
ULONG InternalRelease ()
 
void Lock ()
 
void Unlock ()
 
HRESULT _AtlInitialConstruct ()
 
- Public Member Functions inherited from ATL::CComObjectRootBase
 CComObjectRootBase ()
 
 ~CComObjectRootBase ()
 
void SetVoid (void *)
 
HRESULT _AtlFinalConstruct ()
 
HRESULT FinalConstruct ()
 
void InternalFinalConstructAddRef ()
 
void InternalFinalConstructRelease ()
 
void FinalRelease ()
 
HRESULT HandleMenuMsg2 ([in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult)
 
HRESULT HandleMenuMsg ([in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam)
 
HRESULT QueryContextMenu ([in] HMENU hmenu, [in] UINT indexMenu, [in] UINT idCmdFirst, [in] UINT idCmdLast, [in] UINT uFlags)
 
HRESULT InvokeCommand ([in] LPCMINVOKECOMMANDINFO lpici)
 
HRESULT GetCommandString ([in] UINT_PTR idCmd, [in] UINT uType, [out] UINT *pwReserved, [out, size_is(cchMax)] LPSTR pszName, [in] UINT cchMax)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
- Public Member Functions inherited from IObjectWithSite
HRESULT SetSite ([in] IUnknown *pUnkSite)
 
HRESULT GetSite ([in] REFIID riid, [out, iid_is(riid)] PVOID *ppvSite)
 
- Public Member Functions inherited from IExtractIconW
HRESULT GetIconLocation ([in] UINT uFlags, [out, size_is(cchMax)] LPWSTR szIconFile, [in] UINT cchMax, [out] INT *piIndex, [out] UINT *pwFlags)
 
HRESULT Extract ([in] LPCWSTR pszFile, [in] UINT nIconIndex, [out] HICON *phiconLarge, [out] HICON *phiconSmall, [in] UINT nIconSize)
 

Private Attributes

PCUITEMID_CHILD m_pidl
 
CComPtr< IUnknownm_pUnknown
 
CComPtr< IOleCommandTargetm_lpOleCmd
 

Additional Inherited Members

- Public Types inherited from IContextMenu3
typedef IContextMenu3LPCONTEXTMENU3
 
- Public Types inherited from IContextMenu2
typedef IContextMenu2LPCONTEXTMENU2
 
- Public Types inherited from IContextMenu
typedef IContextMenuLPCONTEXTMENU
 
typedef struct IContextMenu::tagCMINVOKECOMMANDINFO CMINVOKECOMMANDINFO
 
typedef struct IContextMenu::tagCMINVOKECOMMANDINFOLPCMINVOKECOMMANDINFO
 
typedef struct IContextMenu::tagCMInvokeCommandInfoEx CMINVOKECOMMANDINFOEX
 
typedef struct IContextMenu::tagCMInvokeCommandInfoExLPCMINVOKECOMMANDINFOEX
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Types inherited from IObjectWithSite
typedef IObjectWithSiteLPOBJECTWITHSITE
 
- Public Types inherited from IExtractIconW
typedef IExtractIconWLPEXTRACTICONW
 
- Static Public Member Functions inherited from ATL::CComObjectRootBase
static void WINAPI ObjectMain (bool)
 
static const struct _ATL_CATMAP_ENTRYGetCategoryMap ()
 
static HRESULT WINAPI InternalQueryInterface (void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 
- Static Public Attributes inherited from IContextMenu
static const WCHAR CMDSTR_NEWFOLDERW [] = {'N','e','w','F','o','l','d','e','r',0}
 
static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0}
 
static const WCHAR CMDSTR_VIEWDETAILSW [] = {'V','i','e','w','D','e','t','a','i','l','s',0}
 

Detailed Description

Definition at line 88 of file shfldr_netconnect.h.

Constructor & Destructor Documentation

◆ CNetConUiObject()

CNetConUiObject::CNetConUiObject ( )

Definition at line 385 of file shfldr_netconnect.cpp.

386 : m_pidl(NULL)
387{
388}
PCUITEMID_CHILD m_pidl
#define NULL
Definition: types.h:112

◆ ~CNetConUiObject()

CNetConUiObject::~CNetConUiObject ( )

Definition at line 390 of file shfldr_netconnect.cpp.

391{
392}

Member Function Documentation

◆ Extract()

HRESULT WINAPI CNetConUiObject::Extract ( LPCWSTR  pszFile,
UINT  nIconIndex,
HICON phiconLarge,
HICON phiconSmall,
UINT  nIconSize 
)
override

Implements IExtractIconW.

Definition at line 759 of file shfldr_netconnect.cpp.

765{
766 return SHDefExtractIconW(pszFile, nIconIndex, 0, phiconLarge, phiconSmall, nIconSize);
767}
HRESULT WINAPI SHDefExtractIconW(LPCWSTR pszIconFile, int iIndex, UINT uFlags, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize)
Definition: iconcache.cpp:1009

◆ GetCommandString()

HRESULT WINAPI CNetConUiObject::GetCommandString ( UINT_PTR  idCmd,
UINT  uType,
UINT pwReserved,
LPSTR  pszName,
UINT  cchMax 
)
override

Implements IContextMenu.

Definition at line 677 of file shfldr_netconnect.cpp.

683{
684 return E_FAIL;
685}
#define E_FAIL
Definition: ddrawi.h:102

◆ GetIconLocation()

HRESULT WINAPI CNetConUiObject::GetIconLocation ( UINT  uFlags,
LPWSTR  szIconFile,
UINT  cchMax,
int piIndex,
UINT pwFlags 
)
override

Definition at line 727 of file shfldr_netconnect.cpp.

733{
734 *pwFlags = 0;
736 {
737 ERR("GetModuleFileNameW failed\n");
738 return E_FAIL;
739 }
740
742 if (!pdata)
743 {
744 ERR("Got invalid pidl\n");
745 return E_FAIL;
746 }
747
748 if (pdata->Status == NCS_CONNECTED || pdata->Status == NCS_CONNECTING)
749 *piIndex = -IDI_NET_IDLE;
750 else
751 *piIndex = -IDI_NET_OFF;
752
753 return S_OK;
754}
UINT cchMax
#define ERR(fmt,...)
Definition: precomp.h:57
#define IDI_NET_OFF
Definition: resource.h:11
#define IDI_NET_IDLE
Definition: resource.h:10
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
Definition: loader.c:600
PNETCONIDSTRUCT ILGetConnData(PCITEMID_CHILD pidl)
Definition: enumlist.cpp:10
#define S_OK
Definition: intsafe.h:52
static PROTOCOLDATA * pdata
Definition: protocol.c:158
@ NCS_CONNECTING
Definition: netcon.h:40
@ NCS_CONNECTED
Definition: netcon.h:41
HINSTANCE netshell_hInstance
Definition: netshell.cpp:12

◆ GetInfoFlags()

HRESULT WINAPI CNetConUiObject::GetInfoFlags ( DWORD pdwFlags)
override

Definition at line 854 of file shfldr_netconnect.cpp.

855{
856 *pdwFlags = 0;
857
858 return S_OK;
859}

◆ GetInfoTip()

HRESULT WINAPI CNetConUiObject::GetInfoTip ( DWORD  dwFlags,
WCHAR **  ppwszTip 
)
override

Definition at line 866 of file shfldr_netconnect.cpp.

867{
868 *ppwszTip = NULL;
869 return S_OK;
870}

◆ GetSite()

HRESULT WINAPI CNetConUiObject::GetSite ( REFIID  iid,
void **  ppvSite 
)
override

Definition at line 707 of file shfldr_netconnect.cpp.

708{
709 if (!m_pUnknown)
710 {
711 *ppvSite = NULL;
712 return E_FAIL;
713 }
714
715 return m_pUnknown->QueryInterface(riid, ppvSite);
716}
CComPtr< IUnknown > m_pUnknown
REFIID riid
Definition: atlbase.h:39

◆ HandleMenuMsg()

HRESULT WINAPI CNetConUiObject::HandleMenuMsg ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
override

Implements IContextMenu2.

Definition at line 690 of file shfldr_netconnect.cpp.

694{
695 return E_NOTIMPL;
696}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ HandleMenuMsg2()

HRESULT WINAPI CNetConUiObject::HandleMenuMsg2 ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
LRESULT plResult 
)
override

Implements IContextMenu3.

Definition at line 698 of file shfldr_netconnect.cpp.

703{
704 return E_NOTIMPL;
705}

◆ Initialize()

HRESULT WINAPI CNetConUiObject::Initialize ( PCUITEMID_CHILD  pidl,
IOleCommandTarget lpOleCmd 
)

Definition at line 394 of file shfldr_netconnect.cpp.

395{
396 m_pidl = pidl;
397 m_lpOleCmd = lpOleCmd;
398 return S_OK;
399}
CComPtr< IOleCommandTarget > m_lpOleCmd

◆ InvokeCommand()

HRESULT WINAPI CNetConUiObject::InvokeCommand ( LPCMINVOKECOMMANDINFO  lpici)
override

Implements IContextMenu.

Definition at line 611 of file shfldr_netconnect.cpp.

612{
613 UINT CmdId;
614
615 /* We should get this when F2 is pressed in explorer */
616 if (HIWORD(lpcmi->lpVerb) && !strcmp(lpcmi->lpVerb, "rename"))
617 lpcmi->lpVerb = MAKEINTRESOURCEA(IDS_NET_RENAME);
618
619 if (HIWORD(lpcmi->lpVerb) || LOWORD(lpcmi->lpVerb) > 7)
620 {
621 FIXME("Got invalid command\n");
622 return E_NOTIMPL;
623 }
624
625 CmdId = LOWORD(lpcmi->lpVerb) + IDS_NET_ACTIVATE;
626
627 switch(CmdId)
628 {
629 case IDS_NET_RENAME:
630 {
631 HRESULT hr;
634 if (SUCCEEDED(hr))
635 {
636 SVSIF selFlags = SVSI_DESELECTOTHERS | SVSI_EDIT | SVSI_ENSUREVISIBLE | SVSI_FOCUSED | SVSI_SELECT;
637 psv->SelectItem(m_pidl, selFlags);
638 }
639
640 return S_OK;
641 }
642 case IDS_NET_STATUS:
643 {
644 return ShowNetConnectionStatus(m_lpOleCmd, m_pidl, lpcmi->hwnd);
645 }
646 case IDS_NET_REPAIR:
648 case IDS_NET_DELETE:
649 FIXME("Command %u is not implemented\n", CmdId);
650 return E_NOTIMPL;
651 }
652
653 HRESULT hr;
655
656 hr = ILGetConnection(m_pidl, &pCon);
658 return hr;
659
660 switch(CmdId)
661 {
662 case IDS_NET_ACTIVATE:
663 return pCon->Connect();
665 return pCon->Disconnect();
667 return ShowNetConnectionProperties(pCon, lpcmi->hwnd);
668 }
669
670 return E_NOTIMPL;
671}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#define FIXME(fmt,...)
Definition: precomp.h:53
#define IDS_NET_DELETE
Definition: resource.h:93
#define IDS_NET_STATUS
Definition: resource.h:90
#define IDS_NET_PROPERTIES
Definition: resource.h:95
#define IDS_NET_DEACTIVATE
Definition: resource.h:89
#define IDS_NET_RENAME
Definition: resource.h:94
#define IDS_NET_REPAIR
Definition: resource.h:91
#define IDS_NET_ACTIVATE
Definition: resource.h:88
#define IDS_NET_CREATELINK
Definition: resource.h:92
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:121
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1497
HRESULT ILGetConnection(PCITEMID_CHILD pidl, INetConnection **pItem)
Definition: enumlist.cpp:77
#define SUCCEEDED(hr)
Definition: intsafe.h:50
unsigned int UINT
Definition: ndis.h:50
#define LOWORD(l)
Definition: pedump.c:82
HRESULT ShowNetConnectionStatus(IOleCommandTarget *lpOleCmd, PCUITEMID_CHILD pidl, HWND hwnd)
HRESULT ShowNetConnectionProperties(INetConnection *pNetConnect, HWND hwnd)
HRESULT hr
Definition: shlfolder.c:183
#define SID_IFolderView
#define HIWORD(l)
Definition: typedefs.h:247
#define MAKEINTRESOURCEA(i)
Definition: winuser.h:581
#define IID_PPV_ARG(Itype, ppType)

◆ QueryContextMenu()

HRESULT WINAPI CNetConUiObject::QueryContextMenu ( HMENU  hmenu,
UINT  indexMenu,
UINT  idCmdFirst,
UINT  idCmdLast,
UINT  uFlags 
)
override

Implements IContextMenu.

Definition at line 449 of file shfldr_netconnect.cpp.

455{
457 if (!pdata)
458 {
459 ERR("Got invalid pidl\n");
460 return E_FAIL;
461 }
462
463 if (pdata->Status == NCS_HARDWARE_DISABLED || pdata->Status == NCS_MEDIA_DISCONNECTED || pdata->Status == NCS_DISCONNECTED)
465 else
466 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 1, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_DEACTIVATE), MFS_ENABLED);
467
468 if (pdata->Status == NCS_HARDWARE_DISABLED || pdata->Status == NCS_MEDIA_DISCONNECTED || pdata->Status == NCS_DISCONNECTED)
469 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 2, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_STATUS), MFS_GRAYED);
470 else if (pdata->Status == NCS_CONNECTED)
471 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 2, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_STATUS), MFS_DEFAULT);
472 else
473 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 2, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_STATUS), MFS_ENABLED);
474
475 if (pdata->Status == NCS_HARDWARE_DISABLED || pdata->Status == NCS_MEDIA_DISCONNECTED)
476 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 3, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_REPAIR), MFS_GRAYED);
477 else
478 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 3, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_REPAIR), MFS_ENABLED);
479
480 _InsertMenuItemW(hMenu, indexMenu++, TRUE, -1, MFT_SEPARATOR, NULL, MFS_ENABLED);
481 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 4, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_CREATELINK), MFS_ENABLED);
482
483 if (pdata->dwCharacter & NCCF_ALLOW_REMOVAL)
484 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 5, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_DELETE), MFS_ENABLED);
485 else
486 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 5, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_DELETE), MFS_GRAYED);
487
488 if (pdata->dwCharacter & NCCF_ALLOW_RENAME)
489 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 6, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_RENAME), MFS_ENABLED);
490 else
491 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 6, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_RENAME), MFS_GRAYED);
492
493 _InsertMenuItemW(hMenu, indexMenu++, TRUE, -1, MFT_SEPARATOR, NULL, MFS_ENABLED);
494 if (pdata->Status == NCS_CONNECTED)
495 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 7, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_PROPERTIES), MFS_ENABLED);
496 else
497 _InsertMenuItemW(hMenu, indexMenu++, TRUE, idCmdFirst + 7, MFT_STRING, MAKEINTRESOURCEW(IDS_NET_PROPERTIES), MFS_DEFAULT);
498
499 return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 9);
500}
#define TRUE
Definition: types.h:120
#define MAKE_HRESULT(sev, fac, code)
Definition: dmerror.h:30
@ NCCF_ALLOW_REMOVAL
Definition: netcon.h:18
@ NCCF_ALLOW_RENAME
Definition: netcon.h:19
@ NCS_MEDIA_DISCONNECTED
Definition: netcon.h:46
@ NCS_DISCONNECTED
Definition: netcon.h:39
@ NCS_HARDWARE_DISABLED
Definition: netcon.h:44
void WINAPI _InsertMenuItemW(HMENU hmenu, UINT indexMenu, BOOL fByPosition, UINT wID, UINT fType, LPCWSTR dwTypeData, UINT fState)
#define SEVERITY_SUCCESS
Definition: winerror.h:64
#define MFT_SEPARATOR
Definition: winuser.h:744
#define MFS_DEFAULT
Definition: winuser.h:748
#define MFS_GRAYED
Definition: winuser.h:751
#define MFS_ENABLED
Definition: winuser.h:750
#define MFT_STRING
Definition: winuser.h:746
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582

◆ SetSite()

HRESULT WINAPI CNetConUiObject::SetSite ( IUnknown punk)
override

Implements IObjectWithSite.

Definition at line 718 of file shfldr_netconnect.cpp.

719{
720 m_pUnknown = pUnkSite;
721 return S_OK;
722}

Member Data Documentation

◆ m_lpOleCmd

CComPtr<IOleCommandTarget> CNetConUiObject::m_lpOleCmd
private

Definition at line 98 of file shfldr_netconnect.h.

Referenced by Initialize(), and InvokeCommand().

◆ m_pidl

PCUITEMID_CHILD CNetConUiObject::m_pidl
private

Definition at line 96 of file shfldr_netconnect.h.

Referenced by GetIconLocation(), Initialize(), InvokeCommand(), and QueryContextMenu().

◆ m_pUnknown

CComPtr<IUnknown> CNetConUiObject::m_pUnknown
private

Definition at line 97 of file shfldr_netconnect.h.

Referenced by GetSite(), InvokeCommand(), and SetSite().


The documentation for this class was generated from the following files: