ReactOS 0.4.15-dev-8434-g155a7c7
CDefView.cpp File Reference
#include "precomp.h"
#include <atlwin.h>
#include <ui/rosctrls.h>
Include dependency graph for CDefView.cpp:

Go to the source code of this file.

Classes

struct  LISTVIEW_SORT_INFO
 
struct  PERSISTCOLUMNS
 
struct  PERSISTCLASSICVIEWSTATE
 
struct  MenuCleanup
 
class  CDefView
 

Macros

#define SHV_CHANGE_NOTIFY   (WM_USER + 0x1111)
 
#define SHV_UPDATESTATUSBAR   (WM_USER + 0x1112)
 
#define CONTEXT_MENU_BASE_ID   1
 
#define ID_LISTVIEW   1
 
#define GET_WM_COMMAND_ID(wp, lp)   LOWORD(wp)
 
#define GET_WM_COMMAND_HWND(wp, lp)   (HWND)(lp)
 
#define GET_WM_COMMAND_CMD(wp, lp)   HIWORD(wp)
 
#define UPDATEFOLDERVIEWFLAGS(bits, bit, set)   ( (bits) = ((bits) & ~(bit)) | ((set) ? (bit) : 0) )
 
#define SCROLLAREAWIDTH   20
 

Typedefs

typedef struct LISTVIEW_SORT_INFOLPLISTVIEW_SORT_INFO
 
typedef void(CALLBACKPFNSHGETSETTINGSPROC) (LPSHELLFLAGSTATE lpsfs, DWORD dwMask)
 
typedef CSimpleMap< LPARAM, INTCLParamIndexMap
 

Enumerations

enum  {
  DEFVIEW_ARRANGESORT_MAXENUM = 9 , DEFVIEW_ARRANGESORT_MAX = DEFVIEW_ARRANGESORT_MAXENUM + 1 , DVIDM_ARRANGESORT_LAST = FCIDM_SHVIEWLAST , DVIDM_ARRANGESORT_FIRST = DVIDM_ARRANGESORT_LAST - (DEFVIEW_ARRANGESORT_MAX - 1) ,
  DVIDM_CONTEXTMENU_LAST = DVIDM_ARRANGESORT_FIRST - 1 , DVIDM_CONTEXTMENU_FIRST = FCIDM_SHVIEWFIRST
}
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (shell)
 
static UINT GetContextMenuFlags (IShellBrowser *pSB, SFGAOF sfgao)
 
static void ClientToListView (HWND hwndLV, POINT *ppt)
 
static BOOL AppendMenuItem (HMENU hMenu, UINT MF, UINT Id, LPCWSTR String, SIZE_T Data=0)
 
static SIZE_T GetMenuItemDataById (HMENU hMenu, UINT Id)
 
static HMENU GetSubmenuByID (HMENU hmenu, UINT id)
 
static UINT ReallyGetMenuItemID (HMENU hmenu, int i)
 
static UINT CalculateCharWidth (HWND hwnd)
 
static HRESULT SHGetLVColumnSubItem (HWND List, UINT Col)
 
static VOID DrawTileBitmap (HDC hDC, LPCRECT prc, HBITMAP hbm, INT nWidth, INT nHeight, INT dx, INT dy)
 
DWORD WINAPI SHMenuIndexFromID (HMENU hMenu, UINT uID)
 
static BOOL SelectExtOnRename (void)
 
static BOOL ILIsParentOrSpecialParent (PCIDLIST_ABSOLUTE pidl1, PCIDLIST_ABSOLUTE pidl2)
 
HRESULT SHGetMenuIdFromMenuMsg (UINT uMsg, LPARAM lParam, UINT *CmdId)
 
HRESULT SHSetMenuIdInMenuMsg (UINT uMsg, LPARAM lParam, UINT CmdId)
 
static HRESULT Read (IStream *pS, LPVOID buffer, ULONG cb)
 
static DWORD ReadDWORD (IPropertyBag *pPB, LPCWSTR name, DWORD def)
 
static HRESULT LoadColumnsStream (PERSISTCOLUMNS &cols, IStream *pS)
 
static INT CALLBACK SelectionMoveCompareFunc (LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
 
HRESULT CDefView_CreateInstance (IShellFolder *pFolder, REFIID riid, LPVOID *ppvOut)
 
HRESULT WINAPI SHCreateShellFolderViewEx (LPCSFV psvcbi, IShellView **ppsv)
 
HRESULT WINAPI SHCreateShellFolderView (const SFV_CREATE *pcsfv, IShellView **ppsv)
 

Macro Definition Documentation

◆ CONTEXT_MENU_BASE_ID

#define CONTEXT_MENU_BASE_ID   1

Definition at line 81 of file CDefView.cpp.

◆ GET_WM_COMMAND_CMD

#define GET_WM_COMMAND_CMD (   wp,
  lp 
)    HIWORD(wp)

Definition at line 550 of file CDefView.cpp.

◆ GET_WM_COMMAND_HWND

#define GET_WM_COMMAND_HWND (   wp,
  lp 
)    (HWND)(lp)

Definition at line 549 of file CDefView.cpp.

◆ GET_WM_COMMAND_ID

#define GET_WM_COMMAND_ID (   wp,
  lp 
)    LOWORD(wp)

Definition at line 548 of file CDefView.cpp.

◆ ID_LISTVIEW

#define ID_LISTVIEW   1

Definition at line 545 of file CDefView.cpp.

◆ SCROLLAREAWIDTH

#define SCROLLAREAWIDTH   20

Definition at line 4088 of file CDefView.cpp.

◆ SHV_CHANGE_NOTIFY

#define SHV_CHANGE_NOTIFY   (WM_USER + 0x1111)

Definition at line 76 of file CDefView.cpp.

◆ SHV_UPDATESTATUSBAR

#define SHV_UPDATESTATUSBAR   (WM_USER + 0x1112)

Definition at line 77 of file CDefView.cpp.

◆ UPDATEFOLDERVIEWFLAGS

#define UPDATEFOLDERVIEWFLAGS (   bits,
  bit,
  set 
)    ( (bits) = ((bits) & ~(bit)) | ((set) ? (bit) : 0) )

Definition at line 3307 of file CDefView.cpp.

Typedef Documentation

◆ CLParamIndexMap

Definition at line 4362 of file CDefView.cpp.

◆ LPLISTVIEW_SORT_INFO

◆ PFNSHGETSETTINGSPROC

typedef void(CALLBACK * PFNSHGETSETTINGSPROC) (LPSHELLFLAGSTATE lpsfs, DWORD dwMask)

Definition at line 552 of file CDefView.cpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DEFVIEW_ARRANGESORT_MAXENUM 
DEFVIEW_ARRANGESORT_MAX 
DVIDM_ARRANGESORT_LAST 
DVIDM_ARRANGESORT_FIRST 
DVIDM_CONTEXTMENU_LAST 
DVIDM_CONTEXTMENU_FIRST 

Definition at line 46 of file CDefView.cpp.

46 {
47 DEFVIEW_ARRANGESORT_MAXENUM = 9, // Limit the number of the visible columns we will display in the submenu
48 DEFVIEW_ARRANGESORT_MAX = DEFVIEW_ARRANGESORT_MAXENUM + 1, // Reserve one extra for the current sort-by column
51
53 // FIXME: FCIDM_SHVIEWFIRST is 0 and using that with QueryContextMenu is a
54 // bad idea because it hides bugs related to the ids in ici.lpVerb.
55 // CONTEXT_MENU_BASE_ID acknowledges this but failed to apply the fix everywhere.
57};
@ DEFVIEW_ARRANGESORT_MAX
Definition: CDefView.cpp:48
@ DVIDM_CONTEXTMENU_LAST
Definition: CDefView.cpp:52
@ DVIDM_ARRANGESORT_FIRST
Definition: CDefView.cpp:50
@ DEFVIEW_ARRANGESORT_MAXENUM
Definition: CDefView.cpp:47
@ DVIDM_ARRANGESORT_LAST
Definition: CDefView.cpp:49
@ DVIDM_CONTEXTMENU_FIRST
Definition: CDefView.cpp:56
#define FCIDM_SHVIEWFIRST
Definition: shlobj.h:580
#define FCIDM_SHVIEWLAST
Definition: shlobj.h:614

Function Documentation

◆ AppendMenuItem()

static BOOL AppendMenuItem ( HMENU  hMenu,
UINT  MF,
UINT  Id,
LPCWSTR  String,
SIZE_T  Data = 0 
)
static

Definition at line 156 of file CDefView.cpp.

157{
158 MENUITEMINFOW mii;
159 mii.cbSize = sizeof(mii);
161 mii.fState = MF & (MFS_CHECKED | MFS_DISABLED);
162 mii.fType = MF & ~mii.fState;
163 mii.wID = Id;
164 mii.dwTypeData = const_cast<LPWSTR>(String);
165 mii.dwItemData = Data;
166 return InsertMenuItemW(hMenu, -1, TRUE, &mii);
167}
DWORD Id
#define TRUE
Definition: types.h:120
ULONG_PTR dwItemData
Definition: winuser.h:3268
LPWSTR dwTypeData
Definition: winuser.h:3269
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
#define MIIM_ID
Definition: winuser.h:722
#define MFS_DISABLED
Definition: winuser.h:749
#define MIIM_STATE
Definition: winuser.h:721
#define MFS_CHECKED
Definition: winuser.h:747
#define MIIM_DATA
Definition: winuser.h:726
#define MIIM_TYPE
Definition: winuser.h:725
BOOL WINAPI InsertMenuItemW(_In_ HMENU, _In_ UINT, _In_ BOOL, _In_ LPCMENUITEMINFOW)
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by CDefView::ColumnListChanged(), CDefView::DoColumnContextMenu(), and CDefView::FillArrangeAsMenu().

◆ CalculateCharWidth()

static UINT CalculateCharWidth ( HWND  hwnd)
static

Definition at line 200 of file CDefView.cpp.

201{
202 UINT ret = 0;
203 HDC hDC = GetDC(hwnd);
204 if (hDC)
205 {
208 SelectObject(hDC, hOrg);
210 }
211 return ret;
212}
static HDC hDC
Definition: 3dtext.c:33
#define NULL
Definition: types.h:112
static HDC
Definition: imagelist.c:92
unsigned int UINT
Definition: ndis.h:50
int ret
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *)
Definition: font.c:2145
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1546
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define WM_GETFONT
Definition: winuser.h:1651
#define SendMessage
Definition: winuser.h:5852
HDC WINAPI GetDC(_In_opt_ HWND)

Referenced by CDefView::LoadColumn().

◆ CDefView_CreateInstance()

HRESULT CDefView_CreateInstance ( IShellFolder pFolder,
REFIID  riid,
LPVOID ppvOut 
)

Definition at line 4611 of file CDefView.cpp.

4612{
4613 return ShellObjectCreatorInit<CDefView>(pFolder, riid, ppvOut);
4614}
REFIID riid
Definition: atlbase.h:39

Referenced by SHCreateShellFolderView(), and SHCreateShellFolderViewEx().

◆ ClientToListView()

static void ClientToListView ( HWND  hwndLV,
POINT ppt 
)
static

Definition at line 118 of file CDefView.cpp.

119{
120 POINT Origin = {};
121
122 // FIXME: LVM_GETORIGIN is broken. See CORE-17266
123 if (!ListView_GetOrigin(hwndLV, &Origin))
124 return;
125
126 ppt->x += Origin.x;
127 ppt->y += Origin.y;
128}
#define ListView_GetOrigin(hwndLV, ppt)
Definition: commctrl.h:2669
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48

Referenced by CDefView::drag_notify_subitem(), CDefView::Drop(), and CDefView::OnNotify().

◆ DrawTileBitmap()

static VOID DrawTileBitmap ( HDC  hDC,
LPCRECT  prc,
HBITMAP  hbm,
INT  nWidth,
INT  nHeight,
INT  dx,
INT  dy 
)
static

Definition at line 1593 of file CDefView.cpp.

1594{
1595 INT x0 = prc->left, y0 = prc->top, x1 = prc->right, y1 = prc->bottom;
1596 x0 += dx;
1597 y0 += dy;
1598
1599 HDC hMemDC = CreateCompatibleDC(hDC);
1600 HGDIOBJ hbmOld = SelectObject(hMemDC, hbm);
1601
1602 for (INT y = y0; y < y1; y += nHeight)
1603 {
1604 for (INT x = x0; x < x1; x += nWidth)
1605 {
1606 BitBlt(hDC, x, y, nWidth, nHeight, hMemDC, 0, 0, SRCCOPY);
1607 }
1608 }
1609
1610 SelectObject(hMemDC, hbmOld);
1611 DeleteDC(hMemDC);
1612}
static VOID BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
Definition: common.c:57
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLint dy
Definition: linetemp.h:97
GLint y0
Definition: linetemp.h:96
GLint x0
Definition: linetemp.h:95
GLint dx
Definition: linetemp.h:97
_In_ HBITMAP hbm
Definition: ntgdi.h:2776
_Out_ LPRECT prc
Definition: ntgdi.h:1658
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
int32_t INT
Definition: typedefs.h:58
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3709
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3708
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
#define SRCCOPY
Definition: wingdi.h:333
BOOL WINAPI DeleteDC(_In_ HDC)

Referenced by CDefView::OnPrintClient().

◆ GetContextMenuFlags()

static UINT GetContextMenuFlags ( IShellBrowser pSB,
SFGAOF  sfgao 
)
static

Definition at line 103 of file CDefView.cpp.

104{
105 UINT cmf = CMF_NORMAL;
106 if (GetKeyState(VK_SHIFT) < 0)
107 cmf |= CMF_EXTENDEDVERBS;
108 if (sfgao & SFGAO_CANRENAME)
109 cmf |= CMF_CANRENAME;
110 HWND hwnd = NULL;
111 if (pSB && SUCCEEDED(pSB->GetControlWindow(FCW_TREE, &hwnd)) && hwnd)
112 cmf |= CMF_EXPLORE;
113 return cmf;
114}
HRESULT GetControlWindow([in] UINT id, [out] HWND *phwnd)
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define VK_SHIFT
Definition: winuser.h:2202
SHORT WINAPI GetKeyState(_In_ int)

Referenced by CDefView::FillFileMenu(), CDefView::OnContextMenu(), and CDefView::OpenSelectedItems().

◆ GetMenuItemDataById()

static SIZE_T GetMenuItemDataById ( HMENU  hMenu,
UINT  Id 
)
static

Definition at line 169 of file CDefView.cpp.

170{
171 MENUITEMINFOW mii;
172 mii.cbSize = FIELD_OFFSET(MENUITEMINFOW, hbmpItem);
173 mii.fMask = MIIM_DATA;
174 if (GetMenuItemInfoW(hMenu, Id, FALSE, &mii))
175 return mii.dwItemData;
176 else
177 return 0;
178}
#define FALSE
Definition: types.h:117
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)

Referenced by CDefView::DoColumnContextMenu(), and CDefView::OnCommand().

◆ GetSubmenuByID()

static HMENU GetSubmenuByID ( HMENU  hmenu,
UINT  id 
)
static

Definition at line 180 of file CDefView.cpp.

181{
182 MENUITEMINFOW mii = {sizeof(mii), MIIM_SUBMENU};
183 if (::GetMenuItemInfoW(hmenu, id, FALSE, &mii))
184 return mii.hSubMenu;
185
186 return NULL;
187}
static HMENU hmenu
Definition: win.c:66
#define MIIM_SUBMENU
Definition: winuser.h:723

Referenced by CDefView::ColumnListChanged(), CDefView::FillEditMenu(), CDefView::FillFileMenu(), CDefView::FillViewMenu(), and CDefView::OnInitMenuPopup().

◆ ILIsParentOrSpecialParent()

static BOOL ILIsParentOrSpecialParent ( PCIDLIST_ABSOLUTE  pidl1,
PCIDLIST_ABSOLUTE  pidl2 
)
static

Definition at line 2776 of file CDefView.cpp.

2777{
2778 if (!pidl1 || !pidl2)
2779 return FALSE;
2780 if (ILIsParent(pidl1, pidl2, TRUE))
2781 return TRUE;
2782
2783 CComHeapPtr<ITEMIDLIST_ABSOLUTE> pidl2Clone(ILClone(pidl2));
2784 ILRemoveLastID(pidl2Clone);
2785 return ILIsEqual(pidl1, pidl2Clone);
2786}
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:237
BOOL WINAPI ILIsParent(LPCITEMIDLIST pidlParent, LPCITEMIDLIST pidlChild, BOOL bImmediate)
Definition: pidl.c:605
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
Definition: pidl.c:221
BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:548

Referenced by CDefView::OnChangeNotify().

◆ LoadColumnsStream()

static HRESULT LoadColumnsStream ( PERSISTCOLUMNS cols,
IStream pS 
)
static

Definition at line 3156 of file CDefView.cpp.

3157{
3159 if (FAILED(hr))
3160 return hr;
3161 if (cols.Signature != PERSISTCOLUMNS::SIG || cols.Count > cols.MAXCOUNT)
3163 return Read(pS, &cols.Columns, sizeof(*cols.Columns) * cols.Count);
3164}
static const COLUMN_LIST Columns[]
Definition: listview.c:19
#define FAILED(hr)
Definition: intsafe.h:51
HRESULT HResultFromWin32(DWORD hr)
Definition: shellutils.h:70
HRESULT hr
Definition: shlfolder.c:183
_In_ BOOLEAN Read
Definition: strmini.h:479
static const UINT SIG
Definition: CDefView.cpp:86
UINT Columns[MAXCOUNT]
Definition: CDefView.cpp:89
#define ERROR_INVALID_DATA
Definition: winerror.h:116

Referenced by CDefView::LoadViewState().

◆ Read()

static HRESULT Read ( IStream pS,
LPVOID  buffer,
ULONG  cb 
)
static

Definition at line 3127 of file CDefView.cpp.

3128{
3129 ULONG read;
3130 HRESULT hr = pS->Read(buffer, cb, &read);
3131 return FAILED(hr) ? hr : (cb == read ? S_OK : HResultFromWin32(ERROR_MORE_DATA));
3132}
#define read
Definition: acwin.h:96
#define ERROR_MORE_DATA
Definition: dderror.h:13
GLuint buffer
Definition: glext.h:5915
HRESULT Read([out, size_is(cb), length_is(*pcbRead)] void *pv, [in] ULONG cb, [out] ULONG *pcbRead)
#define S_OK
Definition: intsafe.h:52
static HMODULE MODULEINFO DWORD cb
Definition: module.c:33
uint32_t ULONG
Definition: typedefs.h:59

◆ ReadDWORD()

static DWORD ReadDWORD ( IPropertyBag pPB,
LPCWSTR  name,
DWORD  def 
)
static

Definition at line 3134 of file CDefView.cpp.

3135{
3136 DWORD value;
3138 return SUCCEEDED(hr) ? value : def;
3139}
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT WINAPI SHPropertyBag_ReadDWORD(IPropertyBag *ppb, LPCWSTR pszPropName, DWORD *pdwValue)
Definition: name.c:39
Definition: pdh_main.c:94

Referenced by CDefView::LoadViewState().

◆ ReallyGetMenuItemID()

static UINT ReallyGetMenuItemID ( HMENU  hmenu,
int  i 
)
static

Definition at line 191 of file CDefView.cpp.

192{
193 MENUITEMINFOW mii = {sizeof(mii), MIIM_ID};
194 if (::GetMenuItemInfoW(hmenu, i, TRUE, &mii))
195 return mii.wID;
196
197 return UINT_MAX;
198}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define UINT_MAX
Definition: limits.h:41

Referenced by CDefView::OnInitMenuPopup().

◆ SelectExtOnRename()

static BOOL SelectExtOnRename ( void  )
static

Definition at line 2503 of file CDefView.cpp.

2504{
2505 HKEY hKey;
2506 LONG error;
2507 DWORD dwValue = FALSE, cbValue;
2508
2510 if (error)
2511 return dwValue;
2512
2513 cbValue = sizeof(dwValue);
2514 RegQueryValueExW(hKey, L"SelectExtOnRename", NULL, NULL, (LPBYTE)&dwValue, &cbValue);
2515
2517 return !!dwValue;
2518}
#define RegCloseKey(hKey)
Definition: registry.h:49
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
FxAutoRegKey hKey
#define error(str)
Definition: mkdosfs.c:1605
#define KEY_READ
Definition: nt_native.h:1023
#define L(x)
Definition: ntvdm.h:50
long LONG
Definition: pedump.c:60
#define REGSTR_PATH_EXPLORER
Definition: regstr.h:33
unsigned char * LPBYTE
Definition: typedefs.h:53
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by CDefView::OnNotify().

◆ SelectionMoveCompareFunc()

static INT CALLBACK SelectionMoveCompareFunc ( LPARAM  lParam1,
LPARAM  lParam2,
LPARAM  lParamSort 
)
static

Definition at line 4365 of file CDefView.cpp.

4366{
4367 CLParamIndexMap *pmap = (CLParamIndexMap *)lParamSort;
4368 INT i1 = pmap->Lookup(lParam1), i2 = pmap->Lookup(lParam2);
4369 if (i1 < i2)
4370 return -1;
4371 if (i1 > i2)
4372 return 1;
4373 return 0;
4374}
Definition: pmap_prot.h:88

Referenced by CDefView::_MoveSelectionOnAutoArrange().

◆ SHCreateShellFolderView()

HRESULT WINAPI SHCreateShellFolderView ( const SFV_CREATE pcsfv,
IShellView **  ppsv 
)

Definition at line 4636 of file CDefView.cpp.

4638{
4640 HRESULT hRes;
4641
4642 if (!ppsv)
4643 return E_INVALIDARG;
4644
4645 *ppsv = NULL;
4646
4647 if (!pcsfv || pcsfv->cbSize != sizeof(*pcsfv))
4648 return E_INVALIDARG;
4649
4650 TRACE("sf=%p outer=%p callback=%p\n",
4651 pcsfv->pshf, pcsfv->psvOuter, pcsfv->psfvcb);
4652
4653 hRes = CDefView_CreateInstance(pcsfv->pshf, IID_PPV_ARG(IShellView, &psv));
4654 if (FAILED(hRes))
4655 return hRes;
4656
4657 if (pcsfv->psfvcb)
4658 {
4660 if (SUCCEEDED(psv->QueryInterface(IID_PPV_ARG(IShellFolderView, &sfv))))
4661 {
4662 sfv->SetCallback(pcsfv->psfvcb, NULL);
4663 }
4664 }
4665
4666 *ppsv = psv.Detach();
4667 return hRes;
4668}
HRESULT CDefView_CreateInstance(IShellFolder *pFolder, REFIID riid, LPVOID *ppvOut)
Definition: CDefView.cpp:4611
T * Detach()
Definition: atlcomcli.h:186
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
IShellFolderViewCB * psfvcb
Definition: shlobj.h:1359
IShellView * psvOuter
Definition: shlobj.h:1358
UINT cbSize
Definition: shlobj.h:1356
IShellFolder * pshf
Definition: shlobj.h:1357
#define IID_PPV_ARG(Itype, ppType)

Referenced by CFontExt::CreateViewObject(), CZipFolder::CreateViewObject(), CFindFolder::CreateViewObject(), CControlPanelFolder::CreateViewObject(), CDesktopFolder::CreateViewObject(), CDrivesFolder::CreateViewObject(), CFSFolder::CreateViewObject(), CNetFolder::CreateViewObject(), CPrinterFolder::CreateViewObject(), CRecycleBin::CreateViewObject(), CCommonFolder< TSelf, TItemId, TExtractIcon >::CreateViewObject(), START_TEST(), test_SHCreateShellFolderView(), and ShellBrowser::UpdateFolderView().

◆ SHCreateShellFolderViewEx()

HRESULT WINAPI SHCreateShellFolderViewEx ( LPCSFV  psvcbi,
IShellView **  ppsv 
)

Definition at line 4616 of file CDefView.cpp.

4619{
4621 HRESULT hRes;
4622
4623 TRACE("sf=%p pidl=%p cb=%p mode=0x%08x parm=%p\n",
4624 psvcbi->pshf, psvcbi->pidl, psvcbi->pfnCallback,
4625 psvcbi->fvm, psvcbi->psvOuter);
4626
4627 *ppsv = NULL;
4628 hRes = CDefView_CreateInstance(psvcbi->pshf, IID_PPV_ARG(IShellView, &psv));
4629 if (FAILED_UNEXPECTEDLY(hRes))
4630 return hRes;
4631
4632 *ppsv = psv.Detach();
4633 return hRes;
4634}
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:121
FOLDERVIEWMODE fvm
Definition: shlobj.h:1282
IShellView * psvOuter
Definition: shlobj.h:1278
LPFNVIEWCALLBACK pfnCallback
Definition: shlobj.h:1281
PCIDLIST_ABSOLUTE pidl
Definition: shlobj.h:1279
IShellFolder * pshf
Definition: shlobj.h:1277

Referenced by CNetworkConnections::CreateViewObject(), CDesktopBrowser::Initialize(), and test_SHCreateShellFolderViewEx().

◆ SHGetLVColumnSubItem()

static HRESULT SHGetLVColumnSubItem ( HWND  List,
UINT  Col 
)
static

Definition at line 969 of file CDefView.cpp.

970{
971 LVCOLUMN lvc;
972 lvc.mask = LVCF_SUBITEM;
973 if (!ListView_GetColumn(List, Col, &lvc))
974 return E_FAIL;
975 else
976 return lvc.iSubItem;
977}
#define E_FAIL
Definition: ddrawi.h:102
#define ListView_GetColumn(hwnd, iCol, pcol)
Definition: commctrl.h:2622
#define LVCF_SUBITEM
Definition: commctrl.h:2589
#define LVCOLUMN
Definition: commctrl.h:2581
_Must_inspect_result_ _In_ WDFCMRESLIST List
Definition: wdfresource.h:550

Referenced by CDefView::MapFolderColumnToListColumn(), and CDefView::MapListColumnToFolderColumn().

◆ SHGetMenuIdFromMenuMsg()

HRESULT SHGetMenuIdFromMenuMsg ( UINT  uMsg,
LPARAM  lParam,
UINT CmdId 
)

Definition at line 1659 of file CDefaultContextMenu.cpp.

1660{
1661 if (uMsg == WM_DRAWITEM)
1662 {
1663 DRAWITEMSTRUCT* pDrawStruct = reinterpret_cast<DRAWITEMSTRUCT*>(lParam);
1664 *CmdId = pDrawStruct->itemID;
1665 return S_OK;
1666 }
1667 else if (uMsg == WM_MEASUREITEM)
1668 {
1669 MEASUREITEMSTRUCT* pMeasureStruct = reinterpret_cast<MEASUREITEMSTRUCT*>(lParam);
1670 *CmdId = pMeasureStruct->itemID;
1671 return S_OK;
1672 }
1673
1674 return E_FAIL;
1675}
LPARAM lParam
Definition: combotst.c:139
#define WM_DRAWITEM
Definition: winuser.h:1645
#define WM_MEASUREITEM
Definition: winuser.h:1646

Referenced by CDefaultContextMenu::HandleMenuMsg2(), and CDefView::OnCustomItem().

◆ SHMenuIndexFromID()

DWORD WINAPI SHMenuIndexFromID ( HMENU  hMenu,
UINT  uID 
)

Definition at line 4504 of file ordinal.c.

4505{
4506 TRACE("%p %u\n", hMenu, uID);
4507 return GetMenuPosFromID(hMenu, uID);
4508}
INT WINAPI GetMenuPosFromID(HMENU hMenu, UINT wID)
Definition: ordinal.c:4477

Referenced by CDefView::FillViewMenu().

◆ SHSetMenuIdInMenuMsg()

HRESULT SHSetMenuIdInMenuMsg ( UINT  uMsg,
LPARAM  lParam,
UINT  CmdId 
)

Definition at line 1677 of file CDefaultContextMenu.cpp.

1678{
1679 if (uMsg == WM_DRAWITEM)
1680 {
1681 DRAWITEMSTRUCT* pDrawStruct = reinterpret_cast<DRAWITEMSTRUCT*>(lParam);
1682 pDrawStruct->itemID = CmdId;
1683 return S_OK;
1684 }
1685 else if (uMsg == WM_MEASUREITEM)
1686 {
1687 MEASUREITEMSTRUCT* pMeasureStruct = reinterpret_cast<MEASUREITEMSTRUCT*>(lParam);
1688 pMeasureStruct->itemID = CmdId;
1689 return S_OK;
1690 }
1691
1692 return E_FAIL;
1693}

Referenced by CDefaultContextMenu::HandleMenuMsg2(), and CDefView::OnCustomItem().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( shell  )