ReactOS 0.4.15-dev-5865-g640e228
CDefView Class Reference
Inheritance diagram for CDefView:
Collaboration diagram for CDefView:

Public Member Functions

 CDefView ()
 
 ~CDefView ()
 
HRESULT WINAPI Initialize (IShellFolder *shellFolder)
 
HRESULT IncludeObject (PCUITEMID_CHILD pidl)
 
HRESULT OnDefaultCommand ()
 
HRESULT OnStateChange (UINT uFlags)
 
void UpdateStatusbar ()
 
void CheckToolbar ()
 
BOOL CreateList ()
 
void UpdateListColors ()
 
BOOL InitList ()
 
PCUITEMID_CHILD _PidlByItem (int i)
 
PCUITEMID_CHILD _PidlByItem (LVITEM &lvItem)
 
int LV_FindItemByPidl (PCUITEMID_CHILD pidl)
 
int LV_AddItem (PCUITEMID_CHILD pidl)
 
BOOLEAN LV_DeleteItem (PCUITEMID_CHILD pidl)
 
BOOLEAN LV_RenameItem (PCUITEMID_CHILD pidlOld, PCUITEMID_CHILD pidlNew)
 
BOOLEAN LV_ProdItem (PCUITEMID_CHILD pidl)
 
HRESULT FillList ()
 
HRESULT FillFileMenu ()
 
HRESULT FillEditMenu ()
 
HRESULT FillViewMenu ()
 
HRESULT FillArrangeAsMenu (HMENU hmenuArrange)
 
HRESULT CheckViewMode (HMENU hmenuView)
 
UINT GetSelections ()
 
HRESULT OpenSelectedItems ()
 
void OnDeactivate ()
 
void DoActivate (UINT uState)
 
HRESULT drag_notify_subitem (DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
 
HRESULT InvokeContextMenuCommand (CComPtr< IContextMenu > &pCM, UINT uCommand, POINT *pt)
 
LRESULT OnExplorerCommand (UINT uCommand, BOOL bUseSelection)
 
virtual HRESULT STDMETHODCALLTYPE GetWindow (HWND *lphwnd)
 
virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp (BOOL fEnterMode)
 
virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator (MSG *pmsg)
 
virtual HRESULT STDMETHODCALLTYPE EnableModeless (BOOL fEnable)
 
virtual HRESULT STDMETHODCALLTYPE UIActivate (UINT uState)
 
virtual HRESULT STDMETHODCALLTYPE Refresh ()
 
virtual HRESULT STDMETHODCALLTYPE CreateViewWindow (IShellView *psvPrevious, LPCFOLDERSETTINGS pfs, IShellBrowser *psb, RECT *prcView, HWND *phWnd)
 
virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow ()
 
virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo (LPFOLDERSETTINGS pfs)
 
virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages (DWORD dwReserved, LPFNSVADDPROPSHEETPAGE pfn, LPARAM lparam)
 
virtual HRESULT STDMETHODCALLTYPE SaveViewState ()
 
virtual HRESULT STDMETHODCALLTYPE SelectItem (PCUITEMID_CHILD pidlItem, SVSIF uFlags)
 
virtual HRESULT STDMETHODCALLTYPE GetItemObject (UINT uItem, REFIID riid, void **ppv)
 
virtual HRESULT STDMETHODCALLTYPE GetView (SHELLVIEWID *view_guid, ULONG view_type)
 
virtual HRESULT STDMETHODCALLTYPE CreateViewWindow2 (LPSV2CVW2_PARAMS view_params)
 
virtual HRESULT STDMETHODCALLTYPE HandleRename (LPCITEMIDLIST new_pidl)
 
virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItem (LPCITEMIDLIST item, UINT flags, POINT *point)
 
virtual HRESULT STDMETHODCALLTYPE CreateViewWindow3 (IShellBrowser *psb, IShellView *psvPrevious, SV3CVW3_FLAGS view_flags, FOLDERFLAGS mask, FOLDERFLAGS flags, FOLDERVIEWMODE mode, const SHELLVIEWID *view_id, RECT *prcView, HWND *hwnd)
 
virtual HRESULT STDMETHODCALLTYPE GetCurrentViewMode (UINT *pViewMode)
 
virtual HRESULT STDMETHODCALLTYPE SetCurrentViewMode (UINT ViewMode)
 
virtual HRESULT STDMETHODCALLTYPE GetFolder (REFIID riid, void **ppv)
 
virtual HRESULT STDMETHODCALLTYPE Item (int iItemIndex, PITEMID_CHILD *ppidl)
 
virtual HRESULT STDMETHODCALLTYPE ItemCount (UINT uFlags, int *pcItems)
 
virtual HRESULT STDMETHODCALLTYPE Items (UINT uFlags, REFIID riid, void **ppv)
 
virtual HRESULT STDMETHODCALLTYPE GetSelectionMarkedItem (int *piItem)
 
virtual HRESULT STDMETHODCALLTYPE GetFocusedItem (int *piItem)
 
virtual HRESULT STDMETHODCALLTYPE GetItemPosition (PCUITEMID_CHILD pidl, POINT *ppt)
 
virtual HRESULT STDMETHODCALLTYPE GetSpacing (POINT *ppt)
 
virtual HRESULT STDMETHODCALLTYPE GetDefaultSpacing (POINT *ppt)
 
virtual HRESULT STDMETHODCALLTYPE GetAutoArrange ()
 
virtual HRESULT STDMETHODCALLTYPE SelectItem (int iItem, DWORD dwFlags)
 
virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItems (UINT cidl, PCUITEMID_CHILD_ARRAY apidl, POINT *apt, DWORD dwFlags)
 
virtual HRESULT STDMETHODCALLTYPE Rearrange (LPARAM sort)
 
virtual HRESULT STDMETHODCALLTYPE GetArrangeParam (LPARAM *sort)
 
virtual HRESULT STDMETHODCALLTYPE ArrangeGrid ()
 
virtual HRESULT STDMETHODCALLTYPE AutoArrange ()
 
virtual HRESULT STDMETHODCALLTYPE AddObject (PITEMID_CHILD pidl, UINT *item)
 
virtual HRESULT STDMETHODCALLTYPE GetObject (PITEMID_CHILD *pidl, UINT item)
 
virtual HRESULT STDMETHODCALLTYPE RemoveObject (PITEMID_CHILD pidl, UINT *item)
 
virtual HRESULT STDMETHODCALLTYPE GetObjectCount (UINT *count)
 
virtual HRESULT STDMETHODCALLTYPE SetObjectCount (UINT count, UINT flags)
 
virtual HRESULT STDMETHODCALLTYPE UpdateObject (PITEMID_CHILD pidl_old, PITEMID_CHILD pidl_new, UINT *item)
 
virtual HRESULT STDMETHODCALLTYPE RefreshObject (PITEMID_CHILD pidl, UINT *item)
 
virtual HRESULT STDMETHODCALLTYPE SetRedraw (BOOL redraw)
 
virtual HRESULT STDMETHODCALLTYPE GetSelectedCount (UINT *count)
 
virtual HRESULT STDMETHODCALLTYPE GetSelectedObjects (PCUITEMID_CHILD **pidl, UINT *items)
 
virtual HRESULT STDMETHODCALLTYPE IsDropOnSource (IDropTarget *drop_target)
 
virtual HRESULT STDMETHODCALLTYPE GetDragPoint (POINT *pt)
 
virtual HRESULT STDMETHODCALLTYPE GetDropPoint (POINT *pt)
 
virtual HRESULT STDMETHODCALLTYPE MoveIcons (IDataObject *obj)
 
virtual HRESULT STDMETHODCALLTYPE SetItemPos (PCUITEMID_CHILD pidl, POINT *pt)
 
virtual HRESULT STDMETHODCALLTYPE IsBkDropTarget (IDropTarget *drop_target)
 
virtual HRESULT STDMETHODCALLTYPE SetClipboard (BOOL move)
 
virtual HRESULT STDMETHODCALLTYPE SetPoints (IDataObject *obj)
 
virtual HRESULT STDMETHODCALLTYPE GetItemSpacing (ITEMSPACING *spacing)
 
virtual HRESULT STDMETHODCALLTYPE SetCallback (IShellFolderViewCB *new_cb, IShellFolderViewCB **old_cb)
 
virtual HRESULT STDMETHODCALLTYPE Select (UINT flags)
 
virtual HRESULT STDMETHODCALLTYPE QuerySupport (UINT *support)
 
virtual HRESULT STDMETHODCALLTYPE SetAutomationObject (IDispatch *disp)
 
virtual HRESULT STDMETHODCALLTYPE QueryStatus (const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
 
virtual HRESULT STDMETHODCALLTYPE Exec (const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
 
virtual HRESULT STDMETHODCALLTYPE DragEnter (IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
 
virtual HRESULT STDMETHODCALLTYPE DragOver (DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
 
virtual HRESULT STDMETHODCALLTYPE DragLeave ()
 
virtual HRESULT STDMETHODCALLTYPE Drop (IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
 
virtual HRESULT STDMETHODCALLTYPE QueryContinueDrag (BOOL fEscapePressed, DWORD grfKeyState)
 
virtual HRESULT STDMETHODCALLTYPE GiveFeedback (DWORD dwEffect)
 
virtual HRESULT STDMETHODCALLTYPE Draw (DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL(STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue)
 
virtual HRESULT STDMETHODCALLTYPE GetColorSet (DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE **ppColorSet)
 
virtual HRESULT STDMETHODCALLTYPE Freeze (DWORD dwDrawAspect, LONG lindex, void *pvAspect, DWORD *pdwFreeze)
 
virtual HRESULT STDMETHODCALLTYPE Unfreeze (DWORD dwFreeze)
 
virtual HRESULT STDMETHODCALLTYPE SetAdvise (DWORD aspects, DWORD advf, IAdviseSink *pAdvSink)
 
virtual HRESULT STDMETHODCALLTYPE GetAdvise (DWORD *pAspects, DWORD *pAdvf, IAdviseSink **ppAdvSink)
 
virtual HRESULT STDMETHODCALLTYPE QueryService (REFGUID guidService, REFIID riid, void **ppvObject)
 
LRESULT OnShowWindow (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnGetDlgCode (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnDestroy (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnEraseBackground (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnPrintClient (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSysColorChange (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnGetShellBrowser (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnNCCreate (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnCreate (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnContextMenu (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSize (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnActivate (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSetFocus (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnKillFocus (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnCommand (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnNotify (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnChangeNotify (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnCustomItem (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSettingChange (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnInitMenuPopup (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
virtual VOID OnFinalMessage (HWND) override
 
virtual WNDPROC GetWindowProc ()
 
- Public Member Functions inherited from ATL::CWindowImpl< CDefView, CWindow, CControlWinTraits >
HWND Create (HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
 
- Public Member Functions inherited from ATL::CWindowImplBaseT< TBase, TWinTraits >
 CWindowImplBaseT ()
 
virtual void OnFinalMessage (HWND)
 
BOOL SubclassWindow (HWND hWnd)
 
HWND UnsubclassWindow (BOOL bForce=FALSE)
 
virtual WNDPROC GetWindowProc ()
 
LRESULT DefWindowProc (UINT uMsg, WPARAM wParam, LPARAM lParam)
 
HWND Create (HWND hWndParent, _U_RECT rect, LPCTSTR szWindowName, DWORD dwStyle, DWORD dwExStyle, _U_MENUorID MenuOrID, ATOM atom, LPVOID lpCreateParam)
 
- Public Member Functions inherited from ATL::CWindowImplRoot< TBase >
 CWindowImplRoot ()
 
virtual ~CWindowImplRoot ()
 
- Public Member Functions inherited from ATL::CWindow
 CWindow (HWND hWnd=NULL)
 
 operator HWND () const
 
UINT ArrangeIconicWindows ()
 
void Attach (HWND hWndNew)
 
HDC BeginPaint (LPPAINTSTRUCT lpPaint)
 
BOOL BringWindowToTop ()
 
BOOL CenterWindow (HWND hWndCenter=NULL)
 
BOOL ChangeClipboardChain (HWND hWndNewNext)
 
BOOL CheckDlgButton (int nIDButton, UINT nCheck)
 
BOOL CheckRadioButton (int nIDFirstButton, int nIDLastButton, int nIDCheckButton)
 
HWND ChildWindowFromPoint (POINT point) const
 
HWND ChildWindowFromPointEx (POINT point, UINT uFlags) const
 
BOOL ClientToScreen (LPPOINT lpPoint) const
 
BOOL ClientToScreen (LPRECT lpRect) const
 
HWND Create (LPCTSTR lpstrWndClass, HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
 
BOOL CreateCaret (HBITMAP pBitmap)
 
BOOL CreateGrayCaret (int nWidth, int nHeight)
 
BOOL CreateSolidCaret (int nWidth, int nHeight)
 
HDWP DeferWindowPos (HDWP hWinPosInfo, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags)
 
BOOL DestroyWindow ()
 
HWND Detach ()
 
int DlgDirList (LPTSTR lpPathSpec, int nIDListBox, int nIDStaticPath, UINT nFileType)
 
int DlgDirListComboBox (LPTSTR lpPathSpec, int nIDComboBox, int nIDStaticPath, UINT nFileType)
 
BOOL DlgDirSelect (LPTSTR lpString, int nCount, int nIDListBox)
 
BOOL DlgDirSelectComboBox (LPTSTR lpString, int nCount, int nIDComboBox)
 
void DragAcceptFiles (BOOL bAccept=TRUE)
 
BOOL DrawMenuBar ()
 
BOOL EnableScrollBar (UINT uSBFlags, UINT uArrowFlags=ESB_ENABLE_BOTH)
 
BOOL EnableWindow (BOOL bEnable=TRUE)
 
void EndPaint (LPPAINTSTRUCT lpPaint)
 
BOOL FlashWindow (BOOL bInvert)
 
BOOL GetClientRect (LPRECT lpRect) const
 
HDC GetDC ()
 
HDC GetDCEx (HRGN hRgnClip, DWORD flags)
 
HWND GetDescendantWindow (int nID) const
 
HRESULT GetDlgControl (int nID, REFIID iid, void **ppCtrl)
 
int GetDlgCtrlID () const
 
HRESULT GetDlgHost (int nID, REFIID iid, void **ppHost)
 
HWND GetDlgItem (_In_ int nID) const
 
UINT GetDlgItemInt (_In_ int nID, _Out_opt_ BOOL *lpTrans=NULL, _In_ BOOL bSigned=TRUE) const
 
UINT GetDlgItemText (_In_ int nID, _Out_writes_to_(nMaxCount, return+1) LPTSTR lpStr, _In_ int nMaxCount) const
 
BOOL GetDlgItemText (_In_ int nID, _Inout_ _Outref_result_maybenull_ _Post_z_ BSTR &bstrText) const
 
DWORD GetExStyle () const
 
HFONT GetFont () const
 
DWORD GetHotKey () const
 
HICON GetIcon (BOOL bBigIcon=TRUE) const
 
HWND GetLastActivePopup () const
 
HMENU GetMenu () const
 
HWND GetNextDlgGroupItem (HWND hWndCtl, BOOL bPrevious=FALSE) const
 
HWND GetNextDlgTabItem (HWND hWndCtl, BOOL bPrevious=FALSE) const
 
CWindow GetParent () const
 
BOOL GetScrollInfo (int nBar, LPSCROLLINFO lpScrollInfo)
 
BOOL GetScrollPos (int nBar)
 
BOOL GetScrollRange (int nBar, LPINT lpMinPos, LPINT lpMaxPos) const
 
DWORD GetStyle () const
 
HMENU GetSystemMenu (BOOL bRevert)
 
HWND GetTopLevelParent () const
 
HWND GetTopLevelWindow () const
 
HWND GetTopWindow () const
 
BOOL GetUpdateRect (LPRECT lpRect, BOOL bErase=FALSE)
 
int GetUpdateRgn (HRGN hRgn, BOOL bErase=FALSE)
 
HWND GetWindow (UINT nCmd) const
 
DWORD GetWindowContextHelpId () const
 
HDC GetWindowDC ()
 
LONG GetWindowLong (int nIndex) const
 
LONG_PTR GetWindowLongPtr (int nIndex) const
 
BOOL GetWindowPlacement (WINDOWPLACEMENT *lpwndpl) const
 
DWORD GetWindowProcessID ()
 
BOOL GetWindowRect (LPRECT lpRect) const
 
int GetWindowRgn (HRGN hRgn)
 
int GetWindowText (_Out_writes_to_(nMaxCount, return+1) LPTSTR lpszStringBuf, _In_ int nMaxCount) const
 
BOOL GetWindowText (_Inout_ _Outref_result_maybenull_ _Post_z_ BSTR &bstrText) const
 
int GetWindowTextLength () const
 
DWORD GetWindowThreadID ()
 
WORD GetWindowWord (int nIndex) const
 
void GotoDlgCtrl (HWND hWndCtrl) const
 
BOOL HideCaret ()
 
BOOL HiliteMenuItem (HMENU hMenu, UINT uHiliteItem, UINT uHilite)
 
BOOL Invalidate (BOOL bErase=TRUE)
 
BOOL InvalidateRect (LPCRECT lpRect, BOOL bErase=TRUE)
 
void InvalidateRgn (HRGN hRgn, BOOL bErase=TRUE)
 
BOOL IsChild (const HWND hWnd) const
 
BOOL IsDialogMessage (LPMSG lpMsg)
 
UINT IsDlgButtonChecked (int nIDButton) const
 
BOOL IsIconic () const
 
BOOL IsParentDialog ()
 
BOOL IsWindow () const
 
BOOL IsWindowEnabled () const
 
BOOL IsWindowVisible () const
 
BOOL IsWindowUnicode ()
 
BOOL IsZoomed () const
 
BOOL KillTimer (UINT_PTR nIDEvent)
 
BOOL LockWindowUpdate (BOOL bLock=TRUE)
 
int MapWindowPoints (HWND hWndTo, LPPOINT lpPoint, UINT nCount) const
 
int MapWindowPoints (HWND hWndTo, LPRECT lpRect) const
 
int MessageBox (LPCTSTR lpszText, LPCTSTR lpszCaption=NULL, UINT nType=MB_OK)
 
BOOL ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 
BOOL ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 
BOOL MoveWindow (int x, int y, int nWidth, int nHeight, BOOL bRepaint=TRUE)
 
void NextDlgCtrl () const
 
BOOL OpenClipboard ()
 
BOOL PostMessage (UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
void PrevDlgCtrl () const
 
void Print (HDC hDC, DWORD dwFlags) const
 
void PrintClient (HDC hDC, DWORD dwFlags) const
 
BOOL RedrawWindow (LPCRECT lpRectUpdate=NULL, HRGN hRgnUpdate=NULL, UINT flags=RDW_INVALIDATE|RDW_UPDATENOW|RDW_ERASE)
 
int ReleaseDC (HDC hDC)
 
BOOL ResizeClient (int nWidth, int nHeight, BOOL bRedraw=FALSE)
 
BOOL ScreenToClient (LPPOINT lpPoint) const
 
BOOL ScrollWindow (int xAmount, int yAmount, LPCRECT lpRect=NULL, LPCRECT lpClipRect=NULL)
 
int ScrollWindowEx (int dx, int dy, LPCRECT lpRectScroll, LPCRECT lpRectClip, HRGN hRgnUpdate, LPRECT lpRectUpdate, UINT flags)
 
LRESULT SendDlgItemMessage (int nID, UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
LRESULT SendMessage (UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
void SendMessageToDescendants (UINT message, WPARAM wParam=0, LPARAM lParam=0, BOOL bDeep=TRUE)
 
BOOL SendNotifyMessage (UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
HWND SetActiveWindow ()
 
HWND SetCapture ()
 
HWND SetClipboardViewer ()
 
int SetDlgCtrlID (int nID)
 
BOOL SetDlgItemInt (int nID, UINT nValue, BOOL bSigned=TRUE)
 
BOOL SetDlgItemText (int nID, LPCTSTR lpszString)
 
HWND SetFocus ()
 
void SetFont (HFONT hFont, BOOL bRedraw=TRUE)
 
int SetHotKey (WORD wVirtualKeyCode, WORD wModifiers)
 
HICON SetIcon (HICON hIcon, BOOL bBigIcon=TRUE)
 
BOOL SetMenu (HMENU hMenu)
 
HWND SetParent (HWND hWndNewParent)
 
void SetRedraw (BOOL bRedraw=TRUE)
 
int SetScrollInfo (int nBar, LPSCROLLINFO lpScrollInfo, BOOL bRedraw=TRUE)
 
int SetScrollPos (int nBar, int nPos, BOOL bRedraw=TRUE)
 
BOOL SetScrollRange (int nBar, int nMinPos, int nMaxPos, BOOL bRedraw=TRUE)
 
UINT_PTR SetTimer (UINT_PTR nIDEvent, UINT nElapse, void(CALLBACK *lpfnTimer)(HWND, UINT, UINT_PTR, DWORD)=NULL)
 
BOOL SetWindowContextHelpId (DWORD dwContextHelpId)
 
LONG SetWindowLong (int nIndex, LONG dwNewLong)
 
LONG_PTR SetWindowLongPtr (int nIndex, LONG_PTR dwNewLong)
 
BOOL SetWindowPlacement (const WINDOWPLACEMENT *lpwndpl)
 
BOOL SetWindowPos (HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
 
int SetWindowRgn (HRGN hRgn, BOOL bRedraw=FALSE)
 
BOOL SetWindowText (LPCTSTR lpszString)
 
WORD SetWindowWord (int nIndex, WORD wNewWord)
 
BOOL ShowCaret ()
 
BOOL ShowOwnedPopups (BOOL bShow=TRUE)
 
BOOL ShowScrollBar (UINT nBar, BOOL bShow=TRUE)
 
BOOL ShowWindow (int nCmdShow)
 
BOOL ShowWindowAsync (int nCmdShow)
 
BOOL UpdateWindow ()
 
BOOL ValidateRect (LPCRECT lpRect)
 
BOOL ValidateRgn (HRGN hRgn)
 
BOOL WinHelp (LPCTSTR lpszHelp, UINT nCmd=HELP_CONTEXT, DWORD dwData=0)
 
- Public Member Functions inherited from ATL::CMessageMap
virtual BOOL ProcessWindowMessage (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID)=0
 
- 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 ()
 
- Public Member Functions inherited from IShellView2
HRESULT GetView ([in, out] SHELLVIEWID *view_guid, [in] ULONG view_type)
 
HRESULT CreateViewWindow2 ([in] LPSV2CVW2_PARAMS view_params)
 
HRESULT HandleRename ([in] PCUITEMID_CHILD new_pidl)
 
HRESULT SelectAndPositionItem ([in] PCUITEMID_CHILD item, [in] UINT flags, [in] POINT *point)
 
HRESULT TranslateAccelerator ([in] MSG *pmsg)
 
HRESULT EnableModeless ([in] BOOL fEnable)
 
HRESULT UIActivate ([in] UINT uState)
 
HRESULT Refresh ()
 
HRESULT CreateViewWindow ([in] IShellView *psvPrevious, [in] LPCFOLDERSETTINGS lpfs, [in] IShellBrowser *psb, [out] RECT *prcView, [out] HWND *phWnd)
 
HRESULT DestroyViewWindow ()
 
HRESULT GetCurrentInfo ([out] LPFOLDERSETTINGS lpfs)
 
HRESULT AddPropertySheetPages ([in] DWORD dwReserved, [in] LPFNSVADDPROPSHEETPAGE pfn, [in] LPARAM lparam)
 
HRESULT SaveViewState ()
 
HRESULT SelectItem ([in] PCUITEMID_CHILD pidlItem, [in] SVSIF uFlags)
 
HRESULT GetItemObject ([in] UINT uItem, [in] REFIID riid, [out, iid_is(riid)] void **ppv)
 
HRESULT GetWindow ([out] HWND *phwnd)
 
HRESULT ContextSensitiveHelp ([in] BOOL fEnterMode)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
HRESULT GetCurrentViewMode ([out] UINT *mode)
 
HRESULT SetCurrentViewMode ([in] UINT mode)
 
HRESULT GetFolder ([in] REFIID riid, [out, iid_is(riid)] void **ppv)
 
HRESULT Item ([in] int index, [out] PITEMID_CHILD *ppidl)
 
HRESULT ItemCount ([in] UINT flags, [out] int *items)
 
HRESULT Items ([in] UINT flags, [in] REFIID riid, [out, iid_is(riid)] void **ppv)
 
HRESULT GetSelectionMarkedItem ([out] int *item)
 
HRESULT GetFocusedItem ([out] int *item)
 
HRESULT GetItemPosition ([in] PCUITEMID_CHILD pidl, [out] POINT *ppt)
 
HRESULT GetSpacing ([in, out, unique] POINT *pt)
 
HRESULT GetDefaultSpacing ([out] POINT *pt)
 
HRESULT GetAutoArrange ()
 
HRESULT SelectItem ([in] int item, [in] DWORD flags)
 
HRESULT SelectAndPositionItems ([in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, unique, size_is(cidl)] POINT *apt, [in] DWORD flags)
 
HRESULT QueryStatus ([in, unique] const GUID *pguidCmdGroup, [in] ULONG cCmds, [in, out, size_is(cCmds)] OLECMD prgCmds[], [in, out, unique] OLECMDTEXT *pCmdText)
 
HRESULT Exec ([in, unique] const GUID *pguidCmdGroup, [in] DWORD nCmdID, [in] DWORD nCmdexecopt, [in, unique] VARIANT *pvaIn, [in, out, unique] VARIANT *pvaOut)
 
HRESULT DragEnter ([in, unique] IDataObject *pDataObj, [in] DWORD grfKeyState, [in] POINTL pt, [in, out] DWORD *pdwEffect)
 
HRESULT DragOver ([in] DWORD grfKeyState, [in] POINTL pt, [in, out] DWORD *pdwEffect)
 
HRESULT DragLeave ()
 
HRESULT Drop ([in, unique] IDataObject *pDataObj, [in] DWORD grfKeyState, [in] POINTL pt, [in, out] DWORD *pdwEffect)
 
HRESULT QueryContinueDrag ([in] BOOL fEscapePressed, [in] DWORD grfKeyState)
 
HRESULT GiveFeedback ([in] DWORD dwEffect)
 
- Public Member Functions inherited from IViewObject
HRESULT Draw ([in] DWORD dwDrawAspect, [in] LONG lindex, [in, unique] void *pvAspect, [in, unique] DVTARGETDEVICE *ptd, [in] HDC hdcTargetDev, [in] HDC hdcDraw, [in] LPCRECTL lprcBounds, [in, unique] LPCRECTL lprcWBounds, [in] BOOL(*pfnContinue)(ULONG_PTR dwContinue), [in] ULONG_PTR dwContinue)
 
HRESULT RemoteDraw ([in] DWORD dwDrawAspect, [in] LONG lindex, [in] ULONG_PTR pvAspect, [in, unique] DVTARGETDEVICE *ptd, [in] ULONG_PTR hdcTargetDev, [in] ULONG_PTR hdcDraw, [in] LPCRECTL lprcBounds, [in, unique] LPCRECTL lprcWBounds, [in] IContinue *pContinue)
 
HRESULT GetColorSet ([in] DWORD dwDrawAspect, [in] LONG lindex, [in, unique] void *pvAspect, [in, unique] DVTARGETDEVICE *ptd, [in] HDC hicTargetDev, [out] LOGPALETTE **ppColorSet)
 
HRESULT RemoteGetColorSet ([in] DWORD dwDrawAspect, [in] LONG lindex, [in] ULONG_PTR pvAspect, [in, unique] DVTARGETDEVICE *ptd, [in] ULONG_PTR hicTargetDev, [out] LOGPALETTE **ppColorSet)
 
HRESULT Freeze ([in] DWORD dwDrawAspect, [in] LONG lindex, [in, unique] void *pvAspect, [out] DWORD *pdwFreeze)
 
HRESULT RemoteFreeze ([in] DWORD dwDrawAspect, [in] LONG lindex, [in] ULONG_PTR pvAspect, [out] DWORD *pdwFreeze)
 
HRESULT Unfreeze ([in] DWORD dwFreeze)
 
HRESULT SetAdvise ([in] DWORD aspects, [in] DWORD advf, [in, unique] IAdviseSink *pAdvSink)
 
HRESULT GetAdvise ([out, unique] DWORD *pAspects, [out, unique] DWORD *pAdvf, [out] IAdviseSink **ppAdvSink)
 
HRESULT RemoteGetAdvise ([out] DWORD *pAspects, [out] DWORD *pAdvf, [out] IAdviseSink **ppAdvSink)
 
- Public Member Functions inherited from IServiceProvider
HRESULT QueryService ([in] REFGUID guidService, [in] REFIID riid, [out] void **ppvObject)
 
HRESULT RemoteQueryService ([in] REFGUID guidService, [in] REFIID riid, [out, iid_is(riid)] IUnknown **ppvObject)
 

Static Public Member Functions

static INT CALLBACK ListViewCompareItems (LPARAM lParam1, LPARAM lParam2, LPARAM lpData)
 
static INT CALLBACK fill_list (LPVOID ptr, LPVOID arg)
 
static ATL::CWndClassInfoGetWndClassInfo ()
 
static LRESULT CALLBACK WindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
- Static Public Member Functions inherited from ATL::CWindowImpl< CDefView, CWindow, CControlWinTraits >
static LPCTSTR GetWndCaption ()
 
- Static Public Member Functions inherited from ATL::CWindowImplBaseT< TBase, TWinTraits >
static DWORD GetWndStyle (DWORD dwStyle)
 
static DWORD GetWndExStyle (DWORD dwExStyle)
 
static LRESULT CALLBACK StartWindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK WindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
- Static Public Member Functions inherited from ATL::CWindow
static LPCTSTR GetWndClassName ()
 
static LRESULT SendMessage (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 
- 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)
 

Private Member Functions

HRESULT _MergeToolbar ()
 
BOOL _Sort ()
 
HRESULT _DoFolderViewCB (UINT uMsg, WPARAM wParam, LPARAM lParam)
 
HRESULT _GetSnapToGrid ()
 
void _MoveSelectionOnAutoArrange (POINT pt)
 
INT _FindInsertableIndexFromPoint (POINT pt)
 
void _HandleStatusBarResize (int width)
 
void _ForceStatusBarResize ()
 

Private Attributes

CComPtr< IShellFolderm_pSFParent
 
CComPtr< IShellFolder2m_pSF2Parent
 
CComPtr< IShellFolderViewCB > m_pShellFolderViewCB
 
CComPtr< IShellBrowserm_pShellBrowser
 
CComPtr< ICommDlgBrowserm_pCommDlgBrowser
 
CComPtr< IShellFolderViewDual > m_pShellFolderViewDual
 
CListView m_ListView
 
HWND m_hWndParent
 
FOLDERSETTINGS m_FolderSettings
 
HMENU m_hMenu
 
HMENU m_hMenuArrangeModes
 
HMENU m_hMenuViewModes
 
HMENU m_hContextMenu
 
BOOL m_bmenuBarInitialized
 
UINT m_uState
 
UINT m_cidl
 
PCUITEMID_CHILDm_apidl
 
PIDLIST_ABSOLUTE m_pidlParent
 
LISTVIEW_SORT_INFO m_sortInfo
 
ULONG m_hNotify
 
HACCEL m_hAccel
 
DWORD m_dwAspects
 
DWORD m_dwAdvf
 
CComPtr< IAdviseSinkm_pAdvSink
 
CComPtr< IDataObjectm_pSourceDataObject
 
CComPtr< IDropTargetm_pCurDropTarget
 
CComPtr< IDataObjectm_pCurDataObject
 
LONG m_iDragOverItem
 
UINT m_cScrollDelay
 
POINT m_ptLastMousePos
 
POINT m_ptFirstMousePos
 
DWORD m_grfKeyState
 
CComPtr< IContextMenum_pCM
 
CComPtr< IContextMenum_pFileMenu
 
BOOL m_isEditing
 
BOOL m_isParentFolderSpecial
 
CLSID m_Category
 
BOOL m_Destroyed
 
SFVM_CUSTOMVIEWINFO_DATA m_viewinfo_data
 
HICON m_hMyComputerIcon
 

Additional Inherited Members

- Public Types inherited from ATL::CWindowImplRoot< TBase >
enum  { WINSTATE_DESTROYED = 0x00000001 }
 
- Public Types inherited from IShellView2
typedef GUID SHELLVIEWID
 
typedef struct IShellView2::_SV2CVW2_PARAMS SV2CVW2_PARAMS
 
typedef struct IShellView2::_SV2CVW2_PARAMSLPSV2CVW2_PARAMS
 
- Public Types inherited from IShellView
enum  SVGIO {
  SVGIO_BACKGROUND = 0x00000000 , SVGIO_SELECTION = 0x00000001 , SVGIO_ALLVIEW = 0x00000002 , SVGIO_CHECKED = 0x00000003 ,
  SVGIO_TYPE_MASK = 0x0000000f , SVGIO_FLAG_VIEWORDER = 0x80000000
}
 
enum  SVUIA_STATUS { SVUIA_DEACTIVATE = 0 , SVUIA_ACTIVATE_NOFOCUS = 1 , SVUIA_ACTIVATE_FOCUS = 2 , SVUIA_INPLACEACTIVATE = 3 }
 
typedef IShellViewLPSHELLVIEW
 
typedef UINT SVSIF
 
- Public Types inherited from IOleWindow
typedef IOleWindowLPOLEWINDOW
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Types inherited from IOleCommandTarget
enum  OLECMDF {
  OLECMDF_SUPPORTED = 0x1 , OLECMDF_ENABLED = 0x2 , OLECMDF_LATCHED = 0x4 , OLECMDF_NINCHED = 0x8 ,
  OLECMDF_INVISIBLE = 0x10 , OLECMDF_DEFHIDEONCTXTMENU = 0x20
}
 
enum  OLECMDTEXTF { OLECMDTEXTF_NONE = 0 , OLECMDTEXTF_NAME = 1 , OLECMDTEXTF_STATUS = 2 }
 
enum  OLECMDEXECOPT { OLECMDEXECOPT_DODEFAULT = 0 , OLECMDEXECOPT_PROMPTUSER = 1 , OLECMDEXECOPT_DONTPROMPTUSER = 2 , OLECMDEXECOPT_SHOWHELP = 3 }
 
enum  OLECMDID {
  OLECMDID_OPEN = 1 , OLECMDID_NEW = 2 , OLECMDID_SAVE = 3 , OLECMDID_SAVEAS = 4 ,
  OLECMDID_SAVECOPYAS = 5 , OLECMDID_PRINT = 6 , OLECMDID_PRINTPREVIEW = 7 , OLECMDID_PAGESETUP = 8 ,
  OLECMDID_SPELL = 9 , OLECMDID_PROPERTIES = 10 , OLECMDID_CUT = 11 , OLECMDID_COPY = 12 ,
  OLECMDID_PASTE = 13 , OLECMDID_PASTESPECIAL = 14 , OLECMDID_UNDO = 15 , OLECMDID_REDO = 16 ,
  OLECMDID_SELECTALL = 17 , OLECMDID_CLEARSELECTION = 18 , OLECMDID_ZOOM = 19 , OLECMDID_GETZOOMRANGE = 20 ,
  OLECMDID_UPDATECOMMANDS = 21 , OLECMDID_REFRESH = 22 , OLECMDID_STOP = 23 , OLECMDID_HIDETOOLBARS = 24 ,
  OLECMDID_SETPROGRESSMAX = 25 , OLECMDID_SETPROGRESSPOS = 26 , OLECMDID_SETPROGRESSTEXT = 27 , OLECMDID_SETTITLE = 28 ,
  OLECMDID_SETDOWNLOADSTATE = 29 , OLECMDID_STOPDOWNLOAD = 30 , OLECMDID_ONTOOLBARACTIVATED = 31 , OLECMDID_FIND = 32 ,
  OLECMDID_DELETE = 33 , OLECMDID_HTTPEQUIV = 34 , OLECMDID_HTTPEQUIV_DONE = 35 , OLECMDID_ENABLE_INTERACTION = 36 ,
  OLECMDID_ONUNLOAD = 37 , OLECMDID_PROPERTYBAG2 = 38 , OLECMDID_PREREFRESH = 39 , OLECMDID_SHOWSCRIPTERROR = 40 ,
  OLECMDID_SHOWMESSAGE = 41 , OLECMDID_SHOWFIND = 42 , OLECMDID_SHOWPAGESETUP = 43 , OLECMDID_SHOWPRINT = 44 ,
  OLECMDID_CLOSE = 45 , OLECMDID_ALLOWUILESSSAVEAS = 46 , OLECMDID_DONTDOWNLOADCSS = 47 , OLECMDID_UPDATEPAGESTATUS = 48 ,
  OLECMDID_PRINT2 = 49 , OLECMDID_PRINTPREVIEW2 = 50 , OLECMDID_SETPRINTTEMPLATE = 51 , OLECMDID_GETPRINTTEMPLATE = 52 ,
  OLECMDID_PAGEACTIONBLOCKED = 55 , OLECMDID_PAGEACTIONUIQUERY = 56 , OLECMDID_FOCUSVIEWCONTROLS = 57 , OLECMDID_FOCUSVIEWCONTROLSQUERY = 58 ,
  OLECMDID_SHOWPAGEACTIONMENU = 59 , OLECMDID_ADDTRAVELENTRY = 60 , OLECMDID_UPDATETRAVELENTRY = 61 , OLECMDID_UPDATEBACKFORWARDSTATE = 62 ,
  OLECMDID_OPTICAL_ZOOM = 63 , OLECMDID_OPTICAL_GETZOOMRANGE = 64 , OLECMDID_WINDOWSTATECHANGED = 65 , OLECMDID_ACTIVEXINSTALLSCOPE = 66 ,
  OLECMDID_UPDATETRAVELENTRY_DATARECOVERY = 67 , OLECMDID_SHOWTASKDLG = 68 , OLECMDID_POPSTATEEVENT = 69 , OLECMDID_VIEWPORT_MODE = 70 ,
  OLECMDID_LAYOUT_VIEWPORT_WIDTH = 71 , OLECMDID_VISUAL_VIEWPORT_EXCLUDE_BOTTOM = 72 , OLECMDID_USER_OPTICAL_ZOOM = 73 , OLECMDID_PAGEAVAILABLE = 74 ,
  OLECMDID_GETUSERSCALABLE = 75 , OLECMDID_UPDATE_CARET = 76 , OLECMDID_ENABLE_VISIBILITY = 77 , OLECMDID_MEDIA_PLAYBACK = 78
}
 
typedef IOleCommandTargetLPOLECOMMANDTARGET
 
typedef enum IOleCommandTarget::OLECMDF OLECMDF
 
typedef struct IOleCommandTarget::_tagOLECMD OLECMD
 
typedef struct IOleCommandTarget::_tagOLECMDTEXT OLECMDTEXT
 
typedef enum IOleCommandTarget::OLECMDTEXTF OLECMDTEXTF
 
typedef enum IOleCommandTarget::OLECMDEXECOPT OLECMDEXECOPT
 
typedef enum IOleCommandTarget::OLECMDID OLECMDID
 
- Public Types inherited from IDropTarget
typedef IDropTargetLPDROPTARGET
 
- Public Types inherited from IDropSource
typedef IDropSourceLPDROPSOURCE
 
- Public Types inherited from IViewObject
typedef IViewObjectLPVIEWOBJECT
 
- Public Types inherited from IServiceProvider
typedef IServiceProviderLPSERVICEPROVIDER
 
- Public Attributes inherited from ATL::CWindowImplBaseT< TBase, TWinTraits >
WNDPROC m_pfnSuperWindowProc
 
- Public Attributes inherited from ATL::CWindowImplRoot< TBase >
CWndProcThunk m_thunk
 
const _ATL_MSGm_pCurrentMsg
 
DWORD m_dwState
 
- Public Attributes inherited from ATL::CWindow
HWND m_hWnd
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 
- Public Attributes inherited from IDropTarget
const DWORD MK_ALT = 0x20
 
const DWORD DROPEFFECT_NONE = 0
 
const DWORD DROPEFFECT_COPY = 1
 
const DWORD DROPEFFECT_MOVE = 2
 
const DWORD DROPEFFECT_LINK = 4
 
const DWORD DROPEFFECT_SCROLL = 0x80000000
 
const DWORD DD_DEFSCROLLINSET = 11
 
const DWORD DD_DEFSCROLLDELAY = 50
 
const DWORD DD_DEFSCROLLINTERVAL = 50
 
const DWORD DD_DEFDRAGDELAY = 200
 
const DWORD DD_DEFDRAGMINDIST = 2
 
- Static Public Attributes inherited from ATL::CWindow
static RECT rcDefault
 

Detailed Description

Definition at line 98 of file CDefView.cpp.

Constructor & Destructor Documentation

◆ CDefView()

CDefView::CDefView ( )

Definition at line 411 of file CDefView.cpp.

411 :
412 m_ListView(),
414 m_hMenu(NULL),
419 m_uState(0),
420 m_cidl(0),
421 m_apidl(NULL),
423 m_hNotify(0),
424 m_hAccel(NULL),
425 m_dwAspects(0),
426 m_dwAdvf(0),
432{
440
442}
#define shell32_hInstance
HMENU m_hMenu
Definition: CDefView.cpp:120
HMENU m_hMenuArrangeModes
Definition: CDefView.cpp:121
HWND m_hWndParent
Definition: CDefView.cpp:118
DWORD m_dwAdvf
Definition: CDefView.cpp:133
DWORD m_dwAspects
Definition: CDefView.cpp:132
BOOL m_isParentFolderSpecial
Definition: CDefView.cpp:149
UINT m_cScrollDelay
Definition: CDefView.cpp:140
LISTVIEW_SORT_INFO m_sortInfo
Definition: CDefView.cpp:129
PIDLIST_ABSOLUTE m_pidlParent
Definition: CDefView.cpp:128
HMENU m_hContextMenu
Definition: CDefView.cpp:123
BOOL m_Destroyed
Definition: CDefView.cpp:152
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:127
CLSID m_Category
Definition: CDefView.cpp:151
HICON m_hMyComputerIcon
Definition: CDefView.cpp:155
BOOL m_bmenuBarInitialized
Definition: CDefView.cpp:124
UINT m_cidl
Definition: CDefView.cpp:126
UINT m_uState
Definition: CDefView.cpp:125
BOOL m_isEditing
Definition: CDefView.cpp:148
POINT m_ptLastMousePos
Definition: CDefView.cpp:141
ULONG m_hNotify
Definition: CDefView.cpp:130
LONG m_iDragOverItem
Definition: CDefView.cpp:139
HMENU m_hMenuViewModes
Definition: CDefView.cpp:122
HACCEL m_hAccel
Definition: CDefView.cpp:131
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:119
CListView m_ListView
Definition: CDefView.cpp:117
SFVM_CUSTOMVIEWINFO_DATA m_viewinfo_data
Definition: CDefView.cpp:153
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
#define IDI_SHELL_COMPUTER_DESKTOP
Definition: shresdef.h:622
#define ZeroMemory
Definition: winbase.h:1670
DWORD WINAPI GetSysColor(_In_ int)
#define COLOR_WINDOW
Definition: winuser.h:912
#define COLOR_WINDOWTEXT
Definition: winuser.h:915
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2044
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582

◆ ~CDefView()

CDefView::~CDefView ( )

Definition at line 444 of file CDefView.cpp.

445{
446 TRACE(" destroying IShellView(%p)\n", this);
447
449
451 {
454 }
455
456 if (m_hWnd)
457 {
459 }
460
462}
#define SFVM_VIEWRELEASE
HWND m_hWnd
Definition: atlwin.h:267
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3894
virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow()
Definition: CDefView.cpp:2583
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:326
pKey DeleteObject()
#define TRACE(s)
Definition: solgame.cpp:4

Member Function Documentation

◆ _DoFolderViewCB()

HRESULT CDefView::_DoFolderViewCB ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
private

Definition at line 3894 of file CDefView.cpp.

3895{
3897
3899 {
3900 hr = m_pShellFolderViewCB->MessageSFVCB(uMsg, wParam, lParam);
3901 }
3902
3903 return hr;
3904}
CComPtr< IShellFolderViewCB > m_pShellFolderViewCB
Definition: CDefView.cpp:113
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define E_NOTIMPL
Definition: ddrawi.h:99
HRESULT hr
Definition: shlfolder.c:183

Referenced by CreateList(), CreateViewWindow3(), DestroyViewWindow(), FillList(), LV_AddItem(), OnNotify(), OnSize(), Refresh(), and ~CDefView().

◆ _FindInsertableIndexFromPoint()

INT CDefView::_FindInsertableIndexFromPoint ( POINT  pt)
private

Definition at line 3535 of file CDefView.cpp.

3536{
3537 RECT rcBound;
3538 INT i, nCount = m_ListView.GetItemCount();
3539 DWORD dwSpacing;
3540 INT dx, dy;
3541 BOOL bSmall = ((m_ListView.GetStyle() & LVS_TYPEMASK) != LVS_ICON);
3542
3543 /* FIXME: LVM_GETORIGIN is broken. See CORE-17266 */
3544 pt.x += m_ListView.GetScrollPos(SB_HORZ);
3545 pt.y += m_ListView.GetScrollPos(SB_VERT);
3546
3547 if (m_ListView.GetStyle() & LVS_ALIGNLEFT)
3548 {
3549 // vertically
3550 for (i = 0; i < nCount; ++i)
3551 {
3552 dwSpacing = ListView_GetItemSpacing(m_ListView, bSmall);
3553 dx = LOWORD(dwSpacing);
3554 dy = HIWORD(dwSpacing);
3556 rcBound.right = rcBound.left + dx;
3557 rcBound.bottom = rcBound.top + dy;
3558 if (pt.x < rcBound.right && pt.y < (rcBound.top + rcBound.bottom) / 2)
3559 {
3560 return i;
3561 }
3562 }
3563 for (i = nCount - 1; i >= 0; --i)
3564 {
3566 if (rcBound.left < pt.x && rcBound.top < pt.y)
3567 {
3568 return i + 1;
3569 }
3570 }
3571 }
3572 else
3573 {
3574 // horizontally
3575 for (i = 0; i < nCount; ++i)
3576 {
3577 dwSpacing = ListView_GetItemSpacing(m_ListView, bSmall);
3578 dx = LOWORD(dwSpacing);
3579 dy = HIWORD(dwSpacing);
3581 rcBound.right = rcBound.left + dx;
3582 rcBound.bottom = rcBound.top + dy;
3583 if (pt.y < rcBound.bottom && pt.x < rcBound.left)
3584 {
3585 return i;
3586 }
3587 if (pt.y < rcBound.bottom && pt.x < rcBound.right)
3588 {
3589 return i + 1;
3590 }
3591 }
3592 for (i = nCount - 1; i >= 0; --i)
3593 {
3595 if (rcBound.left < pt.x && rcBound.top < pt.y)
3596 {
3597 return i + 1;
3598 }
3599 }
3600 }
3601
3602 return nCount;
3603}
int GetItemCount()
Definition: rosctrls.h:121
#define pt(x, y)
Definition: drawing.c:79
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
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
GLint dy
Definition: linetemp.h:97
GLint dx
Definition: linetemp.h:97
#define LOWORD(l)
Definition: pedump.c:82
#define ListView_GetItemRect(hwnd, i, prc, code)
Definition: commctrl.h:2478
#define LVS_ICON
Definition: commctrl.h:2261
#define LVS_TYPEMASK
Definition: commctrl.h:2265
#define LVIR_SELECTBOUNDS
Definition: commctrl.h:2475
#define LVS_ALIGNLEFT
Definition: commctrl.h:2280
#define ListView_GetItemSpacing(hwndLV, fSmall)
Definition: commctrl.h:2712
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
#define HIWORD(l)
Definition: typedefs.h:247
#define SB_VERT
Definition: winuser.h:553
#define SB_HORZ
Definition: winuser.h:552

Referenced by _MoveSelectionOnAutoArrange().

◆ _ForceStatusBarResize()

void CDefView::_ForceStatusBarResize ( )
private

Definition at line 3631 of file CDefView.cpp.

3632{
3633 /* Get the handle for the status bar */
3634 HWND fStatusBar;
3635 m_pShellBrowser->GetControlWindow(FCW_STATUS, &fStatusBar);
3636
3637 /* Get the size of our status bar */
3638 RECT statusBarSize;
3639 ::GetWindowRect(fStatusBar, &statusBarSize);
3640
3641 /* Resize the status bar */
3642 _HandleStatusBarResize(statusBarSize.right - statusBarSize.left);
3643}
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:114
void _HandleStatusBarResize(int width)
Definition: CDefView.cpp:3605
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)

Referenced by OnCreate(), and UIActivate().

◆ _GetSnapToGrid()

HRESULT CDefView::_GetSnapToGrid ( )
private

Definition at line 2908 of file CDefView.cpp.

2909{
2910 DWORD dwExStyle = (DWORD)m_ListView.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
2911 return ((dwExStyle & LVS_EX_SNAPTOGRID) ? S_OK : S_FALSE);
2912}
#define S_OK
Definition: intsafe.h:52
#define DWORD
Definition: nt_native.h:44
#define LVS_EX_SNAPTOGRID
Definition: commctrl.h:2748
#define LVM_GETEXTENDEDLISTVIEWSTYLE
Definition: commctrl.h:2727
#define S_FALSE
Definition: winerror.h:2357

Referenced by FillArrangeAsMenu(), and OnCommand().

◆ _HandleStatusBarResize()

void CDefView::_HandleStatusBarResize ( int  width)
private

Definition at line 3605 of file CDefView.cpp.

3606{
3607 LRESULT lResult;
3608
3610 {
3611 int nPartArray[] = {-1};
3612 m_pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETPARTS, _countof(nPartArray), (LPARAM)nPartArray, &lResult);
3613 return;
3614 }
3615
3616 int nFileSizePartLength = 125;
3617 const int nLocationPartLength = 150;
3618 const int nRightPartsLength = nFileSizePartLength + nLocationPartLength;
3619 int nObjectsPartLength = nWidth - nRightPartsLength;
3620
3621 /* If the window is small enough just divide each part into thirds
3622 * This is the behavior of Windows Server 2003. */
3623 if (nObjectsPartLength <= nLocationPartLength)
3624 nObjectsPartLength = nFileSizePartLength = nWidth / 3;
3625
3626 int nPartArray[] = {nObjectsPartLength, nObjectsPartLength + nFileSizePartLength, -1};
3627
3628 m_pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETPARTS, _countof(nPartArray), (LPARAM)nPartArray, &lResult);
3629}
#define SB_SETPARTS
Definition: commctrl.h:1954
#define _countof(array)
Definition: sndvol32.h:68
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209

Referenced by _ForceStatusBarResize(), and OnSize().

◆ _MergeToolbar()

HRESULT CDefView::_MergeToolbar ( )
private

Definition at line 3867 of file CDefView.cpp.

3868{
3870 HRESULT hr = S_OK;
3871
3872 hr = IUnknown_QueryService(m_pShellBrowser, IID_IExplorerToolbar, IID_PPV_ARG(IExplorerToolbar, &ptb));
3873 if (FAILED(hr))
3874 return hr;
3875
3876 m_Category = CGID_DefViewFrame;
3877
3878 hr = ptb->SetCommandTarget(static_cast<IOleCommandTarget*>(this), &m_Category, 0);
3879 if (FAILED(hr))
3880 return hr;
3881
3882 if (hr == S_FALSE)
3883 return S_OK;
3884
3885#if 0
3886 hr = ptb->AddButtons(&m_Category, buttonsCount, buttons);
3887 if (FAILED(hr))
3888 return hr;
3889#endif
3890
3891 return S_OK;
3892}
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1494
#define FAILED(hr)
Definition: intsafe.h:51
HWND buttons[5]
Definition: sndrec32.cpp:40
#define IID_PPV_ARG(Itype, ppType)

Referenced by CreateViewWindow3().

◆ _MoveSelectionOnAutoArrange()

void CDefView::_MoveSelectionOnAutoArrange ( POINT  pt)
private

Definition at line 3659 of file CDefView.cpp.

3660{
3661 // get insertable index from position
3663
3664 // create identity mapping of indexes
3666 INT nCount = m_ListView.GetItemCount();
3667 for (INT i = 0; i < nCount; ++i)
3668 {
3669 array.Add(i);
3670 }
3671
3672 // re-ordering mapping
3673 INT iItem = -1;
3674 while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3675 {
3676 INT iFrom = iItem, iTo = iPosition;
3677 if (iFrom < iTo)
3678 --iTo;
3679 if (iFrom >= nCount)
3680 iFrom = nCount - 1;
3681 if (iTo >= nCount)
3682 iTo = nCount - 1;
3683
3684 // shift indexes by swapping (like a bucket relay)
3685 if (iFrom < iTo)
3686 {
3687 for (INT i = iFrom; i < iTo; ++i)
3688 {
3689 // swap array[i] and array[i + 1]
3690 INT tmp = array[i];
3691 array[i] = array[i + 1];
3692 array[i + 1] = tmp;
3693 }
3694 }
3695 else
3696 {
3697 for (INT i = iFrom; i > iTo; --i)
3698 {
3699 // swap array[i] and array[i - 1]
3700 INT tmp = array[i];
3701 array[i] = array[i - 1];
3702 array[i - 1] = tmp;
3703 }
3704 }
3705 }
3706
3707 // create mapping (ListView's lParam to index) from array
3709 for (INT i = 0; i < nCount; ++i)
3710 {
3712 map.Add(lParam, i);
3713 }
3714
3715 // finally sort
3717}
static INT CALLBACK SelectionMoveCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
Definition: CDefView.cpp:3648
INT _FindInsertableIndexFromPoint(POINT pt)
Definition: CDefView.cpp:3535
int GetNextItem(int i, WORD flags)
Definition: rosctrls.h:161
BOOL SortItems(PFNLVCOMPARE pfnCompare, PVOID lParam)
Definition: rosctrls.h:141
DWORD_PTR GetItemData(int i)
Definition: rosctrls.h:204
Definition: _map.h:48
#define LVNI_SELECTED
Definition: commctrl.h:2424

Referenced by Drop().

◆ _PidlByItem() [1/2]

PCUITEMID_CHILD CDefView::_PidlByItem ( int  i)

Definition at line 868 of file CDefView.cpp.

869{
870 if (!m_ListView)
871 return nullptr;
872 return reinterpret_cast<PCUITEMID_CHILD>(m_ListView.GetItemData(i));
873}
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Definition: shtypes.idl:70

Referenced by drag_notify_subitem(), GetSelections(), Item(), LV_FindItemByPidl(), OnNotify(), and UpdateStatusbar().

◆ _PidlByItem() [2/2]

PCUITEMID_CHILD CDefView::_PidlByItem ( LVITEM lvItem)

Definition at line 875 of file CDefView.cpp.

876{
877 if (!m_ListView)
878 return nullptr;
879 return reinterpret_cast<PCUITEMID_CHILD>(lvItem.lParam);
880}

◆ _Sort()

BOOL CDefView::_Sort ( )
private

Definition at line 834 of file CDefView.cpp.

835{
836 HWND hHeader;
837 HDITEM hColumn;
838
839 if (m_ListView.GetWindowLongPtr(GWL_STYLE) & LVS_NOSORTHEADER)
840 return TRUE;
841
842 hHeader = (HWND)m_ListView.SendMessage(LVM_GETHEADER, 0, 0);
843 ZeroMemory(&hColumn, sizeof(hColumn));
844
845 /* If the sorting column changed, remove the sorting style from the old column */
846 if ( (m_sortInfo.nLastHeaderID != -1) &&
848 {
849 hColumn.mask = HDI_FORMAT;
850 Header_GetItem(hHeader, m_sortInfo.nLastHeaderID, &hColumn);
851 hColumn.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN);
852 Header_SetItem(hHeader, m_sortInfo.nLastHeaderID, &hColumn);
853 }
854
855 /* Set the sorting style to the new column */
856 hColumn.mask = HDI_FORMAT;
857 Header_GetItem(hHeader, m_sortInfo.nHeaderID, &hColumn);
858
859 hColumn.fmt &= (m_sortInfo.bIsAscending ? ~HDF_SORTDOWN : ~HDF_SORTUP );
860 hColumn.fmt |= (m_sortInfo.bIsAscending ? HDF_SORTUP : HDF_SORTDOWN);
861 Header_SetItem(hHeader, m_sortInfo.nHeaderID, &hColumn);
862
863 /* Sort the list, using the current values of nHeaderID and bIsAscending */
866}
static INT CALLBACK ListViewCompareItems(LPARAM lParam1, LPARAM lParam2, LPARAM lpData)
Definition: CDefView.cpp:818
#define TRUE
Definition: types.h:120
HANDLE HWND
Definition: compat.h:19
#define Header_GetItem(hwndHD, i, phdi)
Definition: commctrl.h:751
#define LVM_GETHEADER
Definition: commctrl.h:2650
#define Header_SetItem(hwndHD, i, phdi)
Definition: commctrl.h:758
#define HDF_SORTUP
Definition: commctrl.h:724
#define HDI_FORMAT
Definition: commctrl.h:705
#define LVS_NOSORTHEADER
Definition: commctrl.h:2285
#define HDITEM
Definition: commctrl.h:697
#define HDF_SORTDOWN
Definition: commctrl.h:725
#define GWL_STYLE
Definition: winuser.h:846

Referenced by FillList(), OnCommand(), and OnNotify().

◆ AddObject()

HRESULT STDMETHODCALLTYPE CDefView::AddObject ( PITEMID_CHILD  pidl,
UINT item 
)
virtual

Definition at line 3101 of file CDefView.cpp.

3102{
3103 TRACE("(%p)->(%p %p)\n", this, pidl, item);
3104 *item = LV_AddItem(pidl);
3105 return (int)*item >= 0 ? S_OK : E_OUTOFMEMORY;
3106}
int LV_AddItem(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:901
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static ATOM item
Definition: dde.c:856

◆ AddPropertySheetPages()

HRESULT WINAPI CDefView::AddPropertySheetPages ( DWORD  dwReserved,
LPFNSVADDPROPSHEETPAGE  pfn,
LPARAM  lparam 
)
virtual

Implements IShellView.

Definition at line 2643 of file CDefView.cpp.

2644{
2645 FIXME("(%p) stub\n", this);
2646
2647 return E_NOTIMPL;
2648}
#define FIXME(fmt,...)
Definition: debug.h:111

◆ ArrangeGrid()

HRESULT STDMETHODCALLTYPE CDefView::ArrangeGrid ( )
virtual

Definition at line 3088 of file CDefView.cpp.

3089{
3091 return S_OK;
3092}
DWORD SetExtendedListViewStyle(DWORD dw, DWORD dwMask=0)
Definition: rosctrls.h:47

Referenced by OnCommand().

◆ AutoArrange()

HRESULT STDMETHODCALLTYPE CDefView::AutoArrange ( )
virtual

Definition at line 3094 of file CDefView.cpp.

3095{
3096 m_ListView.ModifyStyle(0, LVS_AUTOARRANGE);
3098 return S_OK;
3099}
BOOL Arrange(UINT nCode)
Definition: rosctrls.h:241
#define LVA_DEFAULT
Definition: commctrl.h:2527
#define LVS_AUTOARRANGE
Definition: commctrl.h:2272

Referenced by OnCommand().

◆ CheckToolbar()

void CDefView::CheckToolbar ( )

Definition at line 523 of file CDefView.cpp.

524{
526
527 TRACE("\n");
528
529 if (m_pCommDlgBrowser != NULL)
530 {
531 m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_CHECKBUTTON,
533 m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_CHECKBUTTON,
535 m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_ENABLEBUTTON,
537 m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_ENABLEBUTTON,
539 }
540}
CComPtr< ICommDlgBrowser > m_pCommDlgBrowser
Definition: CDefView.cpp:115
GLuint64EXT * result
Definition: glext.h:11304
#define TB_CHECKBUTTON
Definition: commctrl.h:1043
#define TB_ENABLEBUTTON
Definition: commctrl.h:1042
@ FVM_LIST
Definition: shobjidl.idl:671
@ FVM_DETAILS
Definition: shobjidl.idl:672
#define FCIDM_TB_SMALLICON
Definition: shresdef.h:834
#define FCIDM_TB_REPORTVIEW
Definition: shresdef.h:835

Referenced by CreateViewWindow3(), and OnCommand().

◆ CheckViewMode()

HRESULT CDefView::CheckViewMode ( HMENU  hmenuView)

Definition at line 1452 of file CDefView.cpp.

1453{
1455 {
1456 UINT iItemFirst = FCIDM_SHVIEW_BIGICON;
1457 UINT iItemLast = iItemFirst + FVM_LAST - FVM_FIRST;
1458 UINT iItem = iItemFirst + m_FolderSettings.ViewMode - FVM_FIRST;
1459 CheckMenuRadioItem(hmenuView, iItemFirst, iItemLast, iItem, MF_BYCOMMAND);
1460 }
1461
1462 return S_OK;
1463}
unsigned int UINT
Definition: ndis.h:50
@ FVM_LAST
Definition: shobjidl.idl:677
@ FVM_FIRST
Definition: shobjidl.idl:669
#define FCIDM_SHVIEW_BIGICON
Definition: shresdef.h:813
#define MF_BYCOMMAND
Definition: winuser.h:202
BOOL WINAPI CheckMenuRadioItem(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT, _In_ UINT)

Referenced by Exec(), and OnInitMenuPopup().

◆ ContextSensitiveHelp()

HRESULT WINAPI CDefView::ContextSensitiveHelp ( BOOL  fEnterMode)
virtual

Implements IOleWindow.

Definition at line 2504 of file CDefView.cpp.

2505{
2506 FIXME("(%p) stub\n", this);
2507
2508 return E_NOTIMPL;
2509}

◆ CreateList()

BOOL CDefView::CreateList ( )

Definition at line 625 of file CDefView.cpp.

626{
627 HRESULT hr;
628 DWORD dwStyle, dwExStyle;
629 UINT ViewMode;
630
631 TRACE("%p\n", this);
632
635 dwExStyle = WS_EX_CLIENTEDGE;
636
638 dwStyle |= LVS_ALIGNLEFT;
639 else
640 dwStyle |= LVS_ALIGNTOP | LVS_SHOWSELALWAYS;
641
642 ViewMode = m_FolderSettings.ViewMode;
643 hr = _DoFolderViewCB(SFVM_DEFVIEWMODE, 0, (LPARAM)&ViewMode);
644 if (SUCCEEDED(hr))
645 {
646 if (ViewMode >= FVM_FIRST && ViewMode <= FVM_LAST)
647 m_FolderSettings.ViewMode = ViewMode;
648 else
649 ERR("Ignoring invalid ViewMode from SFVM_DEFVIEWMODE: %u (was: %u)\n", ViewMode, m_FolderSettings.ViewMode);
650 }
651
653 {
654 case FVM_ICON:
655 dwStyle |= LVS_ICON;
656 break;
657
658 case FVM_DETAILS:
659 dwStyle |= LVS_REPORT;
660 break;
661
662 case FVM_SMALLICON:
663 dwStyle |= LVS_SMALLICON;
664 break;
665
666 case FVM_LIST:
667 dwStyle |= LVS_LIST;
668 break;
669
670 default:
671 dwStyle |= LVS_LIST;
672 break;
673 }
674
676 dwStyle |= LVS_AUTOARRANGE;
677
679 dwExStyle |= LVS_EX_SNAPTOGRID;
680
683
685 dwStyle |= LVS_SINGLESEL;
686
688 dwExStyle &= ~WS_EX_CLIENTEDGE;
689
690 RECT rcListView = {0,0,0,0};
691 m_ListView.Create(m_hWnd, rcListView, L"FolderView", dwStyle, dwExStyle, ID_LISTVIEW);
692
693 if (!m_ListView)
694 return FALSE;
695
699
700 /* UpdateShellSettings(); */
701 return TRUE;
702}
#define ID_LISTVIEW
Definition: CDefView.cpp:402
#define ERR(fmt,...)
Definition: debug.h:110
HWND Create(HWND hWndParent, _U_RECT rect, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
Definition: rosctrls.h:8
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define L(x)
Definition: ntvdm.h:50
#define WS_TABSTOP
Definition: pedump.c:634
#define WS_VISIBLE
Definition: pedump.c:620
#define WS_CHILDWINDOW
Definition: pedump.c:639
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
#define WS_CLIPCHILDREN
Definition: pedump.c:619
#define LVS_SINGLESEL
Definition: commctrl.h:2266
#define LVS_SHAREIMAGELISTS
Definition: commctrl.h:2270
#define LVS_SHOWSELALWAYS
Definition: commctrl.h:2267
#define LVS_REPORT
Definition: commctrl.h:2262
#define LVS_SMALLICON
Definition: commctrl.h:2263
#define LVS_ALIGNTOP
Definition: commctrl.h:2279
#define LVS_EDITLABELS
Definition: commctrl.h:2273
#define LVS_LIST
Definition: commctrl.h:2264
#define SFVM_DEFVIEWMODE
Definition: shlobj.h:1245
@ FWF_SNAPTOGRID
Definition: shobjidl.idl:633
@ FWF_AUTOARRANGE
Definition: shobjidl.idl:631
@ FWF_NOSCROLL
Definition: shobjidl.idl:641
@ FWF_NOCLIENTEDGE
Definition: shobjidl.idl:640
@ FWF_SINGLESEL
Definition: shobjidl.idl:637
@ FWF_DESKTOP
Definition: shobjidl.idl:636
@ FVM_SMALLICON
Definition: shobjidl.idl:670
@ FVM_ICON
Definition: shobjidl.idl:668
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384

Referenced by OnCreate().

◆ CreateViewWindow()

HRESULT WINAPI CDefView::CreateViewWindow ( IShellView psvPrevious,
LPCFOLDERSETTINGS  pfs,
IShellBrowser psb,
RECT prcView,
HWND phWnd 
)
virtual

Implements IShellView.

Definition at line 2577 of file CDefView.cpp.

2578{
2579 return CreateViewWindow3(psb, lpPrevView, SV3CVW3_DEFAULT,
2580 (FOLDERFLAGS)lpfs->fFlags, (FOLDERFLAGS)lpfs->fFlags, (FOLDERVIEWMODE)lpfs->ViewMode, NULL, prcView, phWnd);
2581}
virtual HRESULT STDMETHODCALLTYPE CreateViewWindow3(IShellBrowser *psb, IShellView *psvPrevious, SV3CVW3_FLAGS view_flags, FOLDERFLAGS mask, FOLDERFLAGS flags, FOLDERVIEWMODE mode, const SHELLVIEWID *view_id, RECT *prcView, HWND *hwnd)
Definition: CDefView.cpp:2981
FOLDERFLAGS
Definition: shobjidl.idl:630
FOLDERVIEWMODE
Definition: shobjidl.idl:666

◆ CreateViewWindow2()

HRESULT STDMETHODCALLTYPE CDefView::CreateViewWindow2 ( LPSV2CVW2_PARAMS  view_params)
virtual

Implements IShellView2.

Definition at line 2974 of file CDefView.cpp.

2975{
2976 return CreateViewWindow3(view_params->psbOwner, view_params->psvPrev,
2977 SV3CVW3_DEFAULT, (FOLDERFLAGS)view_params->pfs->fFlags, (FOLDERFLAGS)view_params->pfs->fFlags,
2978 (FOLDERVIEWMODE)view_params->pfs->ViewMode, view_params->pvid, view_params->prcView, &view_params->hwndView);
2979}

◆ CreateViewWindow3()

HRESULT STDMETHODCALLTYPE CDefView::CreateViewWindow3 ( IShellBrowser psb,
IShellView psvPrevious,
SV3CVW3_FLAGS  view_flags,
FOLDERFLAGS  mask,
FOLDERFLAGS  flags,
FOLDERVIEWMODE  mode,
const SHELLVIEWID view_id,
RECT prcView,
HWND hwnd 
)
virtual

Definition at line 2981 of file CDefView.cpp.

2982{
2983 OLEMENUGROUPWIDTHS omw = { { 0, 0, 0, 0, 0, 0 } };
2984
2985 *hwnd = NULL;
2986
2987 TRACE("(%p)->(shlview=%p shlbrs=%p rec=%p hwnd=%p vmode=%x flags=%x)\n", this, psvPrevious, psb, prcView, hwnd, mode, flags);
2988 if (prcView != NULL)
2989 TRACE("-- left=%i top=%i right=%i bottom=%i\n", prcView->left, prcView->top, prcView->right, prcView->bottom);
2990
2991 /* Validate the Shell Browser */
2992 if (psb == NULL || m_hWnd)
2993 return E_UNEXPECTED;
2994
2995 if (view_flags != SV3CVW3_DEFAULT)
2996 FIXME("unsupported view flags 0x%08x\n", view_flags);
2997
2998 /* Set up the member variables */
2999 m_pShellBrowser = psb;
3002
3003 if (view_id)
3004 {
3005 if (IsEqualIID(*view_id, VID_LargeIcons))
3007 else if (IsEqualIID(*view_id, VID_SmallIcons))
3009 else if (IsEqualIID(*view_id, VID_List))
3011 else if (IsEqualIID(*view_id, VID_Details))
3013 else if (IsEqualIID(*view_id, VID_Thumbnails))
3015 else if (IsEqualIID(*view_id, VID_Tile))
3017 else if (IsEqualIID(*view_id, VID_ThumbStrip))
3019 else
3020 FIXME("Ignoring unrecognized VID %s\n", debugstr_guid(view_id));
3021 }
3022
3023 /* Get our parent window */
3024 m_pShellBrowser->GetWindow(&m_hWndParent);
3025
3026 /* Try to get the ICommDlgBrowserInterface, adds a reference !!! */
3029 {
3030 TRACE("-- CommDlgBrowser\n");
3031 }
3032
3034 if (m_hWnd == NULL)
3035 return E_FAIL;
3036
3037 *hwnd = m_hWnd;
3038
3039 CheckToolbar();
3040
3041 if (!*hwnd)
3042 return E_FAIL;
3043
3045
3047 UpdateWindow();
3048
3049 if (!m_hMenu)
3050 {
3051 m_hMenu = CreateMenu();
3052 m_pShellBrowser->InsertMenusSB(m_hMenu, &omw);
3053 TRACE("-- after fnInsertMenusSB\n");
3054 }
3055
3056 _MergeToolbar();
3057
3058 return S_OK;
3059}
#define U(x)
Definition: wordpad.c:45
@ Create
Definition: registry.c:563
BOOL UpdateWindow()
Definition: atlwin.h:1339
HRESULT _MergeToolbar()
Definition: CDefView.cpp:3867
void CheckToolbar()
Definition: CDefView.cpp:523
#define E_FAIL
Definition: ddrawi.h:102
GLenum GLint GLuint mask
Definition: glext.h:6028
GLenum mode
Definition: glext.h:6217
GLbitfield flags
Definition: glext.h:7161
#define debugstr_guid
Definition: kernel32.h:35
#define WS_CHILD
Definition: pedump.c:617
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define SFVM_WINDOWCREATED
Definition: shlobj.h:1235
@ FVM_TILE
Definition: shobjidl.idl:674
@ FVM_THUMBNAIL
Definition: shobjidl.idl:673
@ FVM_THUMBSTRIP
Definition: shobjidl.idl:675
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
UINT_PTR WPARAM
Definition: windef.h:207
#define E_UNEXPECTED
Definition: winerror.h:2456
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HMENU WINAPI CreateMenu(void)
Definition: menu.c:837
#define SWP_NOMOVE
Definition: winuser.h:1234
#define SWP_NOSIZE
Definition: winuser.h:1235
#define HWND_TOP
Definition: winuser.h:1197
#define SWP_SHOWWINDOW
Definition: winuser.h:1238

Referenced by CreateViewWindow(), and CreateViewWindow2().

◆ DestroyViewWindow()

HRESULT WINAPI CDefView::DestroyViewWindow ( )
virtual

Implements IShellView.

Definition at line 2583 of file CDefView.cpp.

2584{
2585 TRACE("(%p)\n", this);
2586
2587 /* Make absolutely sure all our UI is cleaned up */
2589
2590 if (m_hAccel)
2591 {
2592 // "Accelerator tables loaded from resources are freed automatically when the application terminates." -- MSDN
2593 m_hAccel = NULL;
2594 }
2595
2597 {
2600 }
2601
2602 if (m_hMenuViewModes)
2603 {
2606 }
2607
2608 if (m_hMenu)
2609 {
2611 m_hMenu = NULL;
2612 }
2613
2614 if (m_ListView)
2615 {
2616 m_ListView.DestroyWindow();
2617 }
2618
2619 if (m_hWnd)
2620 {
2622 DestroyWindow();
2623 }
2624
2627
2628 return S_OK;
2629}
#define SFVM_WINDOWCLOSING
void Release()
Definition: atlcomcli.h:147
BOOL DestroyWindow()
Definition: atlwin.h:456
virtual HRESULT STDMETHODCALLTYPE UIActivate(UINT uState)
Definition: CDefView.cpp:2540
@ SVUIA_DEACTIVATE
Definition: shobjidl.idl:742
BOOL WINAPI DestroyMenu(_In_ HMENU)

Referenced by ~CDefView().

◆ DoActivate()

void CDefView::DoActivate ( UINT  uState)

Definition at line 1771 of file CDefView.cpp.

1772{
1773 TRACE("%p uState=%x\n", this, uState);
1774
1775 /*don't do anything if the state isn't really changing */
1776 if (m_uState == uState)
1777 {
1778 return;
1779 }
1780
1781 if (uState == SVUIA_DEACTIVATE)
1782 {
1783 OnDeactivate();
1784 }
1785 else
1786 {
1788 {
1789 FillEditMenu();
1790 FillViewMenu();
1791 m_pShellBrowser->SetMenuSB(m_hMenu, 0, m_hWnd);
1793 }
1794
1795 if (SVUIA_ACTIVATE_FOCUS == uState)
1796 {
1797 m_ListView.SetFocus();
1798 }
1799 }
1800
1801 m_uState = uState;
1802 TRACE("--\n");
1803}
HRESULT FillEditMenu()
Definition: CDefView.cpp:1379
void OnDeactivate()
Definition: CDefView.cpp:1759
HRESULT FillViewMenu()
Definition: CDefView.cpp:1396
@ SVUIA_ACTIVATE_FOCUS
Definition: shobjidl.idl:744

Referenced by OnActivate(), OnKillFocus(), OnSetFocus(), and UIActivate().

◆ drag_notify_subitem()

HRESULT CDefView::drag_notify_subitem ( DWORD  grfKeyState,
POINTL  pt,
DWORD pdwEffect 
)

Definition at line 3373 of file CDefView.cpp.

3374{
3375 LONG lResult;
3376 HRESULT hr;
3377 RECT clientRect;
3378
3379 /* The key state on drop doesn't have MK_LBUTTON or MK_RBUTTON because it
3380 reflects the key state after the user released the button, so we need
3381 to remember the last key state when the button was pressed */
3382 m_grfKeyState = grfKeyState;
3383
3384 /* Map from global to client coordinates and query the index of the listview-item, which is
3385 * currently under the mouse cursor. */
3386 LVHITTESTINFO htinfo = {{pt.x, pt.y}, LVHT_ONITEM};
3387 ScreenToClient(&htinfo.pt);
3388 lResult = m_ListView.HitTest(&htinfo);
3389
3390 /* Send WM_*SCROLL messages every 250 ms during drag-scrolling */
3391 ::GetClientRect(m_ListView, &clientRect);
3392 if (htinfo.pt.x == m_ptLastMousePos.x && htinfo.pt.y == m_ptLastMousePos.y &&
3393 (htinfo.pt.x < SCROLLAREAWIDTH || htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH ||
3394 htinfo.pt.y < SCROLLAREAWIDTH || htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH ))
3395 {
3396 m_cScrollDelay = (m_cScrollDelay + 1) % 5; /* DragOver is called every 50 ms */
3397 if (m_cScrollDelay == 0)
3398 {
3399 /* Mouse did hover another 250 ms over the scroll-area */
3400 if (htinfo.pt.x < SCROLLAREAWIDTH)
3401 m_ListView.SendMessageW(WM_HSCROLL, SB_LINEUP, 0);
3402
3403 if (htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH)
3404 m_ListView.SendMessageW(WM_HSCROLL, SB_LINEDOWN, 0);
3405
3406 if (htinfo.pt.y < SCROLLAREAWIDTH)
3407 m_ListView.SendMessageW(WM_VSCROLL, SB_LINEUP, 0);
3408
3409 if (htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH)
3410 m_ListView.SendMessageW(WM_VSCROLL, SB_LINEDOWN, 0);
3411 }
3412 }
3413 else
3414 {
3415 m_cScrollDelay = 0; /* Reset, if the cursor is not over the listview's scroll-area */
3416 }
3417
3418 m_ptLastMousePos = htinfo.pt;
3420
3421 /* We need to check if we drag the selection over itself */
3422 if (lResult != -1 && m_pSourceDataObject.p != NULL)
3423 {
3424 PCUITEMID_CHILD pidl = _PidlByItem(lResult);
3425
3426 for (UINT i = 0; i < m_cidl; i++)
3427 {
3428 if (pidl == m_apidl[i])
3429 {
3430 /* The item that is being draged is hovering itself. */
3431 lResult = -1;
3432 break;
3433 }
3434 }
3435 }
3436
3437 /* If we are still over the previous sub-item, notify it via DragOver and return. */
3438 if (m_pCurDropTarget && lResult == m_iDragOverItem)
3439 return m_pCurDropTarget->DragOver(grfKeyState, pt, pdwEffect);
3440
3441 /* We've left the previous sub-item, notify it via DragLeave and Release it. */
3442 if (m_pCurDropTarget)
3443 {
3445 if (pidl)
3446 SelectItem(pidl, 0);
3447
3448 m_pCurDropTarget->DragLeave();
3450 }
3451
3452 m_iDragOverItem = lResult;
3453
3454 if (lResult == -1)
3455 {
3456 /* We are not above one of the listview's subitems. Bind to the parent folder's
3457 * DropTarget interface. */
3459 }
3460 else
3461 {
3462 /* Query the relative PIDL of the shellfolder object represented by the currently
3463 * dragged over listview-item ... */
3464 PCUITEMID_CHILD pidl = _PidlByItem(lResult);
3465
3466 /* ... and bind m_pCurDropTarget to the IDropTarget interface of an UIObject of this object */
3467 hr = m_pSFParent->GetUIObjectOf(m_ListView, 1, &pidl, IID_NULL_PPV_ARG(IDropTarget, &m_pCurDropTarget));
3468 }
3469
3471
3472 /* If anything failed, m_pCurDropTarget should be NULL now, which ought to be a save state. */
3473 if (FAILED(hr))
3474 {
3475 *pdwEffect = DROPEFFECT_NONE;
3476 return hr;
3477 }
3478
3479 if (m_iDragOverItem != -1)
3480 {
3481 SelectItem(m_iDragOverItem, SVSI_SELECT);
3482 }
3483
3484 /* Notify the item just entered via DragEnter. */
3485 return m_pCurDropTarget->DragEnter(m_pCurDataObject, grfKeyState, pt, pdwEffect);
3486}
#define SCROLLAREAWIDTH
Definition: CDefView.cpp:3371
static void ClientToListView(HWND hwndLV, POINT *ppt)
Definition: CDefView.cpp:59
CComPtr< IShellFolder > m_pSFParent
Definition: CDefView.cpp:111
CComPtr< IDataObject > m_pCurDataObject
Definition: CDefView.cpp:138
CComPtr< IDataObject > m_pSourceDataObject
Definition: CDefView.cpp:136
CComPtr< IDropTarget > m_pCurDropTarget
Definition: CDefView.cpp:137
PCUITEMID_CHILD _PidlByItem(int i)
Definition: CDefView.cpp:868
DWORD m_grfKeyState
Definition: CDefView.cpp:143
virtual HRESULT STDMETHODCALLTYPE SelectItem(PCUITEMID_CHILD pidlItem, SVSIF uFlags)
Definition: CDefView.cpp:2657
int HitTest(LV_HITTESTINFO *phtInfo)
Definition: rosctrls.h:199
HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site)
Definition: ordinal.c:1404
const DWORD DROPEFFECT_NONE
Definition: oleidl.idl:929
long LONG
Definition: pedump.c:60
#define LVHT_ONITEM
Definition: commctrl.h:2497
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
#define SB_LINEUP
Definition: winuser.h:564
#define WM_HSCROLL
Definition: winuser.h:1733
#define WM_VSCROLL
Definition: winuser.h:1734
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define SB_LINEDOWN
Definition: winuser.h:565
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)
#define IID_NULL_PPV_ARG(Itype, ppType)

Referenced by DragEnter(), and DragOver().

◆ DragEnter()

HRESULT WINAPI CDefView::DragEnter ( IDataObject pDataObj,
DWORD  grfKeyState,
POINTL  pt,
DWORD pdwEffect 
)
virtual

Implements IDropTarget.

Definition at line 3488 of file CDefView.cpp.

3489{
3490 if (*pdwEffect == DROPEFFECT_NONE)
3491 return S_OK;
3492
3493 /* Get a hold on the data object for later calls to DragEnter on the sub-folders */
3494 m_pCurDataObject = pDataObject;
3495
3496 HRESULT hr = drag_notify_subitem(grfKeyState, pt, pdwEffect);
3497 if (SUCCEEDED(hr))
3498 {
3499 POINT ptClient = {pt.x, pt.y};
3500 ScreenToClient(&ptClient);
3501 ImageList_DragEnter(m_hWnd, ptClient.x, ptClient.y);
3502 }
3503
3504 return hr;
3505}
HRESULT drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
Definition: CDefView.cpp:3373
BOOL WINAPI ImageList_DragEnter(HWND hwndLock, INT x, INT y)
Definition: imagelist.c:958

◆ DragLeave()

HRESULT WINAPI CDefView::DragLeave ( void  )
virtual

Implements IDropTarget.

Definition at line 3515 of file CDefView.cpp.

3516{
3518
3519 if (m_pCurDropTarget)
3520 {
3521 m_pCurDropTarget->DragLeave();
3523 }
3524
3525 if (m_pCurDataObject != NULL)
3526 {
3528 }
3529
3530 m_iDragOverItem = 0;
3531
3532 return S_OK;
3533}
BOOL WINAPI ImageList_DragLeave(HWND hwndLock)
Definition: imagelist.c:992

◆ DragOver()

HRESULT WINAPI CDefView::DragOver ( DWORD  grfKeyState,
POINTL  pt,
DWORD pdwEffect 
)
virtual

Implements IDropTarget.

Definition at line 3507 of file CDefView.cpp.

3508{
3509 POINT ptClient = {pt.x, pt.y};
3510 ScreenToClient(&ptClient);
3511 ImageList_DragMove(ptClient.x, ptClient.y);
3512 return drag_notify_subitem(grfKeyState, pt, pdwEffect);
3513}
BOOL WINAPI ImageList_DragMove(INT x, INT y)
Definition: imagelist.c:1070

◆ Draw()

HRESULT WINAPI CDefView::Draw ( DWORD  dwDrawAspect,
LONG  lindex,
void pvAspect,
DVTARGETDEVICE *  ptd,
HDC  hdcTargetDev,
HDC  hdcDraw,
LPCRECTL  lprcBounds,
LPCRECTL  lprcWBounds,
BOOL(STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue)  ,
ULONG_PTR  dwContinue 
)
virtual

Definition at line 3798 of file CDefView.cpp.

3799{
3800 FIXME("Stub: this=%p\n", this);
3801
3802 return E_NOTIMPL;
3803}

◆ Drop()

HRESULT WINAPI CDefView::Drop ( IDataObject pDataObj,
DWORD  grfKeyState,
POINTL  pt,
DWORD pdwEffect 
)
virtual

Implements IDropTarget.

Definition at line 3719 of file CDefView.cpp.

3720{
3723
3724 if ((IsDropOnSource(NULL) == S_OK) &&
3725 (*pdwEffect & DROPEFFECT_MOVE) &&
3727 {
3728 if (m_pCurDropTarget)
3729 {
3730 m_pCurDropTarget->DragLeave();
3732 }
3733
3734 POINT ptDrop = { pt.x, pt.y };
3735 ::ScreenToClient(m_ListView, &ptDrop);
3737 m_ptLastMousePos = ptDrop;
3738
3740 if (m_ListView.GetStyle() & LVS_AUTOARRANGE)
3741 {
3743 }
3744 else
3745 {
3746 POINT ptItem;
3747 INT iItem = -1;
3748 while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3749 {
3750 if (m_ListView.GetItemPosition(iItem, &ptItem))
3751 {
3754 m_ListView.SetItemPosition(iItem, &ptItem);
3755 }
3756 }
3757 }
3759 }
3760 else if (m_pCurDropTarget)
3761 {
3762 m_pCurDropTarget->Drop(pDataObject, grfKeyState, pt, pdwEffect);
3764 }
3765
3767 m_iDragOverItem = 0;
3768 return S_OK;
3769}
POINT m_ptFirstMousePos
Definition: CDefView.cpp:142
void _MoveSelectionOnAutoArrange(POINT pt)
Definition: CDefView.cpp:3659
virtual HRESULT STDMETHODCALLTYPE IsDropOnSource(IDropTarget *drop_target)
Definition: CDefView.cpp:3196
void SetRedraw(BOOL redraw)
Definition: rosctrls.h:27
BOOL SetItemPosition(int nItem, POINT *pPoint)
Definition: rosctrls.h:236
BOOL GetItemPosition(int nItem, POINT *pPoint)
Definition: rosctrls.h:231
VOID WINAPI ImageList_EndDrag(void)
Definition: imagelist.c:1847
const DWORD DROPEFFECT_MOVE
Definition: oleidl.idl:931
#define MK_LBUTTON
Definition: winuser.h:2357

◆ EnableModeless()

HRESULT WINAPI CDefView::EnableModeless ( BOOL  fEnable)
virtual

Implements IShellView.

Definition at line 2533 of file CDefView.cpp.

2534{
2535 FIXME("(%p) stub\n", this);
2536
2537 return E_NOTIMPL;
2538}

◆ Exec()

HRESULT WINAPI CDefView::Exec ( const GUID pguidCmdGroup,
DWORD  nCmdID,
DWORD  nCmdexecopt,
VARIANT pvaIn,
VARIANT pvaOut 
)
virtual

Implements IOleCommandTarget.

Definition at line 3310 of file CDefView.cpp.

3311{
3312 FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08x Opt:0x%08x %p %p)\n",
3313 this, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
3314
3315 if (!pguidCmdGroup)
3316 return OLECMDERR_E_UNKNOWNGROUP;
3317
3318 if (IsEqualCLSID(*pguidCmdGroup, m_Category))
3319 {
3320 if (nCmdID == FCIDM_SHVIEW_AUTOARRANGE)
3321 {
3322 if (V_VT(pvaIn) != VT_INT_PTR)
3323 return OLECMDERR_E_NOTSUPPORTED;
3324
3326 params.cbSize = sizeof(params);
3327 params.rcExclude = *(RECT*) V_INTREF(pvaIn);
3328
3329 if (m_hMenuViewModes)
3330 {
3331 /* Duplicate all but the last two items of the view modes menu */
3332 HMENU hmenuViewPopup = CreatePopupMenu();
3333 Shell_MergeMenus(hmenuViewPopup, m_hMenuViewModes, 0, 0, 0xFFFF, 0);
3334 DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3335 DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3336 CheckViewMode(hmenuViewPopup);
3337 TrackPopupMenuEx(hmenuViewPopup, TPM_LEFTALIGN | TPM_TOPALIGN, params.rcExclude.left, params.rcExclude.bottom, m_hWndParent, &params);
3338 ::DestroyMenu(hmenuViewPopup);
3339 }
3340
3341 // pvaOut is VT_I4 with value 0x403 (cmd id of the new mode maybe?)
3342 V_VT(pvaOut) = VT_I4;
3343 V_I4(pvaOut) = 0x403;
3344 }
3345 }
3346
3347 if (IsEqualIID(*pguidCmdGroup, CGID_Explorer) &&
3348 (nCmdID == 0x29) &&
3349 (nCmdexecopt == 4) && pvaOut)
3350 return S_OK;
3351
3352 if (IsEqualIID(*pguidCmdGroup, CGID_ShellDocView) &&
3353 (nCmdID == 9) &&
3354 (nCmdexecopt == 0))
3355 return 1;
3356
3357 return OLECMDERR_E_UNKNOWNGROUP;
3358}
HRESULT CheckViewMode(HMENU hmenuView)
Definition: CDefView.cpp:1452
@ VT_I4
Definition: compat.h:2298
@ VT_INT_PTR
Definition: compat.h:2327
GLenum const GLfloat * params
Definition: glext.h:5645
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
#define V_VT(A)
Definition: oleauto.h:211
#define V_I4(A)
Definition: oleauto.h:247
#define V_INTREF(A)
Definition: oleauto.h:252
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:856
#define FCIDM_SHVIEW_AUTOARRANGE
Definition: shresdef.h:818
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:846
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)
#define TPM_TOPALIGN
Definition: winuser.h:2373
#define TPM_LEFTALIGN
Definition: winuser.h:2367
#define MF_BYPOSITION
Definition: winuser.h:203

◆ fill_list()

INT CALLBACK CDefView::fill_list ( LPVOID  ptr,
LPVOID  arg 
)
static

Definition at line 1006 of file CDefView.cpp.

1007{
1008 PITEMID_CHILD pidl = static_cast<PITEMID_CHILD>(ptr);
1009 CDefView *pThis = static_cast<CDefView *>(arg);
1010
1011 /* in a commdlg This works as a filemask*/
1012 if (pThis->IncludeObject(pidl) == S_OK)
1013 pThis->LV_AddItem(pidl);
1014
1015 SHFree(pidl);
1016 return TRUE;
1017}
HRESULT IncludeObject(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:476
static PVOID ptr
Definition: dispmode.c:27
void * arg
Definition: msvc.h:10

Referenced by FillList().

◆ FillArrangeAsMenu()

HRESULT CDefView::FillArrangeAsMenu ( HMENU  hmenuArrange)

Definition at line 1412 of file CDefView.cpp.

1413{
1414 /* We only need to fill this once */
1415 if (GetMenuItemID(hmenuArrange, 0) == FCIDM_SHVIEW_AUTOARRANGE)
1416 {
1417 Shell_MergeMenus(hmenuArrange, m_hMenuArrangeModes, 0, 0, 0xFFFF,0);
1418 }
1419
1420 /* Also check the menu item according to which we sort */
1421 CheckMenuRadioItem(hmenuArrange,
1422 0x30,
1423 0x100,
1424 m_sortInfo.nHeaderID + 0x30,
1425 MF_BYCOMMAND);
1426
1428 {
1431 }
1432 else
1433 {
1436
1437 if (GetAutoArrange() == S_OK)
1439 else
1441
1442 if (_GetSnapToGrid() == S_OK)
1444 else
1446 }
1447
1448
1449 return S_OK;
1450}
virtual HRESULT STDMETHODCALLTYPE GetAutoArrange()
Definition: CDefView.cpp:2903
HRESULT _GetSnapToGrid()
Definition: CDefView.cpp:2908
#define FCIDM_SHVIEW_ALIGNTOGRID
Definition: shresdef.h:820
#define MF_CHECKED
Definition: winuser.h:132
UINT WINAPI GetMenuItemID(_In_ HMENU, _In_ int)
#define MF_UNCHECKED
Definition: winuser.h:204
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MF_GRAYED
Definition: winuser.h:129

Referenced by OnInitMenuPopup().

◆ FillEditMenu()

HRESULT CDefView::FillEditMenu ( )

Definition at line 1379 of file CDefView.cpp.

1380{
1382 if (!hEditMenu)
1383 return E_FAIL;
1384
1385 HMENU hmenuContents = ::LoadMenuW(shell32_hInstance, L"MENU_003");
1386 if (!hmenuContents)
1387 return E_FAIL;
1388
1389 Shell_MergeMenus(hEditMenu, hmenuContents, 0, 0, 0xFFFF, 0);
1390
1391 ::DestroyMenu(hmenuContents);
1392
1393 return S_OK;
1394}
HMENU GetSubmenuByID(HMENU hmenu, UINT id)
Definition: CDefView.cpp:1317
#define FCIDM_MENU_EDIT
Definition: shlobj.h:558
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)

Referenced by DoActivate().

◆ FillFileMenu()

HRESULT CDefView::FillFileMenu ( )

Definition at line 1337 of file CDefView.cpp.

1338{
1340 if (!hFileMenu)
1341 return E_FAIL;
1342
1343 /* Cleanup the items added previously */
1344 for (int i = GetMenuItemCount(hFileMenu) - 1; i >= 0; i--)
1345 {
1346 UINT id = GetMenuItemID(hFileMenu, i);
1347 if (id < FCIDM_BROWSERFIRST || id > FCIDM_BROWSERLAST)
1348 DeleteMenu(hFileMenu, i, MF_BYPOSITION);
1349 }
1350
1352
1353 /* In case we still have this left over, clean it up! */
1354 if (m_pFileMenu)
1355 {
1358 }
1359 /* Store the context menu in m_pFileMenu and keep it in order to invoke the selected command later on */
1362 return hr;
1363
1365
1366 hr = m_pFileMenu->QueryContextMenu(hmenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, 0);
1368 return hr;
1369
1370 // TODO: filter or something
1371
1372 Shell_MergeMenus(hFileMenu, hmenu, 0, 0, 0xFFFF, MM_ADDSEPARATOR | MM_SUBMENUSHAVEIDS);
1373
1375
1376 return S_OK;
1377}
virtual HRESULT STDMETHODCALLTYPE GetItemObject(UINT uItem, REFIID riid, void **ppv)
Definition: CDefView.cpp:2707
CComPtr< IContextMenu > m_pFileMenu
Definition: CDefView.cpp:146
UINT GetSelectedCount()
Definition: rosctrls.h:136
@ SVGIO_SELECTION
Definition: shobjidl.idl:733
@ SVGIO_BACKGROUND
Definition: shobjidl.idl:732
#define FAILED_UNEXPECTEDLY(hr)
Definition: shellutils.h:82
#define FCIDM_BROWSERLAST
Definition: shlobj.h:550
#define MM_SUBMENUSHAVEIDS
Definition: shlobj.h:2381
#define FCIDM_MENU_FILE
Definition: shlobj.h:557
#define FCIDM_SHVIEWFIRST
Definition: shlobj.h:507
#define MM_ADDSEPARATOR
Definition: shlobj.h:2380
#define FCIDM_SHVIEWLAST
Definition: shlobj.h:541
static HMENU hmenu
Definition: win.c:66

Referenced by OnInitMenuPopup().

◆ FillList()

HRESULT CDefView::FillList ( )

Definition at line 1019 of file CDefView.cpp.

1020{
1021 CComPtr<IEnumIDList> pEnumIDList;
1022 PITEMID_CHILD pidl;
1023 DWORD dwFetched;
1024 HRESULT hRes;
1025 HDPA hdpa;
1026 DWORD dFlags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS;
1027 DWORD dwValue, cbValue;
1028
1029 TRACE("%p\n", this);
1030
1031 /* determine if there is a setting to show all the hidden files/folders */
1032 dwValue = 1;
1033 cbValue = sizeof(dwValue);
1035 L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
1036 L"Hidden", NULL, &dwValue, &cbValue);
1037 if (dwValue == 1)
1038 {
1039 dFlags |= SHCONTF_INCLUDEHIDDEN;
1040 m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
1041 }
1042
1043 dwValue = 0;
1044 cbValue = sizeof(dwValue);
1046 L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
1047 L"ShowSuperHidden", NULL, &dwValue, &cbValue);
1048 if (dwValue)
1049 {
1050 dFlags |= SHCONTF_INCLUDESUPERHIDDEN;
1051 m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
1052 }
1053
1054 /* get the itemlist from the shfolder */
1055 hRes = m_pSFParent->EnumObjects(m_hWnd, dFlags, &pEnumIDList);
1056 if (hRes != S_OK)
1057 {
1058 if (hRes == S_FALSE)
1059 return(NOERROR);
1060 return(hRes);
1061 }
1062
1063 /* create a pointer array */
1064 hdpa = DPA_Create(16);
1065 if (!hdpa)
1066 {
1067 return(E_OUTOFMEMORY);
1068 }
1069
1070 /* copy the items into the array*/
1071 while((S_OK == pEnumIDList->Next(1, &pidl, &dwFetched)) && dwFetched)
1072 {
1073 if (DPA_InsertPtr(hdpa, 0x7fff, pidl) == -1)
1074 {
1075 SHFree(pidl);
1076 }
1077 }
1078
1079 /*turn the listview's redrawing off*/
1081
1082 DPA_DestroyCallback( hdpa, fill_list, this);
1083
1084 /* sort the array */
1085 if (m_pSF2Parent)
1086 {
1087 m_pSF2Parent->GetDefaultColumn(NULL, (ULONG*)&m_sortInfo.nHeaderID, NULL);
1088 }
1089 else
1090 {
1091 FIXME("no m_pSF2Parent\n");
1092 }
1094 _Sort();
1095
1097 {
1100 }
1101
1102 // load custom background image and custom text color
1105
1106 /*turn the listview's redrawing back on and force it to draw*/
1108
1110
1112 {
1113 // redraw now
1114 m_ListView.InvalidateRect(NULL, TRUE);
1115 }
1116
1118
1119 return S_OK;
1120}
#define SFVM_GET_CUSTOMVIEWINFO
#define SFVM_LISTREFRESHED
static INT CALLBACK fill_list(LPVOID ptr, LPVOID arg)
Definition: CDefView.cpp:1006
void UpdateListColors()
Definition: CDefView.cpp:704
BOOL _Sort()
Definition: CDefView.cpp:834
CComPtr< IShellFolder2 > m_pSF2Parent
Definition: CDefView.cpp:112
void WINAPI DPA_DestroyCallback(HDPA hdpa, PFNDPAENUMCALLBACK enumProc, LPVOID lParam)
Definition: dpa.c:1003
HDPA WINAPI DPA_Create(INT nGrow)
Definition: dpa.c:950
INT WINAPI DPA_InsertPtr(HDPA hdpa, INT i, LPVOID p)
Definition: dpa.c:591
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition: reg.c:1236
#define LVM_SETCALLBACKMASK
Definition: commctrl.h:2419
#define LVIS_CUT
Definition: commctrl.h:2320
Definition: dpa.c:49
uint32_t ULONG
Definition: typedefs.h:59
#define NOERROR
Definition: winerror.h:2354
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by OnCreate(), and Refresh().

◆ FillViewMenu()

HRESULT CDefView::FillViewMenu ( )

Definition at line 1396 of file CDefView.cpp.

1397{
1399 if (!hViewMenu)
1400 return E_FAIL;
1401
1403 if (!m_hMenuViewModes)
1404 return E_FAIL;
1405
1408
1409 return S_OK;
1410}
DWORD WINAPI SHMenuIndexFromID(HMENU hMenu, UINT uID)
Definition: ordinal.c:4418
#define FCIDM_MENU_VIEW_SEP_OPTIONS
Definition: shlobj.h:560
#define MM_DONTREMOVESEPS
Definition: shlobj.h:2382
#define FCIDM_MENU_VIEW
Definition: shlobj.h:559

Referenced by DoActivate().

◆ Freeze()

HRESULT WINAPI CDefView::Freeze ( DWORD  dwDrawAspect,
LONG  lindex,
void pvAspect,
DWORD pdwFreeze 
)
virtual

Implements IViewObject.

Definition at line 3812 of file CDefView.cpp.

3813{
3814 FIXME("Stub: this=%p\n", this);
3815
3816 return E_NOTIMPL;
3817}

◆ GetAdvise()

HRESULT WINAPI CDefView::GetAdvise ( DWORD pAspects,
DWORD pAdvf,
IAdviseSink **  ppAdvSink 
)
virtual

Implements IViewObject.

Definition at line 3838 of file CDefView.cpp.

3839{
3840 TRACE("this=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n", this, pAspects, pAdvf, ppAdvSink);
3841
3842 if (ppAdvSink)
3843 {
3844 *ppAdvSink = m_pAdvSink;
3845 m_pAdvSink.p->AddRef();
3846 }
3847
3848 if (pAspects)
3849 *pAspects = m_dwAspects;
3850
3851 if (pAdvf)
3852 *pAdvf = m_dwAdvf;
3853
3854 return S_OK;
3855}
CComPtr< IAdviseSink > m_pAdvSink
Definition: CDefView.cpp:134
ULONG AddRef()

◆ GetArrangeParam()

HRESULT STDMETHODCALLTYPE CDefView::GetArrangeParam ( LPARAM sort)
virtual

Definition at line 3082 of file CDefView.cpp.

3083{
3084 FIXME("(%p)->(%p) stub\n", this, sort);
3085 return E_NOTIMPL;
3086}
_STLP_MOVE_TO_STD_NAMESPACE void sort(_RandomAccessIter __first, _RandomAccessIter __last)
Definition: _algo.c:993

◆ GetAutoArrange()

HRESULT STDMETHODCALLTYPE CDefView::GetAutoArrange ( )
virtual

Implements IFolderView.

Definition at line 2903 of file CDefView.cpp.

2904{
2905 return ((m_ListView.GetStyle() & LVS_AUTOARRANGE) ? S_OK : S_FALSE);
2906}

Referenced by FillArrangeAsMenu(), and OnCommand().

◆ GetColorSet()

HRESULT WINAPI CDefView::GetColorSet ( DWORD  dwDrawAspect,
LONG  lindex,
void pvAspect,
DVTARGETDEVICE *  ptd,
HDC  hicTargetDev,
LOGPALETTE **  ppColorSet 
)
virtual

Implements IViewObject.

Definition at line 3805 of file CDefView.cpp.

3806{
3807 FIXME("Stub: this=%p\n", this);
3808
3809 return E_NOTIMPL;
3810}

◆ GetCurrentInfo()

HRESULT WINAPI CDefView::GetCurrentInfo ( LPFOLDERSETTINGS  pfs)
virtual

Implements IShellView.

Definition at line 2631 of file CDefView.cpp.

2632{
2633 TRACE("(%p)->(%p) vmode=%x flags=%x\n", this, lpfs,
2635
2636 if (!lpfs)
2637 return E_INVALIDARG;
2638
2639 *lpfs = m_FolderSettings;
2640 return S_OK;
2641}
#define E_INVALIDARG
Definition: ddrawi.h:101

◆ GetCurrentViewMode()

HRESULT STDMETHODCALLTYPE CDefView::GetCurrentViewMode ( UINT pViewMode)
virtual

Implements IFolderView.

Definition at line 2758 of file CDefView.cpp.

2759{
2760 TRACE("(%p)->(%p), stub\n", this, pViewMode);
2761
2762 if (!pViewMode)
2763 return E_INVALIDARG;
2764
2765 *pViewMode = m_FolderSettings.ViewMode;
2766 return S_OK;
2767}

◆ GetDefaultSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetDefaultSpacing ( POINT ppt)
virtual

Implements IFolderView.

Definition at line 2898 of file CDefView.cpp.

2899{
2900 return E_NOTIMPL;
2901}

◆ GetDragPoint()

HRESULT STDMETHODCALLTYPE CDefView::GetDragPoint ( POINT pt)
virtual

Definition at line 3207 of file CDefView.cpp.

3208{
3209 if (!pt)
3210 return E_INVALIDARG;
3211
3213 return S_OK;
3214}

◆ GetDropPoint()

HRESULT STDMETHODCALLTYPE CDefView::GetDropPoint ( POINT pt)
virtual

Definition at line 3216 of file CDefView.cpp.

3217{
3218 FIXME("(%p)->(%p) stub\n", this, pt);
3219 return E_NOTIMPL;
3220}

◆ GetFocusedItem()

HRESULT STDMETHODCALLTYPE CDefView::GetFocusedItem ( int piItem)
virtual

Implements IFolderView.

Definition at line 2860 of file CDefView.cpp.

2861{
2862 TRACE("(%p)->(%p)\n", this, piItem);
2863
2864 *piItem = m_ListView.GetNextItem(-1, LVNI_FOCUSED);
2865
2866 return S_OK;
2867}
#define LVNI_FOCUSED
Definition: commctrl.h:2423

◆ GetFolder()

HRESULT STDMETHODCALLTYPE CDefView::GetFolder ( REFIID  riid,
void **  ppv 
)
virtual

Implements IFolderView.

Definition at line 2813 of file CDefView.cpp.

2814{
2815 if (m_pSFParent == NULL)
2816 return E_FAIL;
2817
2818 return m_pSFParent->QueryInterface(riid, ppv);
2819}
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39

◆ GetItemObject()

HRESULT WINAPI CDefView::GetItemObject ( UINT  uItem,
REFIID  riid,
void **  ppv 
)
virtual

Implements IShellView.

Definition at line 2707 of file CDefView.cpp.

2708{
2710
2711 TRACE("(%p)->(uItem=0x%08x,\n\tIID=%s, ppv=%p)\n", this, uItem, debugstr_guid(&riid), ppvOut);
2712
2713 if (!ppvOut)
2714 return E_INVALIDARG;
2715
2716 *ppvOut = NULL;
2717
2718 switch (uItem)
2719 {
2720 case SVGIO_BACKGROUND:
2721 if (IsEqualIID(riid, IID_IContextMenu))
2722 {
2725 return hr;
2726
2727 IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2728 }
2729 else if (IsEqualIID(riid, IID_IDispatch))
2730 {
2732 {
2735 return hr;
2736 }
2737 hr = m_pShellFolderViewDual->QueryInterface(riid, ppvOut);
2738 }
2739 break;
2740
2741 case SVGIO_SELECTION:
2742 GetSelections();
2743 hr = m_pSFParent->GetUIObjectOf(m_hWnd, m_cidl, m_apidl, riid, 0, ppvOut);
2745 return hr;
2746
2747 if (IsEqualIID(riid, IID_IContextMenu))
2748 IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2749
2750 break;
2751 }
2752
2753 TRACE("-- (%p)->(interface=%p)\n", this, *ppvOut);
2754
2755 return hr;
2756}
HRESULT CDefViewBckgrndMenu_CreateInstance(IShellFolder *psf, REFIID riid, void **ppv)
HRESULT WINAPI CDefViewDual_Constructor(REFIID riid, LPVOID *ppvOut)
CComPtr< IShellFolderViewDual > m_pShellFolderViewDual
Definition: CDefView.cpp:116
UINT GetSelections()
Definition: CDefView.cpp:1473
const GUID IID_IDispatch
#define E_NOINTERFACE
Definition: winerror.h:2364

Referenced by FillFileMenu(), OnContextMenu(), OnExplorerCommand(), and OpenSelectedItems().

◆ GetItemPosition()

HRESULT STDMETHODCALLTYPE CDefView::GetItemPosition ( PCUITEMID_CHILD  pidl,
POINT ppt 
)
virtual

Implements IFolderView.

Definition at line 2869 of file CDefView.cpp.

2870{
2871 int lvIndex = LV_FindItemByPidl(pidl);
2872 if (lvIndex == -1 || ppt == NULL)
2873 return E_INVALIDARG;
2874
2875 m_ListView.GetItemPosition(lvIndex, ppt);
2876 return S_OK;
2877}
int LV_FindItemByPidl(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:885

◆ GetItemSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetItemSpacing ( ITEMSPACING spacing)
virtual

Definition at line 3252 of file CDefView.cpp.

3253{
3254 FIXME("(%p)->(%p) stub\n", this, spacing);
3255 return E_NOTIMPL;
3256}

◆ GetObject()

HRESULT STDMETHODCALLTYPE CDefView::GetObject ( PITEMID_CHILD pidl,
UINT  item 
)
virtual

Definition at line 3108 of file CDefView.cpp.

3109{
3110 TRACE("(%p)->(%p %d)\n", this, pidl, item);
3111 return Item(item, pidl);
3112}
_In_ WDFCOLLECTION _In_ WDFOBJECT Item

◆ GetObjectCount()

HRESULT STDMETHODCALLTYPE CDefView::GetObjectCount ( UINT count)
virtual

Definition at line 3136 of file CDefView.cpp.

3137{
3138 TRACE("(%p)->(%p)\n", this, count);
3140 return S_OK;
3141}
GLuint GLuint GLsizei count
Definition: gl.h:1545

◆ GetSelectedCount()

HRESULT STDMETHODCALLTYPE CDefView::GetSelectedCount ( UINT count)
virtual

Definition at line 3169 of file CDefView.cpp.

3170{
3171 FIXME("(%p)->(%p) stub\n", this, count);
3172 return E_NOTIMPL;
3173}

◆ GetSelectedObjects()

HRESULT STDMETHODCALLTYPE CDefView::GetSelectedObjects ( PCUITEMID_CHILD **  pidl,
UINT items 
)
virtual

Definition at line 3175 of file CDefView.cpp.

3176{
3177 TRACE("(%p)->(%p %p)\n", this, pidl, items);
3178
3179 *items = GetSelections();
3180
3181 if (*items)
3182 {
3183 *pidl = static_cast<PCUITEMID_CHILD *>(LocalAlloc(0, *items * sizeof(PCUITEMID_CHILD)));
3184 if (!*pidl)
3185 {
3186 return E_OUTOFMEMORY;
3187 }
3188
3189 /* it's documented that caller shouldn't PIDLs, only array itself */
3190 memcpy(*pidl, m_apidl, *items * sizeof(PCUITEMID_CHILD));
3191 }
3192
3193 return S_OK;
3194}
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1390
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static TCHAR * items[]
Definition: page1.c:45

◆ GetSelectionMarkedItem()

HRESULT STDMETHODCALLTYPE CDefView::GetSelectionMarkedItem ( int piItem)
virtual

Implements IFolderView.

Definition at line 2851 of file CDefView.cpp.

2852{
2853 TRACE("(%p)->(%p)\n", this, piItem);
2854
2855 *piItem = m_ListView.GetSelectionMark();
2856
2857 return S_OK;
2858}
int GetSelectionMark()
Definition: rosctrls.h:156

◆ GetSelections()

UINT CDefView::GetSelections ( )

Definition at line 1473 of file CDefView.cpp.

1474{
1475 SHFree(m_apidl);
1476
1478 m_apidl = static_cast<PCUITEMID_CHILD*>(SHAlloc(m_cidl * sizeof(PCUITEMID_CHILD)));
1479 if (!m_apidl)
1480 {
1481 m_cidl = 0;
1482 return 0;
1483 }
1484
1485 TRACE("-- Items selected =%u\n", m_cidl);
1486
1487 UINT i = 0;
1488 int lvIndex = -1;
1489 while ((lvIndex = m_ListView.GetNextItem(lvIndex, LVNI_SELECTED)) > -1)
1490 {
1491 m_apidl[i] = _PidlByItem(lvIndex);
1492 i++;
1493 if (i == m_cidl)
1494 break;
1495 TRACE("-- selected Item found\n");
1496 }
1497
1498 return m_cidl;
1499}
LPVOID WINAPI SHAlloc(SIZE_T len)
Definition: shellole.c:304

Referenced by GetItemObject(), GetSelectedObjects(), OnInitMenuPopup(), and OnNotify().

◆ GetSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetSpacing ( POINT ppt)
virtual

Implements IFolderView.

Definition at line 2879 of file CDefView.cpp.

2880{
2881 TRACE("(%p)->(%p)\n", this, ppt);
2882
2883 if (!m_ListView)
2884 return S_FALSE;
2885
2886 if (ppt)
2887 {
2888 SIZE spacing;
2889 m_ListView.GetItemSpacing(spacing);
2890
2891 ppt->x = spacing.cx;
2892 ppt->y = spacing.cy;
2893 }
2894
2895 return S_OK;
2896}
void GetItemSpacing(SIZE &spacing, BOOL bSmallIconView=FALSE)
Definition: rosctrls.h:166
LONG cx
Definition: windef.h:334
LONG cy
Definition: windef.h:335

◆ GetView()

HRESULT STDMETHODCALLTYPE CDefView::GetView ( SHELLVIEWID view_guid,
ULONG  view_type 
)
virtual

Implements IShellView2.

Definition at line 2968 of file CDefView.cpp.

2969{
2970 FIXME("(%p)->(%p, %lu) stub\n", this, view_guid, view_type);
2971 return E_NOTIMPL;
2972}
view_type

◆ GetWindow()

HRESULT WINAPI CDefView::GetWindow ( HWND lphwnd)
virtual

Implements IOleWindow.

Definition at line 2495 of file CDefView.cpp.

2496{
2497 TRACE("(%p)\n", this);
2498
2499 *phWnd = m_hWnd;
2500
2501 return S_OK;
2502}

◆ GetWindowProc()

virtual WNDPROC CDefView::GetWindowProc ( )
inlinevirtual

Reimplemented from ATL::CWindowImplBaseT< TBase, TWinTraits >.

Definition at line 339 of file CDefView.cpp.

340 {
341 return WindowProc;
342 }
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:344

◆ GetWndClassInfo()

static ATL::CWndClassInfo & CDefView::GetWndClassInfo ( )
inlinestatic

Definition at line 326 of file CDefView.cpp.

327 {
328 static ATL::CWndClassInfo wc =
329 {
331 0, 0, NULL, NULL,
332 LoadCursor(NULL, IDC_ARROW), NULL, NULL, L"SHELLDLL_DefView", NULL
333 },
334 NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
335 };
336 return wc;
337 }
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: atlwin.h:1613
#define _T(x)
Definition: vfdio.h:22
#define IDC_ARROW
Definition: winuser.h:682
#define LoadCursor
Definition: winuser.h:5802
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5709
#define CS_PARENTDC
Definition: winuser.h:651

◆ GiveFeedback()

HRESULT WINAPI CDefView::GiveFeedback ( DWORD  dwEffect)
virtual

Implements IDropSource.

Definition at line 3787 of file CDefView.cpp.

3788{
3789 TRACE("(%p)\n", this);
3790
3792}
#define DRAGDROP_S_USEDEFAULTCURSORS
Definition: winerror.h:2648

◆ HandleRename()

HRESULT STDMETHODCALLTYPE CDefView::HandleRename ( LPCITEMIDLIST  new_pidl)
virtual

Definition at line 3061 of file CDefView.cpp.

3062{
3063 FIXME("(%p)->(%p) stub\n", this, new_pidl);
3064 return E_NOTIMPL;
3065}

◆ IncludeObject()

HRESULT CDefView::IncludeObject ( PCUITEMID_CHILD  pidl)

Definition at line 476 of file CDefView.cpp.

477{
478 HRESULT ret = S_OK;
479
480 if (m_pCommDlgBrowser.p != NULL)
481 {
482 TRACE("ICommDlgBrowser::IncludeObject pidl=%p\n", pidl);
483 ret = m_pCommDlgBrowser->IncludeObject(this, pidl);
484 TRACE("-- returns 0x%08x\n", ret);
485 }
486
487 return ret;
488}
int ret

Referenced by fill_list().

◆ Initialize()

HRESULT WINAPI CDefView::Initialize ( IShellFolder shellFolder)

Definition at line 464 of file CDefView.cpp.

465{
466 m_pSFParent = shellFolder;
468
469 return S_OK;
470}
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)

◆ InitList()

BOOL CDefView::InitList ( )

Definition at line 765 of file CDefView.cpp.

766{
768 WCHAR szTemp[50];
769 HIMAGELIST big_icons, small_icons;
770
771 TRACE("%p\n", this);
772
774
776
777 if (m_pSF2Parent)
778 {
779 for (int i = 0; 1; i++)
780 {
781 if (FAILED(m_pSF2Parent->GetDetailsOf(NULL, i, &sd)))
782 break;
783 StrRetToStrNW( szTemp, 50, &sd.str, NULL);
784 m_ListView.InsertColumn(i, szTemp, sd.fmt, sd.cxChar * 8);
785
786 InsertMenuW(m_hMenuArrangeModes, -1, MF_STRING, 0x30 + i, szTemp);
787 }
788
790 }
791 else
792 {
793 FIXME("no m_pSF2Parent\n");
794 }
795
796 Shell_GetImageLists(&big_icons, &small_icons);
798 m_ListView.SetImageList(small_icons, LVSIL_SMALL);
799
800 return TRUE;
801}
BOOL DeleteAllItems()
Definition: rosctrls.h:126
HIMAGELIST SetImageList(HIMAGELIST himl, int iImageList)
Definition: rosctrls.h:91
int InsertColumn(int iCol, LV_COLUMN *pcol)
Definition: rosctrls.h:52
BOOL WINAPI Shell_GetImageLists(HIMAGELIST *lpBigList, HIMAGELIST *lpSmallList)
Definition: iconcache.cpp:700
static const WCHAR sd[]
Definition: suminfo.c:286
#define LVSIL_SMALL
Definition: commctrl.h:2299
#define LVSIL_NORMAL
Definition: commctrl.h:2298
BOOL WINAPI StrRetToStrNW(LPWSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl)
Definition: shellstring.c:85
BOOL WINAPI InsertMenuW(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT_PTR, _In_opt_ LPCWSTR)
#define MF_STRING
Definition: winuser.h:138
#define MF_SEPARATOR
Definition: winuser.h:137
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by OnCreate().

◆ InvokeContextMenuCommand()

HRESULT CDefView::InvokeContextMenuCommand ( CComPtr< IContextMenu > &  pCM,
UINT  uCommand,
POINT pt 
)

Definition at line 1501 of file CDefView.cpp.

1502{
1503 CMINVOKECOMMANDINFOEX cmi;
1504
1505 ZeroMemory(&cmi, sizeof(cmi));
1506 cmi.cbSize = sizeof(cmi);
1507 cmi.lpVerb = MAKEINTRESOURCEA(uCommand);
1508 cmi.hwnd = m_hWnd;
1509
1510 if (GetKeyState(VK_SHIFT) & 0x8000)
1511 cmi.fMask |= CMIC_MASK_SHIFT_DOWN;
1512
1513 if (GetKeyState(VK_CONTROL) & 0x8000)
1514 cmi.fMask |= CMIC_MASK_CONTROL_DOWN;
1515
1516 if (pt)
1517 {
1518 cmi.fMask |= CMIC_MASK_PTINVOKE;
1519 cmi.ptInvoke = *pt;
1520 }
1521
1522 HRESULT hr = pCM->InvokeCommand((LPCMINVOKECOMMANDINFO)&cmi);
1523 // Most of our callers will do this, but in case they don't do that (File menu!)
1524 IUnknown_SetSite(pCM, NULL);
1525 pCM.Release();
1526
1528 return hr;
1529
1530 return S_OK;
1531}
#define VK_CONTROL
Definition: winuser.h:2193
#define MAKEINTRESOURCEA(i)
Definition: winuser.h:581
#define VK_SHIFT
Definition: winuser.h:2192
SHORT WINAPI GetKeyState(_In_ int)

Referenced by OnCommand(), OnContextMenu(), OnExplorerCommand(), and OpenSelectedItems().

◆ IsBkDropTarget()

HRESULT STDMETHODCALLTYPE CDefView::IsBkDropTarget ( IDropTarget drop_target)
virtual

Definition at line 3234 of file CDefView.cpp.

3235{
3236 FIXME("(%p)->(%p) stub\n", this, drop_target);
3237 return E_NOTIMPL;
3238}

◆ IsDropOnSource()

HRESULT STDMETHODCALLTYPE CDefView::IsDropOnSource ( IDropTarget drop_target)
virtual

Definition at line 3196 of file CDefView.cpp.

3197{
3198 if ((m_iDragOverItem == -1 || m_pCurDropTarget == NULL) &&
3200 {
3201 return S_OK;
3202 }
3203
3204 return S_FALSE;
3205}

Referenced by Drop().

◆ Item()

HRESULT STDMETHODCALLTYPE CDefView::Item ( int  iItemIndex,
PITEMID_CHILD ppidl 
)
virtual

Implements IFolderView.

Definition at line 2821 of file CDefView.cpp.

2822{
2823 PCUITEMID_CHILD pidl = _PidlByItem(iItemIndex);
2824 if (pidl)
2825 {
2826 *ppidl = ILClone(pidl);
2827 return S_OK;
2828 }
2829
2830 *ppidl = 0;
2831 return E_INVALIDARG;
2832}
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:228

◆ ItemCount()

HRESULT STDMETHODCALLTYPE CDefView::ItemCount ( UINT  uFlags,
int pcItems 
)
virtual

Implements IFolderView.

Definition at line 2834 of file CDefView.cpp.

2835{
2836 TRACE("(%p)->(%u %p)\n", this, uFlags, pcItems);
2837
2838 if (uFlags != SVGIO_ALLVIEW)
2839 FIXME("some flags unsupported, %x\n", uFlags & ~SVGIO_ALLVIEW);
2840
2842
2843 return S_OK;
2844}
UINT uFlags
Definition: api.c:59
static int int const SCRIPT_CONTROL const SCRIPT_STATE SCRIPT_ITEM ULONG int * pcItems
Definition: usp10.c:62

◆ Items()

HRESULT STDMETHODCALLTYPE CDefView::Items ( UINT  uFlags,
REFIID  riid,
void **  ppv 
)
virtual

Implements IFolderView.

Definition at line 2846 of file CDefView.cpp.

2847{
2848 return E_NOTIMPL;
2849}

◆ ListViewCompareItems()

INT CALLBACK CDefView::ListViewCompareItems ( LPARAM  lParam1,
LPARAM  lParam2,
LPARAM  lpData 
)
static

Definition at line 818 of file CDefView.cpp.

819{
820 PCUIDLIST_RELATIVE pidl1 = reinterpret_cast<PCUIDLIST_RELATIVE>(lParam1);
821 PCUIDLIST_RELATIVE pidl2 = reinterpret_cast<PCUIDLIST_RELATIVE>(lParam2);
822 CDefView *pThis = reinterpret_cast<CDefView*>(lpData);
823
824 HRESULT hres = pThis->m_pSFParent->CompareIDs(pThis->m_sortInfo.nHeaderID, pidl1, pidl2);
826 return 0;
827
828 SHORT nDiff = HRESULT_CODE(hres);
829 if (!pThis->m_sortInfo.bIsAscending)
830 nDiff = -nDiff;
831 return nDiff;
832}
HRESULT hres
Definition: protocol.c:465
short SHORT
Definition: pedump.c:59
const ITEMIDLIST_RELATIVE UNALIGNED * PCUIDLIST_RELATIVE
Definition: shtypes.idl:57
#define HRESULT_CODE(hr)
Definition: winerror.h:76

Referenced by _Sort().

◆ LV_AddItem()

int CDefView::LV_AddItem ( PCUITEMID_CHILD  pidl)

Definition at line 901 of file CDefView.cpp.

902{
903 LVITEMW lvItem;
904
905 TRACE("(%p)(pidl=%p)\n", this, pidl);
906
908 return -1;
909
910 lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM; /*set the mask*/
911 lvItem.iItem = m_ListView.GetItemCount(); /*add the item to the end of the list*/
912 lvItem.iSubItem = 0;
913 lvItem.lParam = reinterpret_cast<LPARAM>(ILClone(pidl)); /*set the item's data*/
914 lvItem.pszText = LPSTR_TEXTCALLBACKW; /*get text on a callback basis*/
915 lvItem.iImage = I_IMAGECALLBACK; /*get the image on a callback basis*/
916 lvItem.stateMask = LVIS_CUT;
917
918 return m_ListView.InsertItem(&lvItem);
919}
#define SFVM_ADDINGOBJECT
int InsertItem(const LV_ITEM *pitem)
Definition: rosctrls.h:96
#define I_IMAGECALLBACK
Definition: commctrl.h:2385
#define LPSTR_TEXTCALLBACKW
Definition: commctrl.h:2380
#define LVIF_PARAM
Definition: commctrl.h:2311
#define LVIF_TEXT
Definition: commctrl.h:2309
#define LVIF_IMAGE
Definition: commctrl.h:2310
LPWSTR pszText
Definition: commctrl.h:2365
int iSubItem
Definition: commctrl.h:2362
UINT mask
Definition: commctrl.h:2360
LPARAM lParam
Definition: commctrl.h:2368
UINT stateMask
Definition: commctrl.h:2364
int iImage
Definition: commctrl.h:2367

Referenced by AddObject(), fill_list(), and OnChangeNotify().

◆ LV_DeleteItem()

BOOLEAN CDefView::LV_DeleteItem ( PCUITEMID_CHILD  pidl)

Definition at line 924 of file CDefView.cpp.

925{
926 int nIndex;
927
928 TRACE("(%p)(pidl=%p)\n", this, pidl);
929
930 nIndex = LV_FindItemByPidl(pidl);
931
932 return m_ListView.DeleteItem(nIndex);
933}
BOOL DeleteItem(int i)
Definition: rosctrls.h:101

Referenced by OnChangeNotify().

◆ LV_FindItemByPidl()

int CDefView::LV_FindItemByPidl ( PCUITEMID_CHILD  pidl)

Definition at line 885 of file CDefView.cpp.

886{
887 int cItems = m_ListView.GetItemCount();
888
889 for (int i = 0; i<cItems; i++)
890 {
891 PCUITEMID_CHILD currentpidl = _PidlByItem(i);
892 if (ILIsEqual(pidl, currentpidl))
893 return i;
894 }
895 return -1;
896}
BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:535

Referenced by GetItemPosition(), LV_DeleteItem(), LV_ProdItem(), LV_RenameItem(), OnChangeNotify(), RemoveObject(), SelectAndPositionItems(), and SelectItem().

◆ LV_ProdItem()

BOOLEAN CDefView::LV_ProdItem ( PCUITEMID_CHILD  pidl)

Definition at line 976 of file CDefView.cpp.

977{
978 int nItem;
979 LVITEMW lvItem;
980
981 TRACE("(%p)(pidl=%p)\n", this, pidl);
982
983 nItem = LV_FindItemByPidl(pidl);
984
985 if (-1 != nItem)
986 {
987 lvItem.mask = LVIF_IMAGE;
988 lvItem.iItem = nItem;
989 lvItem.iSubItem = 0;
991 m_ListView.SetItem(&lvItem);
992 m_ListView.Update(nItem);
993 return TRUE;
994 }
995
996 return FALSE;
997}
BOOL Update(int i)
Definition: rosctrls.h:131
BOOL SetItem(const LV_ITEM *pitem)
Definition: rosctrls.h:111
int WINAPI SHMapPIDLToSystemImageListIndex(IShellFolder *sh, LPCITEMIDLIST pidl, int *pIndex)
Definition: iconcache.cpp:783

Referenced by OnChangeNotify().

◆ LV_RenameItem()

BOOLEAN CDefView::LV_RenameItem ( PCUITEMID_CHILD  pidlOld,
PCUITEMID_CHILD  pidlNew 
)

Definition at line 938 of file CDefView.cpp.

939{
940 int nItem;
941 LVITEMW lvItem;
942
943 TRACE("(%p)(pidlold=%p pidlnew=%p)\n", this, pidlOld, pidlNew);
944
945 nItem = LV_FindItemByPidl(pidlOld);
946
947 if ( -1 != nItem )
948 {
949 lvItem.mask = LVIF_PARAM; /* only the pidl */
950 lvItem.iItem = nItem;
951 lvItem.iSubItem = 0;
952 m_ListView.GetItem(&lvItem);
953
954 LPVOID oldPidl = reinterpret_cast<LPVOID>(lvItem.lParam); /* Store the old pidl until the new item is replaced */
955
956 lvItem.mask = LVIF_PARAM | LVIF_IMAGE | LVIF_TEXT;
957 lvItem.iItem = nItem;
958 lvItem.iSubItem = 0;
959 lvItem.lParam = reinterpret_cast<LPARAM>(ILClone(pidlNew)); /* set the item's data */
962 m_ListView.SetItem(&lvItem);
963 m_ListView.Update(nItem);
964
965 SHFree(oldPidl); /* Now that the new item is in place, we can safely release the old pidl */
966
967 return TRUE; /* FIXME: better handling */
968 }
969
970 return FALSE;
971}
BOOL GetItem(LV_ITEM *pitem)
Definition: rosctrls.h:106

Referenced by OnChangeNotify().

◆ MoveIcons()

HRESULT STDMETHODCALLTYPE CDefView::MoveIcons ( IDataObject obj)
virtual

Definition at line 3222 of file CDefView.cpp.

3223{
3224 TRACE("(%p)->(%p)\n", this, obj);
3225 return E_NOTIMPL;
3226}

◆ OnActivate()

LRESULT CDefView::OnActivate ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 1808 of file CDefView.cpp.

1809{
1811 return 0;
1812}
void DoActivate(UINT uState)
Definition: CDefView.cpp:1771

◆ OnChangeNotify()

LRESULT CDefView::OnChangeNotify ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 2316 of file CDefView.cpp.

2317{
2318 HANDLE hChange = (HANDLE)wParam;
2319 DWORD dwProcID = (DWORD)lParam;
2320 PIDLIST_ABSOLUTE *Pidls;
2321 LONG lEvent;
2322 HANDLE hLock = SHChangeNotification_Lock(hChange, dwProcID, &Pidls, &lEvent);
2323 if (hLock == NULL)
2324 {
2325 ERR("hLock == NULL\n");
2326 return FALSE;
2327 }
2328
2329 BOOL bParent0 = ILIsParentOrSpecialParent(m_pidlParent, Pidls[0]);
2330 BOOL bParent1 = ILIsParentOrSpecialParent(m_pidlParent, Pidls[1]);
2331
2332 TRACE("(%p)(%p,%p,0x%08x)\n", this, Pidls[0], Pidls[1], lParam);
2333
2334 lEvent &= ~SHCNE_INTERRUPT;
2335 switch (lEvent)
2336 {
2337 case SHCNE_MKDIR:
2338 case SHCNE_CREATE:
2339 if (bParent0)
2340 {
2341 if (LV_FindItemByPidl(ILFindLastID(Pidls[0])) == -1)
2342 {
2343 LV_AddItem(ILFindLastID(Pidls[0]));
2344 }
2345 else
2346 {
2347 LV_ProdItem(ILFindLastID(Pidls[0]));
2348 }
2349 }
2350 break;
2351
2352 case SHCNE_RMDIR:
2353 case SHCNE_DELETE:
2354 if (bParent0)
2355 LV_DeleteItem(ILFindLastID(Pidls[0]));
2356 break;
2357
2358 case SHCNE_RENAMEFOLDER:
2359 case SHCNE_RENAMEITEM:
2360 if (bParent0 && bParent1)
2361 LV_RenameItem(ILFindLastID(Pidls[0]), ILFindLastID(Pidls[1]));
2362 else if (bParent0)
2363 LV_DeleteItem(ILFindLastID(Pidls[0]));
2364 else if (bParent1)
2365 LV_AddItem(ILFindLastID(Pidls[1]));
2366 break;
2367
2368 case SHCNE_UPDATEITEM:
2369 if (bParent0)
2370 LV_RenameItem(ILFindLastID(Pidls[0]), ILFindLastID(Pidls[0]));
2371 break;
2372
2373 case SHCNE_UPDATEDIR:
2374 Refresh();
2375 break;
2376 }
2377
2379 return TRUE;
2380}
static BOOL ILIsParentOrSpecialParent(PCIDLIST_ABSOLUTE pidl1, PCIDLIST_ABSOLUTE pidl2)
Definition: CDefView.cpp:2270
EXTERN_C HANDLE WINAPI SHChangeNotification_Lock(HANDLE hTicket, DWORD dwOwnerPID, LPITEMIDLIST **lppidls, LPLONG lpwEventId)
EXTERN_C BOOL WINAPI SHChangeNotification_Unlock(HANDLE hLock)
BOOLEAN LV_DeleteItem(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:924
virtual HRESULT STDMETHODCALLTYPE Refresh()
Definition: CDefView.cpp:2565
BOOLEAN LV_ProdItem(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:976
BOOLEAN LV_RenameItem(PCUITEMID_CHILD pidlOld, PCUITEMID_CHILD pidlNew)
Definition: CDefView.cpp:938
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
Definition: pidl.c:189
#define SHCNE_RMDIR
Definition: shlobj.h:1746
#define SHCNE_DELETE
Definition: shlobj.h:1744
#define SHCNE_MKDIR
Definition: shlobj.h:1745
#define SHCNE_UPDATEITEM
Definition: shlobj.h:1755
#define SHCNE_RENAMEITEM
Definition: shlobj.h:1742
#define SHCNE_UPDATEDIR
Definition: shlobj.h:1754
#define SHCNE_CREATE
Definition: shlobj.h:1743
#define SHCNE_RENAMEFOLDER
Definition: shlobj.h:1759
HANDLE lEvent
Definition: tftpd.cpp:56<