ReactOS 0.4.15-dev-7136-g77ab709
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, LPCSTR lpVerb, POINT *pt=NULL)
 
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 ()
 
void _DoCopyToMoveToFolder (BOOL bCopy)
 

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 412 of file CDefView.cpp.

412 :
413 m_ListView(),
415 m_hMenu(NULL),
420 m_uState(0),
421 m_cidl(0),
422 m_apidl(NULL),
424 m_hNotify(0),
425 m_hAccel(NULL),
426 m_dwAspects(0),
427 m_dwAdvf(0),
433{
441
443}
#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:628
#define ZeroMemory
Definition: winbase.h:1712
DWORD WINAPI GetSysColor(_In_ int)
#define COLOR_WINDOW
Definition: winuser.h:917
#define COLOR_WINDOWTEXT
Definition: winuser.h:920
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
Definition: cursoricon.c:2044

◆ ~CDefView()

CDefView::~CDefView ( )

Definition at line 445 of file CDefView.cpp.

446{
447 TRACE(" destroying IShellView(%p)\n", this);
448
450
452 {
455 }
456
457 if (m_hWnd)
458 {
460 }
461
463}
#define SFVM_VIEWRELEASE
HWND m_hWnd
Definition: atlwin.h:273
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3990
virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow()
Definition: CDefView.cpp:2655
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:326
pKey DeleteObject()
#define TRACE(s)
Definition: solgame.cpp:4

Member Function Documentation

◆ _DoCopyToMoveToFolder()

void CDefView::_DoCopyToMoveToFolder ( BOOL  bCopy)
private

Definition at line 1845 of file CDefView.cpp.

1846{
1847 if (!GetSelections())
1848 return;
1849
1850 SFGAOF rfg = SFGAO_CANCOPY | SFGAO_CANMOVE | SFGAO_FILESYSTEM;
1851 HRESULT hr = m_pSFParent->GetAttributesOf(m_cidl, m_apidl, &rfg);
1853 return;
1854
1855 if (!bCopy && !(rfg & SFGAO_CANMOVE))
1856 return;
1857 if (bCopy && !(rfg & SFGAO_CANCOPY))
1858 return;
1859
1861 hr = m_pSFParent->GetUIObjectOf(m_hWnd, m_cidl, m_apidl, IID_IContextMenu, 0, (void **)&pCM);
1863 return;
1864
1865 InvokeContextMenuCommand(pCM, (bCopy ? "copyto" : "moveto"), NULL);
1866}
CComPtr< IShellFolder > m_pSFParent
Definition: CDefView.cpp:111
HRESULT InvokeContextMenuCommand(CComPtr< IContextMenu > &pCM, LPCSTR lpVerb, POINT *pt=NULL)
Definition: CDefView.cpp:1540
UINT GetSelections()
Definition: CDefView.cpp:1510
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:122
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
Definition: ebrowser.c:83
HRESULT hr
Definition: shlfolder.c:183

Referenced by OnCommand().

◆ _DoFolderViewCB()

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

Definition at line 3990 of file CDefView.cpp.

3991{
3993
3995 {
3996 hr = m_pShellFolderViewCB->MessageSFVCB(uMsg, wParam, lParam);
3997 }
3998
3999 return hr;
4000}
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

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

◆ _FindInsertableIndexFromPoint()

INT CDefView::_FindInsertableIndexFromPoint ( POINT  pt)
private

Definition at line 3631 of file CDefView.cpp.

3632{
3633 RECT rcBound;
3634 INT i, nCount = m_ListView.GetItemCount();
3635 DWORD dwSpacing;
3636 INT dx, dy;
3637 BOOL bSmall = ((m_ListView.GetStyle() & LVS_TYPEMASK) != LVS_ICON);
3638
3639 /* FIXME: LVM_GETORIGIN is broken. See CORE-17266 */
3640 pt.x += m_ListView.GetScrollPos(SB_HORZ);
3641 pt.y += m_ListView.GetScrollPos(SB_VERT);
3642
3643 if (m_ListView.GetStyle() & LVS_ALIGNLEFT)
3644 {
3645 // vertically
3646 for (i = 0; i < nCount; ++i)
3647 {
3648 dwSpacing = ListView_GetItemSpacing(m_ListView, bSmall);
3649 dx = LOWORD(dwSpacing);
3650 dy = HIWORD(dwSpacing);
3652 rcBound.right = rcBound.left + dx;
3653 rcBound.bottom = rcBound.top + dy;
3654 if (pt.x < rcBound.right && pt.y < (rcBound.top + rcBound.bottom) / 2)
3655 {
3656 return i;
3657 }
3658 }
3659 for (i = nCount - 1; i >= 0; --i)
3660 {
3662 if (rcBound.left < pt.x && rcBound.top < pt.y)
3663 {
3664 return i + 1;
3665 }
3666 }
3667 }
3668 else
3669 {
3670 // horizontally
3671 for (i = 0; i < nCount; ++i)
3672 {
3673 dwSpacing = ListView_GetItemSpacing(m_ListView, bSmall);
3674 dx = LOWORD(dwSpacing);
3675 dy = HIWORD(dwSpacing);
3677 rcBound.right = rcBound.left + dx;
3678 rcBound.bottom = rcBound.top + dy;
3679 if (pt.y < rcBound.bottom && pt.x < rcBound.left)
3680 {
3681 return i;
3682 }
3683 if (pt.y < rcBound.bottom && pt.x < rcBound.right)
3684 {
3685 return i + 1;
3686 }
3687 }
3688 for (i = nCount - 1; i >= 0; --i)
3689 {
3691 if (rcBound.left < pt.x && rcBound.top < pt.y)
3692 {
3693 return i + 1;
3694 }
3695 }
3696 }
3697
3698 return nCount;
3699}
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 3727 of file CDefView.cpp.

3728{
3729 /* Get the handle for the status bar */
3730 HWND fStatusBar;
3731 m_pShellBrowser->GetControlWindow(FCW_STATUS, &fStatusBar);
3732
3733 /* Get the size of our status bar */
3734 RECT statusBarSize;
3735 ::GetWindowRect(fStatusBar, &statusBarSize);
3736
3737 /* Resize the status bar */
3738 _HandleStatusBarResize(statusBarSize.right - statusBarSize.left);
3739}
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:114
void _HandleStatusBarResize(int width)
Definition: CDefView.cpp:3701
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)

Referenced by OnCreate(), and UIActivate().

◆ _GetSnapToGrid()

HRESULT CDefView::_GetSnapToGrid ( )
private

Definition at line 2995 of file CDefView.cpp.

2996{
2997 DWORD dwExStyle = (DWORD)m_ListView.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
2998 return ((dwExStyle & LVS_EX_SNAPTOGRID) ? S_OK : S_FALSE);
2999}
#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 3701 of file CDefView.cpp.

3702{
3703 LRESULT lResult;
3704
3706 {
3707 int nPartArray[] = {-1};
3708 m_pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETPARTS, _countof(nPartArray), (LPARAM)nPartArray, &lResult);
3709 return;
3710 }
3711
3712 int nFileSizePartLength = 125;
3713 const int nLocationPartLength = 150;
3714 const int nRightPartsLength = nFileSizePartLength + nLocationPartLength;
3715 int nObjectsPartLength = nWidth - nRightPartsLength;
3716
3717 /* If the window is small enough just divide each part into thirds
3718 * This is the behavior of Windows Server 2003. */
3719 if (nObjectsPartLength <= nLocationPartLength)
3720 nObjectsPartLength = nFileSizePartLength = nWidth / 3;
3721
3722 int nPartArray[] = {nObjectsPartLength, nObjectsPartLength + nFileSizePartLength, -1};
3723
3724 m_pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETPARTS, _countof(nPartArray), (LPARAM)nPartArray, &lResult);
3725}
#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 3963 of file CDefView.cpp.

3964{
3966 HRESULT hr = S_OK;
3967
3968 hr = IUnknown_QueryService(m_pShellBrowser, IID_IExplorerToolbar, IID_PPV_ARG(IExplorerToolbar, &ptb));
3969 if (FAILED(hr))
3970 return hr;
3971
3972 m_Category = CGID_DefViewFrame;
3973
3974 hr = ptb->SetCommandTarget(static_cast<IOleCommandTarget*>(this), &m_Category, 0);
3975 if (FAILED(hr))
3976 return hr;
3977
3978 if (hr == S_FALSE)
3979 return S_OK;
3980
3981#if 0
3982 hr = ptb->AddButtons(&m_Category, buttonsCount, buttons);
3983 if (FAILED(hr))
3984 return hr;
3985#endif
3986
3987 return S_OK;
3988}
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1497
#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 3755 of file CDefView.cpp.

3756{
3757 // get insertable index from position
3759
3760 // create identity mapping of indexes
3762 INT nCount = m_ListView.GetItemCount();
3763 for (INT i = 0; i < nCount; ++i)
3764 {
3765 array.Add(i);
3766 }
3767
3768 // re-ordering mapping
3769 INT iItem = -1;
3770 while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3771 {
3772 INT iFrom = iItem, iTo = iPosition;
3773 if (iFrom < iTo)
3774 --iTo;
3775 if (iFrom >= nCount)
3776 iFrom = nCount - 1;
3777 if (iTo >= nCount)
3778 iTo = nCount - 1;
3779
3780 // shift indexes by swapping (like a bucket relay)
3781 if (iFrom < iTo)
3782 {
3783 for (INT i = iFrom; i < iTo; ++i)
3784 {
3785 // swap array[i] and array[i + 1]
3786 INT tmp = array[i];
3787 array[i] = array[i + 1];
3788 array[i + 1] = tmp;
3789 }
3790 }
3791 else
3792 {
3793 for (INT i = iFrom; i > iTo; --i)
3794 {
3795 // swap array[i] and array[i - 1]
3796 INT tmp = array[i];
3797 array[i] = array[i - 1];
3798 array[i - 1] = tmp;
3799 }
3800 }
3801 }
3802
3803 // create mapping (ListView's lParam to index) from array
3805 for (INT i = 0; i < nCount; ++i)
3806 {
3808 map.Add(lParam, i);
3809 }
3810
3811 // finally sort
3813}
static INT CALLBACK SelectionMoveCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
Definition: CDefView.cpp:3744
INT _FindInsertableIndexFromPoint(POINT pt)
Definition: CDefView.cpp:3631
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 895 of file CDefView.cpp.

896{
897 if (!m_ListView)
898 return nullptr;
899 return reinterpret_cast<PCUITEMID_CHILD>(m_ListView.GetItemData(i));
900}
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 902 of file CDefView.cpp.

903{
904 if (!m_ListView)
905 return nullptr;
906 return reinterpret_cast<PCUITEMID_CHILD>(lvItem.lParam);
907}

◆ _Sort()

BOOL CDefView::_Sort ( )
private

Definition at line 861 of file CDefView.cpp.

862{
863 HWND hHeader;
864 HDITEM hColumn;
865
866 if (m_ListView.GetWindowLongPtr(GWL_STYLE) & LVS_NOSORTHEADER)
867 return TRUE;
868
869 hHeader = (HWND)m_ListView.SendMessage(LVM_GETHEADER, 0, 0);
870 ZeroMemory(&hColumn, sizeof(hColumn));
871
872 /* If the sorting column changed, remove the sorting style from the old column */
873 if ( (m_sortInfo.nLastHeaderID != -1) &&
875 {
876 hColumn.mask = HDI_FORMAT;
877 Header_GetItem(hHeader, m_sortInfo.nLastHeaderID, &hColumn);
878 hColumn.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN);
879 Header_SetItem(hHeader, m_sortInfo.nLastHeaderID, &hColumn);
880 }
881
882 /* Set the sorting style to the new column */
883 hColumn.mask = HDI_FORMAT;
884 Header_GetItem(hHeader, m_sortInfo.nHeaderID, &hColumn);
885
886 hColumn.fmt &= (m_sortInfo.bIsAscending ? ~HDF_SORTDOWN : ~HDF_SORTUP );
887 hColumn.fmt |= (m_sortInfo.bIsAscending ? HDF_SORTUP : HDF_SORTDOWN);
888 Header_SetItem(hHeader, m_sortInfo.nHeaderID, &hColumn);
889
890 /* Sort the list, using the current values of nHeaderID and bIsAscending */
893}
static INT CALLBACK ListViewCompareItems(LPARAM lParam1, LPARAM lParam2, LPARAM lpData)
Definition: CDefView.cpp:845
#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:851

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

◆ AddObject()

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

Definition at line 3190 of file CDefView.cpp.

3191{
3192 TRACE("(%p)->(%p %p)\n", this, pidl, item);
3193 if (!m_ListView)
3194 {
3195 ERR("!m_ListView\n");
3196 return E_FAIL;
3197 }
3198 *item = LV_AddItem(pidl);
3199 return (int)*item >= 0 ? S_OK : E_OUTOFMEMORY;
3200}
#define ERR(fmt,...)
Definition: debug.h:110
int LV_AddItem(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:930
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_FAIL
Definition: ddrawi.h:102
static ATOM item
Definition: dde.c:856

◆ AddPropertySheetPages()

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

Implements IShellView.

Definition at line 2715 of file CDefView.cpp.

2716{
2717 FIXME("(%p) stub\n", this);
2718
2719 return E_NOTIMPL;
2720}
#define FIXME(fmt,...)
Definition: debug.h:111

◆ ArrangeGrid()

HRESULT STDMETHODCALLTYPE CDefView::ArrangeGrid ( )
virtual

Definition at line 3177 of file CDefView.cpp.

3178{
3180 return S_OK;
3181}
DWORD SetExtendedListViewStyle(DWORD dw, DWORD dwMask=0)
Definition: rosctrls.h:47

Referenced by OnCommand().

◆ AutoArrange()

HRESULT STDMETHODCALLTYPE CDefView::AutoArrange ( )
virtual

Definition at line 3183 of file CDefView.cpp.

3184{
3185 m_ListView.ModifyStyle(0, LVS_AUTOARRANGE);
3187 return S_OK;
3188}
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 524 of file CDefView.cpp.

525{
527
528 TRACE("\n");
529
530 if (m_pCommDlgBrowser != NULL)
531 {
532 m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_CHECKBUTTON,
534 m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_CHECKBUTTON,
536 m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_ENABLEBUTTON,
538 m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_ENABLEBUTTON,
540 }
541}
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:840
#define FCIDM_TB_REPORTVIEW
Definition: shresdef.h:841

Referenced by CreateViewWindow3(), and OnCommand().

◆ CheckViewMode()

HRESULT CDefView::CheckViewMode ( HMENU  hmenuView)

Definition at line 1489 of file CDefView.cpp.

1490{
1492 {
1493 UINT iItemFirst = FCIDM_SHVIEW_BIGICON;
1494 UINT iItemLast = iItemFirst + FVM_LAST - FVM_FIRST;
1495 UINT iItem = iItemFirst + m_FolderSettings.ViewMode - FVM_FIRST;
1496 CheckMenuRadioItem(hmenuView, iItemFirst, iItemLast, iItem, MF_BYCOMMAND);
1497 }
1498
1499 return S_OK;
1500}
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:819
#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 2576 of file CDefView.cpp.

2577{
2578 FIXME("(%p) stub\n", this);
2579
2580 return E_NOTIMPL;
2581}

◆ CreateList()

BOOL CDefView::CreateList ( )

Definition at line 629 of file CDefView.cpp.

630{
631 HRESULT hr;
632 DWORD dwStyle, dwExStyle, ListExStyle;
633 UINT ViewMode;
634
635 TRACE("%p\n", this);
636
638 LVS_SHAREIMAGELISTS | LVS_EDITLABELS | LVS_AUTOARRANGE; // FIXME: Why is LVS_AUTOARRANGE here?
639 dwExStyle = WS_EX_CLIENTEDGE;
640 ListExStyle = 0;
641
643 {
645 dwStyle |= LVS_ALIGNLEFT;
646 }
647 else
648 {
649 dwStyle |= LVS_SHOWSELALWAYS; // MSDN says FWF_SHOWSELALWAYS is deprecated, always turn on for folders.
651 ListExStyle = LVS_EX_DOUBLEBUFFER;
652 }
653
654 ViewMode = m_FolderSettings.ViewMode;
655 hr = _DoFolderViewCB(SFVM_DEFVIEWMODE, 0, (LPARAM)&ViewMode);
656 if (SUCCEEDED(hr))
657 {
658 if (ViewMode >= FVM_FIRST && ViewMode <= FVM_LAST)
659 m_FolderSettings.ViewMode = ViewMode;
660 else
661 ERR("Ignoring invalid ViewMode from SFVM_DEFVIEWMODE: %u (was: %u)\n", ViewMode, m_FolderSettings.ViewMode);
662 }
663
665 {
666 case FVM_ICON:
667 dwStyle |= LVS_ICON;
668 break;
669
670 case FVM_DETAILS:
671 dwStyle |= LVS_REPORT;
672 break;
673
674 case FVM_SMALLICON:
675 dwStyle |= LVS_SMALLICON;
676 break;
677
678 case FVM_LIST:
679 dwStyle |= LVS_LIST;
680 break;
681
682 default:
683 dwStyle |= LVS_LIST;
684 break;
685 }
686
688 dwStyle |= LVS_AUTOARRANGE;
689
691 ListExStyle |= LVS_EX_SNAPTOGRID;
692
694 dwStyle |= LVS_SINGLESEL;
695
697 ListExStyle |= LVS_EX_FULLROWSELECT;
698
701
703 dwStyle |= LVS_NOCOLUMNHEADER;
704
705#if 0
706 // FIXME: Because this is a negative, everyone gets the new flag by default unless they
707 // opt out. This code should be enabled when the shell looks like Vista instead of 2003.
709 ListExStyle |= LVS_EX_HEADERINALLVIEWS;
710#endif
711
713 dwExStyle &= ~WS_EX_CLIENTEDGE;
714
715 RECT rcListView = {0,0,0,0};
716 m_ListView.Create(m_hWnd, rcListView, L"FolderView", dwStyle, dwExStyle, ID_LISTVIEW);
717
718 if (!m_ListView)
719 return FALSE;
720
722
726
727 /* UpdateShellSettings(); */
728 return TRUE;
729}
#define ID_LISTVIEW
Definition: CDefView.cpp:403
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_EX_ONECLICKACTIVATE
Definition: commctrl.h:2735
#define LVS_SINGLESEL
Definition: commctrl.h:2266
#define LVS_SHAREIMAGELISTS
Definition: commctrl.h:2270
#define LVS_NOCOLUMNHEADER
Definition: commctrl.h:2284
#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_EX_FULLROWSELECT
Definition: commctrl.h:2734
#define LVS_EX_TRACKSELECT
Definition: commctrl.h:2732
#define LVS_EDITLABELS
Definition: commctrl.h:2273
#define LVS_EX_DOUBLEBUFFER
Definition: commctrl.h:2745
#define LVS_LIST
Definition: commctrl.h:2264
#define SFVM_DEFVIEWMODE
Definition: shlobj.h:1311
@ FWF_SNAPTOGRID
Definition: shobjidl.idl:633
@ FWF_AUTOARRANGE
Definition: shobjidl.idl:631
@ FWF_ALIGNLEFT
Definition: shobjidl.idl:642
@ FWF_NOSCROLL
Definition: shobjidl.idl:641
@ FWF_NOHEADERINALLVIEWS
Definition: shobjidl.idl:655
@ FWF_SINGLECLICKACTIVATE
Definition: shobjidl.idl:646
@ FWF_FULLROWSELECT
Definition: shobjidl.idl:652
@ FWF_NOCLIENTEDGE
Definition: shobjidl.idl:640
@ FWF_SINGLESEL
Definition: shobjidl.idl:637
@ FWF_NOCOLUMNHEADER
Definition: shobjidl.idl:654
@ 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 2649 of file CDefView.cpp.

2650{
2651 return CreateViewWindow3(psb, lpPrevView, SV3CVW3_DEFAULT,
2652 (FOLDERFLAGS)lpfs->fFlags, (FOLDERFLAGS)lpfs->fFlags, (FOLDERVIEWMODE)lpfs->ViewMode, NULL, prcView, phWnd);
2653}
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:3070
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 3063 of file CDefView.cpp.

3064{
3065 return CreateViewWindow3(view_params->psbOwner, view_params->psvPrev,
3066 SV3CVW3_DEFAULT, (FOLDERFLAGS)view_params->pfs->fFlags, (FOLDERFLAGS)view_params->pfs->fFlags,
3067 (FOLDERVIEWMODE)view_params->pfs->ViewMode, view_params->pvid, view_params->prcView, &view_params->hwndView);
3068}

◆ 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 3070 of file CDefView.cpp.

3071{
3072 OLEMENUGROUPWIDTHS omw = { { 0, 0, 0, 0, 0, 0 } };
3073
3074 *hwnd = NULL;
3075
3076 TRACE("(%p)->(shlview=%p shlbrs=%p rec=%p hwnd=%p vmode=%x flags=%x)\n", this, psvPrevious, psb, prcView, hwnd, mode, flags);
3077 if (prcView != NULL)
3078 TRACE("-- left=%i top=%i right=%i bottom=%i\n", prcView->left, prcView->top, prcView->right, prcView->bottom);
3079
3080 /* Validate the Shell Browser */
3081 if (psb == NULL || m_hWnd)
3082 return E_UNEXPECTED;
3083
3084 if (view_flags != SV3CVW3_DEFAULT)
3085 FIXME("unsupported view flags 0x%08x\n", view_flags);
3086
3087 /* Set up the member variables */
3088 m_pShellBrowser = psb;
3091
3092 if (view_id)
3093 {
3094 if (IsEqualIID(*view_id, VID_LargeIcons))
3096 else if (IsEqualIID(*view_id, VID_SmallIcons))
3098 else if (IsEqualIID(*view_id, VID_List))
3100 else if (IsEqualIID(*view_id, VID_Details))
3102 else if (IsEqualIID(*view_id, VID_Thumbnails))
3104 else if (IsEqualIID(*view_id, VID_Tile))
3106 else if (IsEqualIID(*view_id, VID_ThumbStrip))
3108 else
3109 FIXME("Ignoring unrecognized VID %s\n", debugstr_guid(view_id));
3110 }
3111
3112 /* Get our parent window */
3113 m_pShellBrowser->GetWindow(&m_hWndParent);
3114
3115 /* Try to get the ICommDlgBrowserInterface, adds a reference !!! */
3118 {
3119 TRACE("-- CommDlgBrowser\n");
3120 }
3121
3123 if (m_hWnd == NULL)
3124 return E_FAIL;
3125
3126 *hwnd = m_hWnd;
3127
3128 CheckToolbar();
3129
3130 if (!*hwnd)
3131 return E_FAIL;
3132
3134
3136 UpdateWindow();
3137
3138 if (!m_hMenu)
3139 {
3140 m_hMenu = CreateMenu();
3141 m_pShellBrowser->InsertMenusSB(m_hMenu, &omw);
3142 TRACE("-- after fnInsertMenusSB\n");
3143 }
3144
3145 _MergeToolbar();
3146
3147 return S_OK;
3148}
#define U(x)
Definition: wordpad.c:45
@ Create
Definition: registry.c:563
BOOL UpdateWindow()
Definition: atlwin.h:1345
HRESULT _MergeToolbar()
Definition: CDefView.cpp:3963
void CheckToolbar()
Definition: CDefView.cpp:524
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:1301
@ 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:829
#define SWP_NOMOVE
Definition: winuser.h:1243
#define SWP_NOSIZE
Definition: winuser.h:1244
#define HWND_TOP
Definition: winuser.h:1206
#define SWP_SHOWWINDOW
Definition: winuser.h:1247

Referenced by CreateViewWindow(), and CreateViewWindow2().

◆ DestroyViewWindow()

HRESULT WINAPI CDefView::DestroyViewWindow ( )
virtual

Implements IShellView.

Definition at line 2655 of file CDefView.cpp.

2656{
2657 TRACE("(%p)\n", this);
2658
2659 /* Make absolutely sure all our UI is cleaned up */
2661
2662 if (m_hAccel)
2663 {
2664 // "Accelerator tables loaded from resources are freed automatically when the application terminates." -- MSDN
2665 m_hAccel = NULL;
2666 }
2667
2669 {
2672 }
2673
2674 if (m_hMenuViewModes)
2675 {
2678 }
2679
2680 if (m_hMenu)
2681 {
2683 m_hMenu = NULL;
2684 }
2685
2686 if (m_ListView)
2687 {
2688 m_ListView.DestroyWindow();
2689 }
2690
2691 if (m_hWnd)
2692 {
2694 DestroyWindow();
2695 }
2696
2699
2700 return S_OK;
2701}
#define SFVM_WINDOWCLOSING
void Release()
Definition: atlcomcli.h:170
BOOL DestroyWindow()
Definition: atlwin.h:462
virtual HRESULT STDMETHODCALLTYPE UIActivate(UINT uState)
Definition: CDefView.cpp:2612
@ SVUIA_DEACTIVATE
Definition: shobjidl.idl:742
BOOL WINAPI DestroyMenu(_In_ HMENU)

Referenced by ~CDefView().

◆ DoActivate()

void CDefView::DoActivate ( UINT  uState)

Definition at line 1811 of file CDefView.cpp.

1812{
1813 TRACE("%p uState=%x\n", this, uState);
1814
1815 /*don't do anything if the state isn't really changing */
1816 if (m_uState == uState)
1817 {
1818 return;
1819 }
1820
1821 if (uState == SVUIA_DEACTIVATE)
1822 {
1823 OnDeactivate();
1824 }
1825 else
1826 {
1828 {
1829 FillEditMenu();
1830 FillViewMenu();
1831 m_pShellBrowser->SetMenuSB(m_hMenu, 0, m_hWnd);
1833 }
1834
1835 if (SVUIA_ACTIVATE_FOCUS == uState)
1836 {
1837 m_ListView.SetFocus();
1838 }
1839 }
1840
1841 m_uState = uState;
1842 TRACE("--\n");
1843}
HRESULT FillEditMenu()
Definition: CDefView.cpp:1416
void OnDeactivate()
Definition: CDefView.cpp:1799
HRESULT FillViewMenu()
Definition: CDefView.cpp:1433
@ 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 3469 of file CDefView.cpp.

3470{
3471 LONG lResult;
3472 HRESULT hr;
3473 RECT clientRect;
3474
3475 /* The key state on drop doesn't have MK_LBUTTON or MK_RBUTTON because it
3476 reflects the key state after the user released the button, so we need
3477 to remember the last key state when the button was pressed */
3478 m_grfKeyState = grfKeyState;
3479
3480 /* Map from global to client coordinates and query the index of the listview-item, which is
3481 * currently under the mouse cursor. */
3482 LVHITTESTINFO htinfo = {{pt.x, pt.y}, LVHT_ONITEM};
3483 ScreenToClient(&htinfo.pt);
3484 lResult = m_ListView.HitTest(&htinfo);
3485
3486 /* Send WM_*SCROLL messages every 250 ms during drag-scrolling */
3487 ::GetClientRect(m_ListView, &clientRect);
3488 if (htinfo.pt.x == m_ptLastMousePos.x && htinfo.pt.y == m_ptLastMousePos.y &&
3489 (htinfo.pt.x < SCROLLAREAWIDTH || htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH ||
3490 htinfo.pt.y < SCROLLAREAWIDTH || htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH ))
3491 {
3492 m_cScrollDelay = (m_cScrollDelay + 1) % 5; /* DragOver is called every 50 ms */
3493 if (m_cScrollDelay == 0)
3494 {
3495 /* Mouse did hover another 250 ms over the scroll-area */
3496 if (htinfo.pt.x < SCROLLAREAWIDTH)
3497 m_ListView.SendMessageW(WM_HSCROLL, SB_LINEUP, 0);
3498
3499 if (htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH)
3500 m_ListView.SendMessageW(WM_HSCROLL, SB_LINEDOWN, 0);
3501
3502 if (htinfo.pt.y < SCROLLAREAWIDTH)
3503 m_ListView.SendMessageW(WM_VSCROLL, SB_LINEUP, 0);
3504
3505 if (htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH)
3506 m_ListView.SendMessageW(WM_VSCROLL, SB_LINEDOWN, 0);
3507 }
3508 }
3509 else
3510 {
3511 m_cScrollDelay = 0; /* Reset, if the cursor is not over the listview's scroll-area */
3512 }
3513
3514 m_ptLastMousePos = htinfo.pt;
3516
3517 /* We need to check if we drag the selection over itself */
3518 if (lResult != -1 && m_pSourceDataObject.p != NULL)
3519 {
3520 PCUITEMID_CHILD pidl = _PidlByItem(lResult);
3521
3522 for (UINT i = 0; i < m_cidl; i++)
3523 {
3524 if (pidl == m_apidl[i])
3525 {
3526 /* The item that is being draged is hovering itself. */
3527 lResult = -1;
3528 break;
3529 }
3530 }
3531 }
3532
3533 /* If we are still over the previous sub-item, notify it via DragOver and return. */
3534 if (m_pCurDropTarget && lResult == m_iDragOverItem)
3535 return m_pCurDropTarget->DragOver(grfKeyState, pt, pdwEffect);
3536
3537 /* We've left the previous sub-item, notify it via DragLeave and Release it. */
3538 if (m_pCurDropTarget)
3539 {
3541 if (pidl)
3542 SelectItem(pidl, 0);
3543
3544 m_pCurDropTarget->DragLeave();
3546 }
3547
3548 m_iDragOverItem = lResult;
3549
3550 if (lResult == -1)
3551 {
3552 /* We are not above one of the listview's subitems. Bind to the parent folder's
3553 * DropTarget interface. */
3555 }
3556 else
3557 {
3558 /* Query the relative PIDL of the shellfolder object represented by the currently
3559 * dragged over listview-item ... */
3560 PCUITEMID_CHILD pidl = _PidlByItem(lResult);
3561
3562 /* ... and bind m_pCurDropTarget to the IDropTarget interface of an UIObject of this object */
3563 hr = m_pSFParent->GetUIObjectOf(m_ListView, 1, &pidl, IID_NULL_PPV_ARG(IDropTarget, &m_pCurDropTarget));
3564 }
3565
3567
3568 /* If anything failed, m_pCurDropTarget should be NULL now, which ought to be a save state. */
3569 if (FAILED(hr))
3570 {
3571 *pdwEffect = DROPEFFECT_NONE;
3572 return hr;
3573 }
3574
3575 if (m_iDragOverItem != -1)
3576 {
3577 SelectItem(m_iDragOverItem, SVSI_SELECT);
3578 }
3579
3580 /* Notify the item just entered via DragEnter. */
3581 return m_pCurDropTarget->DragEnter(m_pCurDataObject, grfKeyState, pt, pdwEffect);
3582}
#define SCROLLAREAWIDTH
Definition: CDefView.cpp:3467
static void ClientToListView(HWND hwndLV, POINT *ppt)
Definition: CDefView.cpp:59
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:895
DWORD m_grfKeyState
Definition: CDefView.cpp:143
virtual HRESULT STDMETHODCALLTYPE SelectItem(PCUITEMID_CHILD pidlItem, SVSIF uFlags)
Definition: CDefView.cpp:2729
int HitTest(LV_HITTESTINFO *phtInfo)
Definition: rosctrls.h:199
HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site)
Definition: ordinal.c:1407
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:1742
#define WM_VSCROLL
Definition: winuser.h:1743
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 3584 of file CDefView.cpp.

3585{
3586 if (*pdwEffect == DROPEFFECT_NONE)
3587 return S_OK;
3588
3589 /* Get a hold on the data object for later calls to DragEnter on the sub-folders */
3590 m_pCurDataObject = pDataObject;
3591
3592 HRESULT hr = drag_notify_subitem(grfKeyState, pt, pdwEffect);
3593 if (SUCCEEDED(hr))
3594 {
3595 POINT ptClient = {pt.x, pt.y};
3596 ScreenToClient(&ptClient);
3597 ImageList_DragEnter(m_hWnd, ptClient.x, ptClient.y);
3598 }
3599
3600 return hr;
3601}
HRESULT drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
Definition: CDefView.cpp:3469
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 3611 of file CDefView.cpp.

3612{
3614
3615 if (m_pCurDropTarget)
3616 {
3617 m_pCurDropTarget->DragLeave();
3619 }
3620
3621 if (m_pCurDataObject != NULL)
3622 {
3624 }
3625
3626 m_iDragOverItem = 0;
3627
3628 return S_OK;
3629}
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 3603 of file CDefView.cpp.

3604{
3605 POINT ptClient = {pt.x, pt.y};
3606 ScreenToClient(&ptClient);
3607 ImageList_DragMove(ptClient.x, ptClient.y);
3608 return drag_notify_subitem(grfKeyState, pt, pdwEffect);
3609}
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 3894 of file CDefView.cpp.

3895{
3896 FIXME("Stub: this=%p\n", this);
3897
3898 return E_NOTIMPL;
3899}

◆ Drop()

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

Implements IDropTarget.

Definition at line 3815 of file CDefView.cpp.

3816{
3819
3820 if ((IsDropOnSource(NULL) == S_OK) &&
3821 (*pdwEffect & DROPEFFECT_MOVE) &&
3823 {
3824 if (m_pCurDropTarget)
3825 {
3826 m_pCurDropTarget->DragLeave();
3828 }
3829
3830 POINT ptDrop = { pt.x, pt.y };
3831 ::ScreenToClient(m_ListView, &ptDrop);
3833 m_ptLastMousePos = ptDrop;
3834
3836 if (m_ListView.GetStyle() & LVS_AUTOARRANGE)
3837 {
3839 }
3840 else
3841 {
3842 POINT ptItem;
3843 INT iItem = -1;
3844 while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3845 {
3846 if (m_ListView.GetItemPosition(iItem, &ptItem))
3847 {
3850 m_ListView.SetItemPosition(iItem, &ptItem);
3851 }
3852 }
3853 }
3855 }
3856 else if (m_pCurDropTarget)
3857 {
3858 m_pCurDropTarget->Drop(pDataObject, grfKeyState, pt, pdwEffect);
3860 }
3861
3863 m_iDragOverItem = 0;
3864 return S_OK;
3865}
POINT m_ptFirstMousePos
Definition: CDefView.cpp:142
void _MoveSelectionOnAutoArrange(POINT pt)
Definition: CDefView.cpp:3755
virtual HRESULT STDMETHODCALLTYPE IsDropOnSource(IDropTarget *drop_target)
Definition: CDefView.cpp:3292
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:2366

◆ EnableModeless()

HRESULT WINAPI CDefView::EnableModeless ( BOOL  fEnable)
virtual

Implements IShellView.

Definition at line 2605 of file CDefView.cpp.

2606{
2607 FIXME("(%p) stub\n", this);
2608
2609 return E_NOTIMPL;
2610}

◆ Exec()

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

Implements IOleCommandTarget.

Definition at line 3406 of file CDefView.cpp.

3407{
3408 FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08x Opt:0x%08x %p %p)\n",
3409 this, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
3410
3411 if (!pguidCmdGroup)
3412 return OLECMDERR_E_UNKNOWNGROUP;
3413
3414 if (IsEqualCLSID(*pguidCmdGroup, m_Category))
3415 {
3416 if (nCmdID == FCIDM_SHVIEW_AUTOARRANGE)
3417 {
3418 if (V_VT(pvaIn) != VT_INT_PTR)
3419 return OLECMDERR_E_NOTSUPPORTED;
3420
3422 params.cbSize = sizeof(params);
3423 params.rcExclude = *(RECT*) V_INTREF(pvaIn);
3424
3425 if (m_hMenuViewModes)
3426 {
3427 /* Duplicate all but the last two items of the view modes menu */
3428 HMENU hmenuViewPopup = CreatePopupMenu();
3429 Shell_MergeMenus(hmenuViewPopup, m_hMenuViewModes, 0, 0, 0xFFFF, 0);
3430 DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3431 DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3432 CheckViewMode(hmenuViewPopup);
3433 TrackPopupMenuEx(hmenuViewPopup, TPM_LEFTALIGN | TPM_TOPALIGN, params.rcExclude.left, params.rcExclude.bottom, m_hWndParent, &params);
3434 ::DestroyMenu(hmenuViewPopup);
3435 }
3436
3437 // pvaOut is VT_I4 with value 0x403 (cmd id of the new mode maybe?)
3438 V_VT(pvaOut) = VT_I4;
3439 V_I4(pvaOut) = 0x403;
3440 }
3441 }
3442
3443 if (IsEqualIID(*pguidCmdGroup, CGID_Explorer) &&
3444 (nCmdID == 0x29) &&
3445 (nCmdexecopt == 4) && pvaOut)
3446 return S_OK;
3447
3448 if (IsEqualIID(*pguidCmdGroup, CGID_ShellDocView) &&
3449 (nCmdID == 9) &&
3450 (nCmdexecopt == 0))
3451 return 1;
3452
3453 return OLECMDERR_E_UNKNOWNGROUP;
3454}
HRESULT CheckViewMode(HMENU hmenuView)
Definition: CDefView.cpp:1489
@ 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:63
#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:824
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:838
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:2382
#define TPM_LEFTALIGN
Definition: winuser.h:2376
#define MF_BYPOSITION
Definition: winuser.h:203

◆ fill_list()

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

Definition at line 1045 of file CDefView.cpp.

1046{
1047 PITEMID_CHILD pidl = static_cast<PITEMID_CHILD>(ptr);
1048 CDefView *pThis = static_cast<CDefView *>(arg);
1049
1050 /* in a commdlg This works as a filemask*/
1051 if (pThis->IncludeObject(pidl) == S_OK && pThis->m_ListView)
1052 pThis->LV_AddItem(pidl);
1053
1054 SHFree(pidl);
1055 return TRUE;
1056}
HRESULT IncludeObject(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:477
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 1449 of file CDefView.cpp.

1450{
1451 /* We only need to fill this once */
1452 if (GetMenuItemID(hmenuArrange, 0) == FCIDM_SHVIEW_AUTOARRANGE)
1453 {
1454 Shell_MergeMenus(hmenuArrange, m_hMenuArrangeModes, 0, 0, 0xFFFF,0);
1455 }
1456
1457 /* Also check the menu item according to which we sort */
1458 CheckMenuRadioItem(hmenuArrange,
1459 0x30,
1460 0x100,
1461 m_sortInfo.nHeaderID + 0x30,
1462 MF_BYCOMMAND);
1463
1465 {
1468 }
1469 else
1470 {
1473
1474 if (GetAutoArrange() == S_OK)
1476 else
1478
1479 if (_GetSnapToGrid() == S_OK)
1481 else
1483 }
1484
1485
1486 return S_OK;
1487}
virtual HRESULT STDMETHODCALLTYPE GetAutoArrange()
Definition: CDefView.cpp:2990
HRESULT _GetSnapToGrid()
Definition: CDefView.cpp:2995
#define FCIDM_SHVIEW_ALIGNTOGRID
Definition: shresdef.h:826
#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 1416 of file CDefView.cpp.

1417{
1419 if (!hEditMenu)
1420 return E_FAIL;
1421
1422 HMENU hmenuContents = ::LoadMenuW(shell32_hInstance, L"MENU_003");
1423 if (!hmenuContents)
1424 return E_FAIL;
1425
1426 Shell_MergeMenus(hEditMenu, hmenuContents, 0, 0, 0xFFFF, 0);
1427
1428 ::DestroyMenu(hmenuContents);
1429
1430 return S_OK;
1431}
HMENU GetSubmenuByID(HMENU hmenu, UINT id)
Definition: CDefView.cpp:1356
#define FCIDM_MENU_EDIT
Definition: shlobj.h:624
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)

Referenced by DoActivate().

◆ FillFileMenu()

HRESULT CDefView::FillFileMenu ( )

Definition at line 1376 of file CDefView.cpp.

1377{
1379 if (!hFileMenu)
1380 return E_FAIL;
1381
1382 /* Cleanup the items added previously */
1383 for (int i = GetMenuItemCount(hFileMenu) - 1; i >= 0; i--)
1384 {
1385 UINT id = GetMenuItemID(hFileMenu, i);
1386 if (id < FCIDM_BROWSERFIRST || id > FCIDM_BROWSERLAST)
1387 DeleteMenu(hFileMenu, i, MF_BYPOSITION);
1388 }
1389
1390 /* In case we still have this left over, clean it up! */
1391 if (m_pFileMenu)
1392 {
1395 }
1396 /* Store the context menu in m_pFileMenu and keep it in order to invoke the selected command later on */
1399 return hr;
1400
1402
1403 hr = m_pFileMenu->QueryContextMenu(hmenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, 0);
1405 return hr;
1406
1407 // TODO: filter or something
1408
1409 Shell_MergeMenus(hFileMenu, hmenu, 0, 0, 0xFFFF, MM_ADDSEPARATOR | MM_SUBMENUSHAVEIDS);
1410
1412
1413 return S_OK;
1414}
virtual HRESULT STDMETHODCALLTYPE GetItemObject(UINT uItem, REFIID riid, void **ppv)
Definition: CDefView.cpp:2785
CComPtr< IContextMenu > m_pFileMenu
Definition: CDefView.cpp:146
@ SVGIO_SELECTION
Definition: shobjidl.idl:733
#define FCIDM_BROWSERLAST
Definition: shlobj.h:616
#define MM_SUBMENUSHAVEIDS
Definition: shlobj.h:2447
#define FCIDM_MENU_FILE
Definition: shlobj.h:623
#define FCIDM_SHVIEWFIRST
Definition: shlobj.h:573
#define MM_ADDSEPARATOR
Definition: shlobj.h:2446
#define FCIDM_SHVIEWLAST
Definition: shlobj.h:607
static HMENU hmenu
Definition: win.c:66

Referenced by OnInitMenuPopup().

◆ FillList()

HRESULT CDefView::FillList ( )

Definition at line 1058 of file CDefView.cpp.

1059{
1060 CComPtr<IEnumIDList> pEnumIDList;
1061 PITEMID_CHILD pidl;
1062 DWORD dwFetched;
1063 HRESULT hRes;
1064 HDPA hdpa;
1065 DWORD dFlags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS;
1066 DWORD dwValue, cbValue;
1067
1068 TRACE("%p\n", this);
1069
1070 /* determine if there is a setting to show all the hidden files/folders */
1071 dwValue = 1;
1072 cbValue = sizeof(dwValue);
1074 L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
1075 L"Hidden", NULL, &dwValue, &cbValue);
1076 if (dwValue == 1)
1077 {
1078 dFlags |= SHCONTF_INCLUDEHIDDEN;
1079 m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
1080 }
1081
1082 dwValue = 0;
1083 cbValue = sizeof(dwValue);
1085 L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
1086 L"ShowSuperHidden", NULL, &dwValue, &cbValue);
1087 if (dwValue)
1088 {
1089 dFlags |= SHCONTF_INCLUDESUPERHIDDEN;
1090 m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
1091 }
1092
1093 /* get the itemlist from the shfolder */
1094 hRes = m_pSFParent->EnumObjects(m_hWnd, dFlags, &pEnumIDList);
1095 if (hRes != S_OK)
1096 {
1097 if (hRes == S_FALSE)
1098 return(NOERROR);
1099 return(hRes);
1100 }
1101
1102 /* create a pointer array */
1103 hdpa = DPA_Create(16);
1104 if (!hdpa)
1105 {
1106 return(E_OUTOFMEMORY);
1107 }
1108
1109 /* copy the items into the array*/
1110 while((S_OK == pEnumIDList->Next(1, &pidl, &dwFetched)) && dwFetched)
1111 {
1112 if (DPA_InsertPtr(hdpa, 0x7fff, pidl) == -1)
1113 {
1114 SHFree(pidl);
1115 }
1116 }
1117
1118 /*turn the listview's redrawing off*/
1120
1121 DPA_DestroyCallback( hdpa, fill_list, this);
1122
1123 /* sort the array */
1124 if (m_pSF2Parent)
1125 {
1126 m_pSF2Parent->GetDefaultColumn(NULL, (ULONG*)&m_sortInfo.nHeaderID, NULL);
1127 }
1128 else
1129 {
1130 FIXME("no m_pSF2Parent\n");
1131 }
1133 _Sort();
1134
1136 {
1139 }
1140
1141 // load custom background image and custom text color
1144
1145 /*turn the listview's redrawing back on and force it to draw*/
1147
1149
1151 {
1152 // redraw now
1153 m_ListView.InvalidateRect(NULL, TRUE);
1154 }
1155
1157
1158 return S_OK;
1159}
#define SFVM_GET_CUSTOMVIEWINFO
#define SFVM_LISTREFRESHED
static INT CALLBACK fill_list(LPVOID ptr, LPVOID arg)
Definition: CDefView.cpp:1045
void UpdateListColors()
Definition: CDefView.cpp:731
BOOL _Sort()
Definition: CDefView.cpp:861
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 1433 of file CDefView.cpp.

1434{
1436 if (!hViewMenu)
1437 return E_FAIL;
1438
1440 if (!m_hMenuViewModes)
1441 return E_FAIL;
1442
1445
1446 return S_OK;
1447}
DWORD WINAPI SHMenuIndexFromID(HMENU hMenu, UINT uID)
Definition: ordinal.c:4425
#define FCIDM_MENU_VIEW_SEP_OPTIONS
Definition: shlobj.h:626
#define MM_DONTREMOVESEPS
Definition: shlobj.h:2448
#define FCIDM_MENU_VIEW
Definition: shlobj.h:625

Referenced by DoActivate().

◆ Freeze()

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

Implements IViewObject.

Definition at line 3908 of file CDefView.cpp.

3909{
3910 FIXME("Stub: this=%p\n", this);
3911
3912 return E_NOTIMPL;
3913}

◆ GetAdvise()

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

Implements IViewObject.

Definition at line 3934 of file CDefView.cpp.

3935{
3936 TRACE("this=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n", this, pAspects, pAdvf, ppAdvSink);
3937
3938 if (ppAdvSink)
3939 {
3940 *ppAdvSink = m_pAdvSink;
3941 m_pAdvSink.p->AddRef();
3942 }
3943
3944 if (pAspects)
3945 *pAspects = m_dwAspects;
3946
3947 if (pAdvf)
3948 *pAdvf = m_dwAdvf;
3949
3950 return S_OK;
3951}
CComPtr< IAdviseSink > m_pAdvSink
Definition: CDefView.cpp:134
ULONG AddRef()

◆ GetArrangeParam()

HRESULT STDMETHODCALLTYPE CDefView::GetArrangeParam ( LPARAM sort)
virtual

Definition at line 3171 of file CDefView.cpp.

3172{
3173 FIXME("(%p)->(%p) stub\n", this, sort);
3174 return E_NOTIMPL;
3175}
_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 2990 of file CDefView.cpp.

2991{
2992 return ((m_ListView.GetStyle() & LVS_AUTOARRANGE) ? S_OK : S_FALSE);
2993}

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 3901 of file CDefView.cpp.

3902{
3903 FIXME("Stub: this=%p\n", this);
3904
3905 return E_NOTIMPL;
3906}

◆ GetCurrentInfo()

HRESULT WINAPI CDefView::GetCurrentInfo ( LPFOLDERSETTINGS  pfs)
virtual

Implements IShellView.

Definition at line 2703 of file CDefView.cpp.

2704{
2705 TRACE("(%p)->(%p) vmode=%x flags=%x\n", this, lpfs,
2707
2708 if (!lpfs)
2709 return E_INVALIDARG;
2710
2711 *lpfs = m_FolderSettings;
2712 return S_OK;
2713}
#define E_INVALIDARG
Definition: ddrawi.h:101

◆ GetCurrentViewMode()

HRESULT STDMETHODCALLTYPE CDefView::GetCurrentViewMode ( UINT pViewMode)
virtual

Implements IFolderView.

Definition at line 2836 of file CDefView.cpp.

2837{
2838 TRACE("(%p)->(%p), stub\n", this, pViewMode);
2839
2840 if (!pViewMode)
2841 return E_INVALIDARG;
2842
2843 *pViewMode = m_FolderSettings.ViewMode;
2844 return S_OK;
2845}

◆ GetDefaultSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetDefaultSpacing ( POINT ppt)
virtual

Implements IFolderView.

Definition at line 2985 of file CDefView.cpp.

2986{
2987 return E_NOTIMPL;
2988}

◆ GetDragPoint()

HRESULT STDMETHODCALLTYPE CDefView::GetDragPoint ( POINT pt)
virtual

Definition at line 3303 of file CDefView.cpp.

3304{
3305 if (!pt)
3306 return E_INVALIDARG;
3307
3309 return S_OK;
3310}

◆ GetDropPoint()

HRESULT STDMETHODCALLTYPE CDefView::GetDropPoint ( POINT pt)
virtual

Definition at line 3312 of file CDefView.cpp.

3313{
3314 FIXME("(%p)->(%p) stub\n", this, pt);
3315 return E_NOTIMPL;
3316}

◆ GetFocusedItem()

HRESULT STDMETHODCALLTYPE CDefView::GetFocusedItem ( int piItem)
virtual

Implements IFolderView.

Definition at line 2938 of file CDefView.cpp.

2939{
2940 TRACE("(%p)->(%p)\n", this, piItem);
2941
2942 *piItem = m_ListView.GetNextItem(-1, LVNI_FOCUSED);
2943
2944 return S_OK;
2945}
#define LVNI_FOCUSED
Definition: commctrl.h:2423

◆ GetFolder()

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

Implements IFolderView.

Definition at line 2891 of file CDefView.cpp.

2892{
2893 if (m_pSFParent == NULL)
2894 return E_FAIL;
2895
2896 return m_pSFParent->QueryInterface(riid, ppv);
2897}
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 2785 of file CDefView.cpp.

2786{
2788
2789 TRACE("(%p)->(uItem=0x%08x,\n\tIID=%s, ppv=%p)\n", this, uItem, debugstr_guid(&riid), ppvOut);
2790
2791 if (!ppvOut)
2792 return E_INVALIDARG;
2793
2794 *ppvOut = NULL;
2795
2796 switch (uItem)
2797 {
2798 case SVGIO_BACKGROUND:
2799 if (IsEqualIID(riid, IID_IContextMenu))
2800 {
2803 return hr;
2804
2805 IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2806 }
2807 else if (IsEqualIID(riid, IID_IDispatch))
2808 {
2810 {
2813 return hr;
2814 }
2815 hr = m_pShellFolderViewDual->QueryInterface(riid, ppvOut);
2816 }
2817 break;
2818
2819 case SVGIO_SELECTION:
2820 GetSelections();
2821 hr = m_pSFParent->GetUIObjectOf(m_hWnd, m_cidl, m_apidl, riid, 0, ppvOut);
2823 return hr;
2824
2825 if (IsEqualIID(riid, IID_IContextMenu))
2826 IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2827
2828 break;
2829 }
2830
2831 TRACE("-- (%p)->(interface=%p)\n", this, *ppvOut);
2832
2833 return hr;
2834}
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
@ SVGIO_BACKGROUND
Definition: shobjidl.idl:732
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 2947 of file CDefView.cpp.

2948{
2949 if (!m_ListView)
2950 {
2951 ERR("!m_ListView\n");
2952 return E_FAIL;
2953 }
2954
2955 int lvIndex = LV_FindItemByPidl(pidl);
2956 if (lvIndex == -1 || ppt == NULL)
2957 return E_INVALIDARG;
2958
2959 m_ListView.GetItemPosition(lvIndex, ppt);
2960 return S_OK;
2961}
int LV_FindItemByPidl(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:912

◆ GetItemSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetItemSpacing ( ITEMSPACING spacing)
virtual

Definition at line 3348 of file CDefView.cpp.

3349{
3350 FIXME("(%p)->(%p) stub\n", this, spacing);
3351 return E_NOTIMPL;
3352}

◆ GetObject()

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

Definition at line 3202 of file CDefView.cpp.

3203{
3204 TRACE("(%p)->(%p %d)\n", this, pidl, item);
3205 return Item(item, pidl);
3206}
_In_ WDFCOLLECTION _In_ WDFOBJECT Item

◆ GetObjectCount()

HRESULT STDMETHODCALLTYPE CDefView::GetObjectCount ( UINT count)
virtual

Definition at line 3232 of file CDefView.cpp.

3233{
3234 TRACE("(%p)->(%p)\n", this, count);
3236 return S_OK;
3237}
GLuint GLuint GLsizei count
Definition: gl.h:1545

◆ GetSelectedCount()

HRESULT STDMETHODCALLTYPE CDefView::GetSelectedCount ( UINT count)
virtual

Definition at line 3265 of file CDefView.cpp.

3266{
3267 FIXME("(%p)->(%p) stub\n", this, count);
3268 return E_NOTIMPL;
3269}

◆ GetSelectedObjects()

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

Definition at line 3271 of file CDefView.cpp.

3272{
3273 TRACE("(%p)->(%p %p)\n", this, pidl, items);
3274
3275 *items = GetSelections();
3276
3277 if (*items)
3278 {
3279 *pidl = static_cast<PCUITEMID_CHILD *>(LocalAlloc(0, *items * sizeof(PCUITEMID_CHILD)));
3280 if (!*pidl)
3281 {
3282 return E_OUTOFMEMORY;
3283 }
3284
3285 /* it's documented that caller shouldn't PIDLs, only array itself */
3286 memcpy(*pidl, m_apidl, *items * sizeof(PCUITEMID_CHILD));
3287 }
3288
3289 return S_OK;
3290}
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 2929 of file CDefView.cpp.

2930{
2931 TRACE("(%p)->(%p)\n", this, piItem);
2932
2933 *piItem = m_ListView.GetSelectionMark();
2934
2935 return S_OK;
2936}
int GetSelectionMark()
Definition: rosctrls.h:156

◆ GetSelections()

UINT CDefView::GetSelections ( )

Definition at line 1510 of file CDefView.cpp.

1511{
1512 SHFree(m_apidl);
1513
1515 m_apidl = static_cast<PCUITEMID_CHILD*>(SHAlloc(m_cidl * sizeof(PCUITEMID_CHILD)));
1516 if (!m_apidl)
1517 {
1518 m_cidl = 0;
1519 return 0;
1520 }
1521
1522 TRACE("-- Items selected =%u\n", m_cidl);
1523
1525
1526 UINT i = 0;
1527 int lvIndex = -1;
1528 while ((lvIndex = m_ListView.GetNextItem(lvIndex, LVNI_SELECTED)) > -1)
1529 {
1530 m_apidl[i] = _PidlByItem(lvIndex);
1531 i++;
1532 if (i == m_cidl)
1533 break;
1534 TRACE("-- selected Item found\n");
1535 }
1536
1537 return m_cidl;
1538}
UINT GetSelectedCount()
Definition: rosctrls.h:136
LPVOID WINAPI SHAlloc(SIZE_T len)
Definition: shellole.c:304
#define ASSERT(a)
Definition: mode.c:44

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

◆ GetSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetSpacing ( POINT ppt)
virtual

Implements IFolderView.

Definition at line 2963 of file CDefView.cpp.

2964{
2965 TRACE("(%p)->(%p)\n", this, ppt);
2966
2967 if (!m_ListView)
2968 {
2969 ERR("!m_ListView\n");
2970 return S_FALSE;
2971 }
2972
2973 if (ppt)
2974 {
2975 SIZE spacing;
2976 m_ListView.GetItemSpacing(spacing);
2977
2978 ppt->x = spacing.cx;
2979 ppt->y = spacing.cy;
2980 }
2981
2982 return S_OK;
2983}
void GetItemSpacing(SIZE &spacing, BOOL bSmallIconView=FALSE)
Definition: rosctrls.h:166
LONG cx
Definition: kdterminal.h:27
LONG cy
Definition: kdterminal.h:28

◆ GetView()

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

Implements IShellView2.

Definition at line 3057 of file CDefView.cpp.

3058{
3059 FIXME("(%p)->(%p, %lu) stub\n", this, view_guid, view_type);
3060 return E_NOTIMPL;
3061}
view_type

◆ GetWindow()

HRESULT WINAPI CDefView::GetWindow ( HWND lphwnd)
virtual

Implements IOleWindow.

Definition at line 2567 of file CDefView.cpp.

2568{
2569 TRACE("(%p)\n", this);
2570
2571 *phWnd = m_hWnd;
2572
2573 return S_OK;
2574}

◆ GetWindowProc()

virtual WNDPROC CDefView::GetWindowProc ( )
inlinevirtual

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

Definition at line 340 of file CDefView.cpp.

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

◆ GetWndClassInfo()

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

Definition at line 327 of file CDefView.cpp.

328 {
329 static ATL::CWndClassInfo wc =
330 {
332 0, 0, NULL, NULL,
333 LoadCursor(NULL, IDC_ARROW), NULL, NULL, L"SHELLDLL_DefView", NULL
334 },
335 NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
336 };
337 return wc;
338 }
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: atlwin.h:1619
#define _T(x)
Definition: vfdio.h:22
#define IDC_ARROW
Definition: winuser.h:687
#define LoadCursor
Definition: winuser.h:5811
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5718
#define CS_PARENTDC
Definition: winuser.h:656

◆ GiveFeedback()

HRESULT WINAPI CDefView::GiveFeedback ( DWORD  dwEffect)
virtual

Implements IDropSource.

Definition at line 3883 of file CDefView.cpp.

3884{
3885 TRACE("(%p)\n", this);
3886
3888}
#define DRAGDROP_S_USEDEFAULTCURSORS
Definition: winerror.h:2648

◆ HandleRename()

HRESULT STDMETHODCALLTYPE CDefView::HandleRename ( LPCITEMIDLIST  new_pidl)
virtual

Definition at line 3150 of file CDefView.cpp.

3151{
3152 FIXME("(%p)->(%p) stub\n", this, new_pidl);
3153 return E_NOTIMPL;
3154}

◆ IncludeObject()

HRESULT CDefView::IncludeObject ( PCUITEMID_CHILD  pidl)

Definition at line 477 of file CDefView.cpp.

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

Referenced by fill_list().

◆ Initialize()

HRESULT WINAPI CDefView::Initialize ( IShellFolder shellFolder)

Definition at line 465 of file CDefView.cpp.

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

◆ InitList()

BOOL CDefView::InitList ( )

Definition at line 792 of file CDefView.cpp.

793{
795 WCHAR szTemp[50];
796 HIMAGELIST big_icons, small_icons;
797
798 TRACE("%p\n", this);
799
801
803
804 if (m_pSF2Parent)
805 {
806 for (int i = 0; 1; i++)
807 {
808 if (FAILED(m_pSF2Parent->GetDetailsOf(NULL, i, &sd)))
809 break;
810 StrRetToStrNW( szTemp, 50, &sd.str, NULL);
811 m_ListView.InsertColumn(i, szTemp, sd.fmt, sd.cxChar * 8);
812
813 InsertMenuW(m_hMenuArrangeModes, -1, MF_STRING, 0x30 + i, szTemp);
814 }
815
817 }
818 else
819 {
820 FIXME("no m_pSF2Parent\n");
821 }
822
823 Shell_GetImageLists(&big_icons, &small_icons);
825 m_ListView.SetImageList(small_icons, LVSIL_SMALL);
826
827 return TRUE;
828}
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,
LPCSTR  lpVerb,
POINT pt = NULL 
)

Definition at line 1540 of file CDefView.cpp.

1541{
1542 CMINVOKECOMMANDINFOEX cmi;
1543
1544 ZeroMemory(&cmi, sizeof(cmi));
1545 cmi.cbSize = sizeof(cmi);
1546 cmi.hwnd = m_hWnd;
1547 cmi.lpVerb = lpVerb;
1548
1549 if (GetKeyState(VK_SHIFT) & 0x8000)
1550 cmi.fMask |= CMIC_MASK_SHIFT_DOWN;
1551
1552 if (GetKeyState(VK_CONTROL) & 0x8000)
1553 cmi.fMask |= CMIC_MASK_CONTROL_DOWN;
1554
1555 if (pt)
1556 {
1557 cmi.fMask |= CMIC_MASK_PTINVOKE;
1558 cmi.ptInvoke = *pt;
1559 }
1560
1561 HRESULT hr = pCM->InvokeCommand((LPCMINVOKECOMMANDINFO)&cmi);
1562 // Most of our callers will do this, but in case they don't do that (File menu!)
1563 IUnknown_SetSite(pCM, NULL);
1564 pCM.Release();
1565
1567 return hr;
1568
1569 return S_OK;
1570}
if(dx< 0)
Definition: linetemp.h:194
#define VK_CONTROL
Definition: winuser.h:2202
#define VK_SHIFT
Definition: winuser.h:2201
SHORT WINAPI GetKeyState(_In_ int)

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

◆ IsBkDropTarget()

HRESULT STDMETHODCALLTYPE CDefView::IsBkDropTarget ( IDropTarget drop_target)
virtual

Definition at line 3330 of file CDefView.cpp.

3331{
3332 FIXME("(%p)->(%p) stub\n", this, drop_target);
3333 return E_NOTIMPL;
3334}

◆ IsDropOnSource()

HRESULT STDMETHODCALLTYPE CDefView::IsDropOnSource ( IDropTarget drop_target)
virtual

Definition at line 3292 of file CDefView.cpp.

3293{
3294 if ((m_iDragOverItem == -1 || m_pCurDropTarget == NULL) &&
3296 {
3297 return S_OK;
3298 }
3299
3300 return S_FALSE;
3301}

Referenced by Drop().

◆ Item()

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

Implements IFolderView.

Definition at line 2899 of file CDefView.cpp.

2900{
2901 PCUITEMID_CHILD pidl = _PidlByItem(iItemIndex);
2902 if (pidl)
2903 {
2904 *ppidl = ILClone(pidl);
2905 return S_OK;
2906 }
2907
2908 *ppidl = 0;
2909 return E_INVALIDARG;
2910}
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:228

◆ ItemCount()

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

Implements IFolderView.

Definition at line 2912 of file CDefView.cpp.

2913{
2914 TRACE("(%p)->(%u %p)\n", this, uFlags, pcItems);
2915
2916 if (uFlags != SVGIO_ALLVIEW)
2917 FIXME("some flags unsupported, %x\n", uFlags & ~SVGIO_ALLVIEW);
2918
2920
2921 return S_OK;
2922}
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 2924 of file CDefView.cpp.

2925{
2926 return E_NOTIMPL;
2927}

◆ ListViewCompareItems()

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

Definition at line 845 of file CDefView.cpp.

846{
847 PCUIDLIST_RELATIVE pidl1 = reinterpret_cast<PCUIDLIST_RELATIVE>(lParam1);
848 PCUIDLIST_RELATIVE pidl2 = reinterpret_cast<PCUIDLIST_RELATIVE>(lParam2);
849 CDefView *pThis = reinterpret_cast<CDefView*>(lpData);
850
851 HRESULT hres = pThis->m_pSFParent->CompareIDs(pThis->m_sortInfo.nHeaderID, pidl1, pidl2);
853 return 0;
854
855 SHORT nDiff = HRESULT_CODE(hres);
856 if (!pThis->m_sortInfo.bIsAscending)
857 nDiff = -nDiff;
858 return nDiff;
859}
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 930 of file CDefView.cpp.

931{
932 LVITEMW lvItem;
933
934 TRACE("(%p)(pidl=%p)\n", this, pidl);
935
937
939 return -1;
940
941 lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM; /*set the mask*/
942 lvItem.iItem = m_ListView.GetItemCount(); /*add the item to the end of the list*/
943 lvItem.iSubItem = 0;
944 lvItem.lParam = reinterpret_cast<LPARAM>(ILClone(pidl)); /*set the item's data*/
945 lvItem.pszText = LPSTR_TEXTCALLBACKW; /*get text on a callback basis*/
946 lvItem.iImage = I_IMAGECALLBACK; /*get the image on a callback basis*/
947 lvItem.stateMask = LVIS_CUT;
948
949 return m_ListView.InsertItem(&lvItem);
950}
#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 955 of file CDefView.cpp.

956{
957 int nIndex;
958
959 TRACE("(%p)(pidl=%p)\n", this, pidl);
960
962
963 nIndex = LV_FindItemByPidl(pidl);
964 if (nIndex < 0)
965 return FALSE;
966
967 return m_ListView.DeleteItem(nIndex);
968}
BOOL DeleteItem(int i)
Definition: rosctrls.h:101

Referenced by OnChangeNotify().

◆ LV_FindItemByPidl()

int CDefView::LV_FindItemByPidl ( PCUITEMID_CHILD  pidl)

Definition at line 912 of file CDefView.cpp.

913{
915
916 int cItems = m_ListView.GetItemCount();
917
918 for (int i = 0; i<cItems; i++)
919 {
920 PCUITEMID_CHILD currentpidl = _PidlByItem(i);
921 if (ILIsEqual(pidl, currentpidl))
922 return i;
923 }
924 return -1;
925}
BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:539

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 1013 of file CDefView.cpp.

1014{
1015 int nItem;
1016 LVITEMW lvItem;
1017
1018 TRACE("(%p)(pidl=%p)\n", this, pidl);
1019
1021
1022 nItem = LV_FindItemByPidl(pidl);
1023
1024 if (-1 != nItem)
1025 {
1026 lvItem.mask = LVIF_IMAGE;
1027 lvItem.iItem = nItem;
1028 lvItem.iSubItem = 0;
1030 m_ListView.SetItem(&lvItem);
1031 m_ListView.Update(nItem);
1032 return TRUE;
1033 }
1034
1035 return FALSE;
1036}
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 973 of file CDefView.cpp.

974{
975 int nItem;
976 LVITEMW lvItem;
977
978 TRACE("(%p)(pidlold=%p pidlnew=%p)\n", this, pidlOld, pidlNew);
979
981
982 nItem = LV_FindItemByPidl(pidlOld);
983
984 if ( -1 != nItem )
985 {
986 lvItem.mask = LVIF_PARAM; /* only the pidl */
987 lvItem.iItem = nItem;
988 lvItem.iSubItem = 0;
989 m_ListView.GetItem(&lvItem);
990
991 LPVOID oldPidl = reinterpret_cast<LPVOID>(lvItem.lParam); /* Store the old pidl until the new item is replaced */
992
993 lvItem.mask = LVIF_PARAM | LVIF_IMAGE | LVIF_TEXT;
994 lvItem.iItem = nItem;
995 lvItem.iSubItem = 0;
996 lvItem.lParam = reinterpret_cast<LPARAM>(ILClone(pidlNew)); /* set the item's data */
999 m_ListView.SetItem(&lvItem);
1000 m_ListView.Update(nItem);
1001
1002 SHFree(oldPidl); /* Now that the new item is in place, we can safely release the old pidl */
1003
1004 return TRUE; /* FIXME: better handling */
1005 }
1006
1007 return FALSE;
1008}
BOOL GetItem(LV_ITEM *pitem)
Definition: rosctrls.h:106

Referenced by OnChangeNotify().

◆ MoveIcons()

HRESULT STDMETHODCALLTYPE CDefView::MoveIcons ( IDataObject obj)
virtual

Definition at line 3318 of file CDefView.cpp.

3319{
3320 TRACE("(%p)->(%p)\n", this, obj);
3321 return E_NOTIMPL;
3322}

◆ OnActivate()

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

Definition at line 1871 of file CDefView.cpp.

1872{
1874 return 0;
1875}
void DoActivate(UINT uState)
Definition: CDefView.cpp:18