ReactOS 0.4.16-dev-1078-g21d3e29
CNetFolder.cpp File Reference
#include <precomp.h>
Include dependency graph for CNetFolder.cpp:

Go to the source code of this file.

Classes

class  CNetFolderEnum
 

Macros

#define HACKY_UNC_PATHS
 
#define COLUMN_NAME   0
 
#define COLUMN_CATEGORY   1
 
#define COLUMN_WORKGROUP   2
 
#define COLUMN_NETLOCATION   3
 
#define NETWORKPLACESSHELLVIEWCOLUMNS   4
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (shell)
 
LPITEMIDLIST ILCreateFromNetworkPlaceW (LPCWSTR lpNetworkPlace)
 
HRESULT CNetFolderExtractIcon_CreateInstance (LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
 
HRESULT CALLBACK NetFolderMenuCallback (IShellFolder *psf, HWND hwnd, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static HRESULT CALLBACK CNetFolderBackgroundMenuCB (IShellFolder *psf, HWND hwnd, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam)
 

Variables

static shvheader NetworkPlacesSFHeader []
 

Macro Definition Documentation

◆ COLUMN_CATEGORY

#define COLUMN_CATEGORY   1

Definition at line 95 of file CNetFolder.cpp.

◆ COLUMN_NAME

#define COLUMN_NAME   0

Definition at line 94 of file CNetFolder.cpp.

◆ COLUMN_NETLOCATION

#define COLUMN_NETLOCATION   3

Definition at line 97 of file CNetFolder.cpp.

◆ COLUMN_WORKGROUP

#define COLUMN_WORKGROUP   2

Definition at line 96 of file CNetFolder.cpp.

◆ HACKY_UNC_PATHS

#define HACKY_UNC_PATHS

Definition at line 28 of file CNetFolder.cpp.

◆ NETWORKPLACESSHELLVIEWCOLUMNS

#define NETWORKPLACESSHELLVIEWCOLUMNS   4

Definition at line 99 of file CNetFolder.cpp.

Function Documentation

◆ CNetFolderBackgroundMenuCB()

static HRESULT CALLBACK CNetFolderBackgroundMenuCB ( IShellFolder psf,
HWND  hwnd,
IDataObject pdtobj,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 213 of file CNetFolder.cpp.

215{
216 enum { IDC_PROPERTIES };
217 if (uMsg == DFM_INVOKECOMMAND && wParam == IDC_PROPERTIES)
218 {
219 return SHELL_ExecuteControlPanelCPL(hwnd, L"ncpa.cpl") ? S_OK : E_FAIL;
220 }
221 else if (uMsg == DFM_MERGECONTEXTMENU) // TODO: DFM_MERGECONTEXTMENU_BOTTOM
222 {
223 QCMINFO *pqcminfo = (QCMINFO*)lParam;
224 HMENU hpopup = CreatePopupMenu();
226 pqcminfo->idCmdFirst = Shell_MergeMenus(pqcminfo->hmenu, hpopup, pqcminfo->indexMenu, pqcminfo->idCmdFirst, pqcminfo->idCmdLast, MM_ADDSEPARATOR);
227 DestroyMenu(hpopup);
228 return S_OK;
229 }
230 return SHELL32_DefaultContextMenuCallBack(psf, pdtobj, uMsg);
231}
#define IDS_PROPERTIES
Definition: resource.h:108
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define E_FAIL
Definition: ddrawi.h:102
#define TRUE
Definition: types.h:120
#define IDC_PROPERTIES
Definition: resource.h:32
#define DFM_MERGECONTEXTMENU
Definition: precomp.h:44
#define DFM_INVOKECOMMAND
Definition: precomp.h:45
#define SHELL_ExecuteControlPanelCPL(hwnd, cpl)
Definition: precomp.h:188
HRESULT SHELL32_DefaultContextMenuCallBack(IShellFolder *psf, IDataObject *pdo, UINT msg)
Definition: shlfolder.cpp:613
#define S_OK
Definition: intsafe.h:52
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
#define L(x)
Definition: ntvdm.h:50
void WINAPI _InsertMenuItemW(HMENU hmenu, UINT indexMenu, BOOL fByPosition, UINT wID, UINT fType, LPCWSTR dwTypeData, UINT fState)
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:856
#define MM_ADDSEPARATOR
Definition: shlobj.h:2536
HMENU hmenu
Definition: shlobj.h:1398
UINT idCmdLast
Definition: shlobj.h:1401
UINT idCmdFirst
Definition: shlobj.h:1400
UINT indexMenu
Definition: shlobj.h:1399
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:838
#define MFS_ENABLED
Definition: winuser.h:761
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define MFT_STRING
Definition: winuser.h:757
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582

Referenced by CNetFolder::CreateViewObject().

◆ CNetFolderExtractIcon_CreateInstance()

HRESULT CNetFolderExtractIcon_CreateInstance ( LPCITEMIDLIST  pidl,
REFIID  riid,
LPVOID ppvOut 
)

Definition at line 50 of file CNetFolder.cpp.

51{
52 CComPtr<IDefaultExtractIconInit> initIcon;
55 return hr;
56
57 initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_NETWORK_FOLDER);
58
59 return initIcon->QueryInterface(riid, ppvOut);
60}
HRESULT WINAPI SHCreateDefaultExtractIcon(REFIID riid, void **ppv)
#define IDI_SHELL_NETWORK_FOLDER
Definition: resource.h:5
#define FAILED_UNEXPECTEDLY(hr)
Definition: debug.h:83
WCHAR swShell32Name[MAX_PATH]
Definition: folders.cpp:22
REFIID riid
Definition: atlbase.h:39
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
HRESULT hr
Definition: shlfolder.c:183
#define IID_PPV_ARG(Itype, ppType)

Referenced by CNetFolder::GetUIObjectOf().

◆ ILCreateFromNetworkPlaceW()

LPITEMIDLIST ILCreateFromNetworkPlaceW ( LPCWSTR  lpNetworkPlace)

Definition at line 31 of file CNetFolder.cpp.

32{
33 int cbData = sizeof(WORD) + sizeof(WCHAR) * (wcslen(lpNetworkPlace)+1);
34 LPITEMIDLIST pidl = (LPITEMIDLIST)SHAlloc(cbData + sizeof(WORD));
35 if (!pidl)
36 return NULL;
37
38 pidl->mkid.cb = cbData;
39 wcscpy((WCHAR*)&pidl->mkid.abID[0], lpNetworkPlace);
40 *(WORD*)((char*)pidl + cbData) = 0;
41
42 return pidl;
43}
wcscpy
#define NULL
Definition: types.h:112
LPVOID WINAPI SHAlloc(SIZE_T len)
Definition: shellole.c:304
unsigned short WORD
Definition: ntddk_ex.h:93
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by CNetFolderEnum::EnumerateRec(), and CNetFolder::ParseDisplayName().

◆ NetFolderMenuCallback()

HRESULT CALLBACK NetFolderMenuCallback ( IShellFolder psf,
HWND  hwnd,
IDataObject pdtobj,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 62 of file CNetFolder.cpp.

68{
69 return SHELL32_DefaultContextMenuCallBack(psf, pdtobj, uMsg);
70}

Referenced by CNetFolder::GetUIObjectOf().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( shell  )

Variable Documentation

◆ NetworkPlacesSFHeader

shvheader NetworkPlacesSFHeader[]
static