ReactOS  0.4.15-dev-5463-g138eb58
CDefView Class Reference
Inheritance diagram for CDefView:
Collaboration diagram for CDefView:

Public Member Functions

 CDefView ()
 
 ~CDefView ()
 
HRESULT WINAPI Initialize (IShellFolder *shellFolder)
 
HRESULT IncludeObject (PCUITEMID_CHILD pidl)
 
HRESULT OnDefaultCommand ()
 
HRESULT OnStateChange (UINT uFlags)
 
void UpdateStatusbar ()
 
void CheckToolbar ()
 
BOOL CreateList ()
 
void UpdateListColors ()
 
BOOL InitList ()
 
PCUITEMID_CHILD _PidlByItem (int i)
 
PCUITEMID_CHILD _PidlByItem (LVITEM &lvItem)
 
int LV_FindItemByPidl (PCUITEMID_CHILD pidl)
 
int LV_AddItem (PCUITEMID_CHILD pidl)
 
BOOLEAN LV_DeleteItem (PCUITEMID_CHILD pidl)
 
BOOLEAN LV_RenameItem (PCUITEMID_CHILD pidlOld, PCUITEMID_CHILD pidlNew)
 
BOOLEAN LV_ProdItem (PCUITEMID_CHILD pidl)
 
HRESULT FillList ()
 
HRESULT FillFileMenu ()
 
HRESULT FillEditMenu ()
 
HRESULT FillViewMenu ()
 
HRESULT FillArrangeAsMenu (HMENU hmenuArrange)
 
HRESULT CheckViewMode (HMENU hmenuView)
 
UINT GetSelections ()
 
HRESULT OpenSelectedItems ()
 
void OnDeactivate ()
 
void DoActivate (UINT uState)
 
HRESULT drag_notify_subitem (DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
 
HRESULT InvokeContextMenuCommand (CComPtr< IContextMenu > &pCM, UINT uCommand, POINT *pt)
 
LRESULT OnExplorerCommand (UINT uCommand, BOOL bUseSelection)
 
virtual HRESULT STDMETHODCALLTYPE GetWindow (HWND *lphwnd)
 
virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp (BOOL fEnterMode)
 
virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator (MSG *pmsg)
 
virtual HRESULT STDMETHODCALLTYPE EnableModeless (BOOL fEnable)
 
virtual HRESULT STDMETHODCALLTYPE UIActivate (UINT uState)
 
virtual HRESULT STDMETHODCALLTYPE Refresh ()
 
virtual HRESULT STDMETHODCALLTYPE CreateViewWindow (IShellView *psvPrevious, LPCFOLDERSETTINGS pfs, IShellBrowser *psb, RECT *prcView, HWND *phWnd)
 
virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow ()
 
virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo (LPFOLDERSETTINGS pfs)
 
virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages (DWORD dwReserved, LPFNSVADDPROPSHEETPAGE pfn, LPARAM lparam)
 
virtual HRESULT STDMETHODCALLTYPE SaveViewState ()
 
virtual HRESULT STDMETHODCALLTYPE SelectItem (PCUITEMID_CHILD pidlItem, SVSIF uFlags)
 
virtual HRESULT STDMETHODCALLTYPE GetItemObject (UINT uItem, REFIID riid, void **ppv)
 
virtual HRESULT STDMETHODCALLTYPE GetView (SHELLVIEWID *view_guid, ULONG view_type)
 
virtual HRESULT STDMETHODCALLTYPE CreateViewWindow2 (LPSV2CVW2_PARAMS view_params)
 
virtual HRESULT STDMETHODCALLTYPE HandleRename (LPCITEMIDLIST new_pidl)
 
virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItem (LPCITEMIDLIST item, UINT flags, POINT *point)
 
virtual HRESULT STDMETHODCALLTYPE CreateViewWindow3 (IShellBrowser *psb, IShellView *psvPrevious, SV3CVW3_FLAGS view_flags, FOLDERFLAGS mask, FOLDERFLAGS flags, FOLDERVIEWMODE mode, const SHELLVIEWID *view_id, RECT *prcView, HWND *hwnd)
 
virtual HRESULT STDMETHODCALLTYPE GetCurrentViewMode (UINT *pViewMode)
 
virtual HRESULT STDMETHODCALLTYPE SetCurrentViewMode (UINT ViewMode)
 
virtual HRESULT STDMETHODCALLTYPE GetFolder (REFIID riid, void **ppv)
 
virtual HRESULT STDMETHODCALLTYPE Item (int iItemIndex, PITEMID_CHILD *ppidl)
 
virtual HRESULT STDMETHODCALLTYPE ItemCount (UINT uFlags, int *pcItems)
 
virtual HRESULT STDMETHODCALLTYPE Items (UINT uFlags, REFIID riid, void **ppv)
 
virtual HRESULT STDMETHODCALLTYPE GetSelectionMarkedItem (int *piItem)
 
virtual HRESULT STDMETHODCALLTYPE GetFocusedItem (int *piItem)
 
virtual HRESULT STDMETHODCALLTYPE GetItemPosition (PCUITEMID_CHILD pidl, POINT *ppt)
 
virtual HRESULT STDMETHODCALLTYPE GetSpacing (POINT *ppt)
 
virtual HRESULT STDMETHODCALLTYPE GetDefaultSpacing (POINT *ppt)
 
virtual HRESULT STDMETHODCALLTYPE GetAutoArrange ()
 
virtual HRESULT STDMETHODCALLTYPE SelectItem (int iItem, DWORD dwFlags)
 
virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItems (UINT cidl, PCUITEMID_CHILD_ARRAY apidl, POINT *apt, DWORD dwFlags)
 
virtual HRESULT STDMETHODCALLTYPE Rearrange (LPARAM sort)
 
virtual HRESULT STDMETHODCALLTYPE GetArrangeParam (LPARAM *sort)
 
virtual HRESULT STDMETHODCALLTYPE ArrangeGrid ()
 
virtual HRESULT STDMETHODCALLTYPE AutoArrange ()
 
virtual HRESULT STDMETHODCALLTYPE AddObject (PITEMID_CHILD pidl, UINT *item)
 
virtual HRESULT STDMETHODCALLTYPE GetObject (PITEMID_CHILD *pidl, UINT item)
 
virtual HRESULT STDMETHODCALLTYPE RemoveObject (PITEMID_CHILD pidl, UINT *item)
 
virtual HRESULT STDMETHODCALLTYPE GetObjectCount (UINT *count)
 
virtual HRESULT STDMETHODCALLTYPE SetObjectCount (UINT count, UINT flags)
 
virtual HRESULT STDMETHODCALLTYPE UpdateObject (PITEMID_CHILD pidl_old, PITEMID_CHILD pidl_new, UINT *item)
 
virtual HRESULT STDMETHODCALLTYPE RefreshObject (PITEMID_CHILD pidl, UINT *item)
 
virtual HRESULT STDMETHODCALLTYPE SetRedraw (BOOL redraw)
 
virtual HRESULT STDMETHODCALLTYPE GetSelectedCount (UINT *count)
 
virtual HRESULT STDMETHODCALLTYPE GetSelectedObjects (PCUITEMID_CHILD **pidl, UINT *items)
 
virtual HRESULT STDMETHODCALLTYPE IsDropOnSource (IDropTarget *drop_target)
 
virtual HRESULT STDMETHODCALLTYPE GetDragPoint (POINT *pt)
 
virtual HRESULT STDMETHODCALLTYPE GetDropPoint (POINT *pt)
 
virtual HRESULT STDMETHODCALLTYPE MoveIcons (IDataObject *obj)
 
virtual HRESULT STDMETHODCALLTYPE SetItemPos (PCUITEMID_CHILD pidl, POINT *pt)
 
virtual HRESULT STDMETHODCALLTYPE IsBkDropTarget (IDropTarget *drop_target)
 
virtual HRESULT STDMETHODCALLTYPE SetClipboard (BOOL move)
 
virtual HRESULT STDMETHODCALLTYPE SetPoints (IDataObject *obj)
 
virtual HRESULT STDMETHODCALLTYPE GetItemSpacing (ITEMSPACING *spacing)
 
virtual HRESULT STDMETHODCALLTYPE SetCallback (IShellFolderViewCB *new_cb, IShellFolderViewCB **old_cb)
 
virtual HRESULT STDMETHODCALLTYPE Select (UINT flags)
 
virtual HRESULT STDMETHODCALLTYPE QuerySupport (UINT *support)
 
virtual HRESULT STDMETHODCALLTYPE SetAutomationObject (IDispatch *disp)
 
virtual HRESULT STDMETHODCALLTYPE QueryStatus (const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
 
virtual HRESULT STDMETHODCALLTYPE Exec (const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
 
virtual HRESULT STDMETHODCALLTYPE DragEnter (IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
 
virtual HRESULT STDMETHODCALLTYPE DragOver (DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
 
virtual HRESULT STDMETHODCALLTYPE DragLeave ()
 
virtual HRESULT STDMETHODCALLTYPE Drop (IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
 
virtual HRESULT STDMETHODCALLTYPE QueryContinueDrag (BOOL fEscapePressed, DWORD grfKeyState)
 
virtual HRESULT STDMETHODCALLTYPE GiveFeedback (DWORD dwEffect)
 
virtual HRESULT STDMETHODCALLTYPE Draw (DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL(STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue)
 
virtual HRESULT STDMETHODCALLTYPE GetColorSet (DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE **ppColorSet)
 
virtual HRESULT STDMETHODCALLTYPE Freeze (DWORD dwDrawAspect, LONG lindex, void *pvAspect, DWORD *pdwFreeze)
 
virtual HRESULT STDMETHODCALLTYPE Unfreeze (DWORD dwFreeze)
 
virtual HRESULT STDMETHODCALLTYPE SetAdvise (DWORD aspects, DWORD advf, IAdviseSink *pAdvSink)
 
virtual HRESULT STDMETHODCALLTYPE GetAdvise (DWORD *pAspects, DWORD *pAdvf, IAdviseSink **ppAdvSink)
 
virtual HRESULT STDMETHODCALLTYPE QueryService (REFGUID guidService, REFIID riid, void **ppvObject)
 
LRESULT OnShowWindow (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnGetDlgCode (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnDestroy (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnEraseBackground (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnPrintClient (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSysColorChange (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnGetShellBrowser (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnNCCreate (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnCreate (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnContextMenu (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSize (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnActivate (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSetFocus (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnKillFocus (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnCommand (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnNotify (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnChangeNotify (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnCustomItem (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSettingChange (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnInitMenuPopup (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
virtual VOID OnFinalMessage (HWND) override
 
virtual WNDPROC GetWindowProc ()
 
- Public Member Functions inherited from ATL::CWindowImpl< CDefView, CWindow, CControlWinTraits >
HWND Create (HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
 
- Public Member Functions inherited from ATL::CWindowImplBaseT< CWindow, CControlWinTraits >
 CWindowImplBaseT ()
 
BOOL SubclassWindow (HWND hWnd)
 
HWND UnsubclassWindow (BOOL bForce=FALSE)
 
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< CWindow >
 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 HandleRename ([in] PCUITEMID_CHILD new_pidl)
 
HRESULT SelectAndPositionItem ([in] PCUITEMID_CHILD item, [in] UINT flags, [in] POINT *point)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
- Public Member Functions inherited from 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 RemoteGetColorSet ([in] DWORD dwDrawAspect, [in] LONG lindex, [in] ULONG_PTR pvAspect, [in, unique] DVTARGETDEVICE *ptd, [in] ULONG_PTR hicTargetDev, [out] LOGPALETTE **ppColorSet)
 
HRESULT RemoteFreeze ([in] DWORD dwDrawAspect, [in] LONG lindex, [in] ULONG_PTR pvAspect, [out] DWORD *pdwFreeze)
 
HRESULT RemoteGetAdvise ([out] DWORD *pAspects, [out] DWORD *pAdvf, [out] IAdviseSink **ppAdvSink)
 
- Public Member Functions inherited from IServiceProvider
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< CWindow, CControlWinTraits >
static DWORD GetWndStyle (DWORD dwStyle)
 
static DWORD GetWndExStyle (DWORD dwExStyle)
 
static LRESULT CALLBACK StartWindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK WindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
- Static Public Member Functions inherited from ATL::CWindow
static LPCTSTR GetWndClassName ()
 
static LRESULT SendMessage (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 
- Static Public Member Functions inherited from ATL::CComObjectRootBase
static void WINAPI ObjectMain (bool)
 
static const struct _ATL_CATMAP_ENTRYGetCategoryMap ()
 
static HRESULT WINAPI InternalQueryInterface (void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
 

Private Member Functions

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

Private Attributes

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

Additional Inherited Members

- Public Types inherited from ATL::CWindowImplRoot< CWindow >
enum  
 
- 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
 
- 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< CWindow, CControlWinTraits >
WNDPROC m_pfnSuperWindowProc
 
- Public Attributes inherited from ATL::CWindowImplRoot< CWindow >
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 IShellView
SVSI_NOSTATECHANGE typedef UINT SVSIF
 
- Public Attributes inherited from IDropTarget
const DWORD MK_ALT = 0x20
 
const DWORD DROPEFFECT_NONE = 0
 
const DWORD DROPEFFECT_COPY = 1
 
const DWORD DROPEFFECT_MOVE = 2
 
const DWORD DROPEFFECT_LINK = 4
 
const DWORD DROPEFFECT_SCROLL = 0x80000000
 
const DWORD DD_DEFSCROLLINSET = 11
 
const DWORD DD_DEFSCROLLDELAY = 50
 
const DWORD DD_DEFSCROLLINTERVAL = 50
 
const DWORD DD_DEFDRAGDELAY = 200
 
const DWORD DD_DEFDRAGMINDIST = 2
 
- Static Public Attributes inherited from ATL::CWindow
static RECT rcDefault
 

Detailed Description

Definition at line 98 of file CDefView.cpp.

Constructor & Destructor Documentation

◆ CDefView()

CDefView::CDefView ( )

Definition at line 411 of file CDefView.cpp.

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

◆ ~CDefView()

CDefView::~CDefView ( )

Definition at line 444 of file CDefView.cpp.

445 {
446  TRACE(" destroying IShellView(%p)\n", this);
447 
449 
451  {
454  }
455 
456  if (m_hWnd)
457  {
459  }
460 
461  SHFree(m_apidl);
462 }
virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow()
Definition: CDefView.cpp:2579
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
SFVM_CUSTOMVIEWINFO_DATA m_viewinfo_data
Definition: CDefView.cpp:153
#define TRACE(s)
Definition: solgame.cpp:4
#define SFVM_VIEWRELEASE
HWND m_hWnd
Definition: atlwin.h:267
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:127
#define NULL
Definition: types.h:112
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:326
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3886

Member Function Documentation

◆ _DoFolderViewCB()

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

Definition at line 3886 of file CDefView.cpp.

3887 {
3888  HRESULT hr = E_NOTIMPL;
3889 
3891  {
3892  hr = m_pShellFolderViewCB->MessageSFVCB(uMsg, wParam, lParam);
3893  }
3894 
3895  return hr;
3896 }
HRESULT hr
Definition: shlfolder.c:183
WPARAM wParam
Definition: combotst.c:138
CComPtr< IShellFolderViewCB > m_pShellFolderViewCB
Definition: CDefView.cpp:113
LONG HRESULT
Definition: typedefs.h:79
#define E_NOTIMPL
Definition: ddrawi.h:99
LPARAM lParam
Definition: combotst.c:139

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

◆ _FindInsertableIndexFromPoint()

INT CDefView::_FindInsertableIndexFromPoint ( POINT  pt)
private

Definition at line 3527 of file CDefView.cpp.

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

Referenced by _MoveSelectionOnAutoArrange().

◆ _ForceStatusBarResize()

void CDefView::_ForceStatusBarResize ( )
private

Definition at line 3623 of file CDefView.cpp.

3624 {
3625  /* Get the handle for the status bar */
3626  HWND fStatusBar;
3627  m_pShellBrowser->GetControlWindow(FCW_STATUS, &fStatusBar);
3628 
3629  /* Get the size of our status bar */
3630  RECT statusBarSize;
3631  ::GetWindowRect(fStatusBar, &statusBarSize);
3632 
3633  /* Resize the status bar */
3634  _HandleStatusBarResize(statusBarSize.right - statusBarSize.left);
3635 }
LONG left
Definition: windef.h:306
void _HandleStatusBarResize(int width)
Definition: CDefView.cpp:3597
LONG right
Definition: windef.h:308
BOOL GetWindowRect(LPRECT lpRect) const
Definition: atlwin.h:810
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:114

Referenced by OnCreate(), and UIActivate().

◆ _GetSnapToGrid()

HRESULT CDefView::_GetSnapToGrid ( )
private

Definition at line 2904 of file CDefView.cpp.

2905 {
2906  DWORD dwExStyle = (DWORD)m_ListView.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
2907  return ((dwExStyle & LVS_EX_SNAPTOGRID) ? S_OK : S_FALSE);
2908 }
#define DWORD
Definition: nt_native.h:44
#define LVS_EX_SNAPTOGRID
Definition: commctrl.h:2748
#define S_FALSE
Definition: winerror.h:2357
CListView m_ListView
Definition: CDefView.cpp:117
unsigned long DWORD
Definition: ntddk_ex.h:95
#define LVM_GETEXTENDEDLISTVIEWSTYLE
Definition: commctrl.h:2727
#define S_OK
Definition: intsafe.h:52

Referenced by FillArrangeAsMenu(), and OnCommand().

◆ _HandleStatusBarResize()

void CDefView::_HandleStatusBarResize ( int  width)
private

Definition at line 3597 of file CDefView.cpp.

3598 {
3599  LRESULT lResult;
3600 
3602  {
3603  int nPartArray[] = {-1};
3604  m_pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETPARTS, _countof(nPartArray), (LPARAM)nPartArray, &lResult);
3605  return;
3606  }
3607 
3608  int nFileSizePartLength = 125;
3609  const int nLocationPartLength = 150;
3610  const int nRightPartsLength = nFileSizePartLength + nLocationPartLength;
3611  int nObjectsPartLength = nWidth - nRightPartsLength;
3612 
3613  /* If the window is small enough just divide each part into thirds
3614  * This is the behavior of Windows Server 2003. */
3615  if (nObjectsPartLength <= nLocationPartLength)
3616  nObjectsPartLength = nFileSizePartLength = nWidth / 3;
3617 
3618  int nPartArray[] = {nObjectsPartLength, nObjectsPartLength + nFileSizePartLength, -1};
3619 
3620  m_pShellBrowser->SendControlMsg(FCW_STATUS, SB_SETPARTS, _countof(nPartArray), (LPARAM)nPartArray, &lResult);
3621 }
BOOL m_isParentFolderSpecial
Definition: CDefView.cpp:149
LONG_PTR LPARAM
Definition: windef.h:208
#define _countof(array)
Definition: sndvol32.h:68
#define SB_SETPARTS
Definition: commctrl.h:1954
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:114
LONG_PTR LRESULT
Definition: windef.h:209

Referenced by _ForceStatusBarResize(), and OnSize().

◆ _MergeToolbar()

HRESULT CDefView::_MergeToolbar ( )
private

Definition at line 3859 of file CDefView.cpp.

3860 {
3862  HRESULT hr = S_OK;
3863 
3864  hr = IUnknown_QueryService(m_pShellBrowser, IID_IExplorerToolbar, IID_PPV_ARG(IExplorerToolbar, &ptb));
3865  if (FAILED(hr))
3866  return hr;
3867 
3868  m_Category = CGID_DefViewFrame;
3869 
3870  hr = ptb->SetCommandTarget(static_cast<IOleCommandTarget*>(this), &m_Category, 0);
3871  if (FAILED(hr))
3872  return hr;
3873 
3874  if (hr == S_FALSE)
3875  return S_OK;
3876 
3877 #if 0
3878  hr = ptb->AddButtons(&m_Category, buttonsCount, buttons);
3879  if (FAILED(hr))
3880  return hr;
3881 #endif
3882 
3883  return S_OK;
3884 }
HRESULT hr
Definition: shlfolder.c:183
#define IID_PPV_ARG(Itype, ppType)
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1494
#define S_FALSE
Definition: winerror.h:2357
LONG HRESULT
Definition: typedefs.h:79
#define S_OK
Definition: intsafe.h:52
HWND buttons[5]
Definition: sndrec32.cpp:40
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:114
CLSID m_Category
Definition: CDefView.cpp:151

Referenced by CreateViewWindow3().

◆ _MoveSelectionOnAutoArrange()

void CDefView::_MoveSelectionOnAutoArrange ( POINT  pt)
private

Definition at line 3651 of file CDefView.cpp.

3652 {
3653  // get insertable index from position
3654  INT iPosition = _FindInsertableIndexFromPoint(pt);
3655 
3656  // create identity mapping of indexes
3658  INT nCount = m_ListView.GetItemCount();
3659  for (INT i = 0; i < nCount; ++i)
3660  {
3661  array.Add(i);
3662  }
3663 
3664  // re-ordering mapping
3665  INT iItem = -1;
3666  while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3667  {
3668  INT iFrom = iItem, iTo = iPosition;
3669  if (iFrom < iTo)
3670  --iTo;
3671  if (iFrom >= nCount)
3672  iFrom = nCount - 1;
3673  if (iTo >= nCount)
3674  iTo = nCount - 1;
3675 
3676  // shift indexes by swapping (like a bucket relay)
3677  if (iFrom < iTo)
3678  {
3679  for (INT i = iFrom; i < iTo; ++i)
3680  {
3681  // swap array[i] and array[i + 1]
3682  INT tmp = array[i];
3683  array[i] = array[i + 1];
3684  array[i + 1] = tmp;
3685  }
3686  }
3687  else
3688  {
3689  for (INT i = iFrom; i > iTo; --i)
3690  {
3691  // swap array[i] and array[i - 1]
3692  INT tmp = array[i];
3693  array[i] = array[i - 1];
3694  array[i - 1] = tmp;
3695  }
3696  }
3697  }
3698 
3699  // create mapping (ListView's lParam to index) from array
3701  for (INT i = 0; i < nCount; ++i)
3702  {
3704  map.Add(lParam, i);
3705  }
3706 
3707  // finally sort
3709 }
DWORD_PTR GetItemData(int i)
Definition: rosctrls.h:204
#define pt(x, y)
Definition: drawing.c:79
int GetNextItem(int i, WORD flags)
Definition: rosctrls.h:161
#define LVNI_SELECTED
Definition: commctrl.h:2424
int GetItemCount()
Definition: rosctrls.h:121
int32_t INT
Definition: typedefs.h:58
static INT CALLBACK SelectionMoveCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
Definition: CDefView.cpp:3640
LONG_PTR LPARAM
Definition: windef.h:208
CListView m_ListView
Definition: CDefView.cpp:117
INT _FindInsertableIndexFromPoint(POINT pt)
Definition: CDefView.cpp:3527
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
LPARAM lParam
Definition: combotst.c:139
BOOL SortItems(PFNLVCOMPARE pfnCompare, PVOID lParam)
Definition: rosctrls.h:141
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 GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum GLint const GLfloat GLenum GLint const GLushort GLint GLint GLsizei GLsizei GLenum GLsizei GLsizei GLenum GLenum const GLvoid GLenum GLdouble GLenum GLint GLenum GLenum GLint GLenum GLenum GLfloat GLenum GLenum GLfloat GLenum GLfloat GLenum GLushort const GLubyte GLenum GLenum GLenum GLint GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLvoid GLenum GLenum GLint GLenum GLint GLenum GLint GLuint GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble const GLfloat GLenum const GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLint GLint GLsizei GLsizei GLenum GLuint GLenum array
Definition: glfuncs.h:320
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 GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum map
Definition: glfuncs.h:262

Referenced by Drop().

◆ _PidlByItem() [1/2]

PCUITEMID_CHILD CDefView::_PidlByItem ( int  i)

Definition at line 868 of file CDefView.cpp.

869 {
870  return reinterpret_cast<PCUITEMID_CHILD>(m_ListView.GetItemData(i));
871 }
DWORD_PTR GetItemData(int i)
Definition: rosctrls.h:204
CListView m_ListView
Definition: CDefView.cpp:117
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

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

◆ _PidlByItem() [2/2]

PCUITEMID_CHILD CDefView::_PidlByItem ( LVITEM lvItem)

Definition at line 873 of file CDefView.cpp.

874 {
875  return reinterpret_cast<PCUITEMID_CHILD>(lvItem.lParam);
876 }

◆ _Sort()

BOOL CDefView::_Sort ( )
private

Definition at line 834 of file CDefView.cpp.

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

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

◆ AddObject()

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

Definition at line 3097 of file CDefView.cpp.

3098 {
3099  TRACE("(%p)->(%p %p)\n", this, pidl, item);
3100  *item = LV_AddItem(pidl);
3101  return (int)*item >= 0 ? S_OK : E_OUTOFMEMORY;
3102 }
int LV_AddItem(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:897
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:52
static ATOM item
Definition: dde.c:856

◆ AddPropertySheetPages()

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

Implements IShellView.

Definition at line 2639 of file CDefView.cpp.

2640 {
2641  FIXME("(%p) stub\n", this);
2642 
2643  return E_NOTIMPL;
2644 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ ArrangeGrid()

HRESULT STDMETHODCALLTYPE CDefView::ArrangeGrid ( )
virtual

Definition at line 3084 of file CDefView.cpp.

3085 {
3087  return S_OK;
3088 }
DWORD SetExtendedListViewStyle(DWORD dw, DWORD dwMask=0)
Definition: rosctrls.h:47
#define LVS_EX_SNAPTOGRID
Definition: commctrl.h:2748
CListView m_ListView
Definition: CDefView.cpp:117
#define S_OK
Definition: intsafe.h:52

Referenced by OnCommand().

◆ AutoArrange()

HRESULT STDMETHODCALLTYPE CDefView::AutoArrange ( )
virtual

Definition at line 3090 of file CDefView.cpp.

3091 {
3092  m_ListView.ModifyStyle(0, LVS_AUTOARRANGE);
3094  return S_OK;
3095 }
BOOL Arrange(UINT nCode)
Definition: rosctrls.h:241
#define LVS_AUTOARRANGE
Definition: commctrl.h:2272
CListView m_ListView
Definition: CDefView.cpp:117
#define S_OK
Definition: intsafe.h:52
#define LVA_DEFAULT
Definition: commctrl.h:2527

Referenced by OnCommand().

◆ CheckToolbar()

void CDefView::CheckToolbar ( )

Definition at line 523 of file CDefView.cpp.

524 {
525  LRESULT result;
526 
527  TRACE("\n");
528 
529  if (m_pCommDlgBrowser != NULL)
530  {
531  m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_CHECKBUTTON,
533  m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_CHECKBUTTON,
535  m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_ENABLEBUTTON,
537  m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_ENABLEBUTTON,
539  }
540 }
#define FCIDM_TB_REPORTVIEW
Definition: shresdef.h:833
GLuint64EXT * result
Definition: glext.h:11304
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:119
#define TRUE
Definition: types.h:120
CComPtr< ICommDlgBrowser > m_pCommDlgBrowser
Definition: CDefView.cpp:115
#define FALSE
Definition: types.h:117
#define TB_ENABLEBUTTON
Definition: commctrl.h:1042
#define TRACE(s)
Definition: solgame.cpp:4
#define TB_CHECKBUTTON
Definition: commctrl.h:1043
#define FCIDM_TB_SMALLICON
Definition: shresdef.h:832
#define NULL
Definition: types.h:112
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:114
LONG_PTR LRESULT
Definition: windef.h:209

Referenced by CreateViewWindow3(), and OnCommand().

◆ CheckViewMode()

HRESULT CDefView::CheckViewMode ( HMENU  hmenuView)

Definition at line 1448 of file CDefView.cpp.

1449 {
1451  {
1452  UINT iItemFirst = FCIDM_SHVIEW_BIGICON;
1453  UINT iItemLast = iItemFirst + FVM_LAST - FVM_FIRST;
1454  UINT iItem = iItemFirst + m_FolderSettings.ViewMode - FVM_FIRST;
1455  CheckMenuRadioItem(hmenuView, iItemFirst, iItemLast, iItem, MF_BYCOMMAND);
1456  }
1457 
1458  return S_OK;
1459 }
#define MF_BYCOMMAND
Definition: winuser.h:202
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:119
BOOL WINAPI CheckMenuRadioItem(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT, _In_ UINT)
#define FCIDM_SHVIEW_BIGICON
Definition: shresdef.h:811
#define S_OK
Definition: intsafe.h:52
unsigned int UINT
Definition: ndis.h:50

Referenced by Exec(), and OnInitMenuPopup().

◆ ContextSensitiveHelp()

HRESULT WINAPI CDefView::ContextSensitiveHelp ( BOOL  fEnterMode)
virtual

Implements IOleWindow.

Definition at line 2500 of file CDefView.cpp.

2501 {
2502  FIXME("(%p) stub\n", this);
2503 
2504  return E_NOTIMPL;
2505 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ CreateList()

BOOL CDefView::CreateList ( )

Definition at line 625 of file CDefView.cpp.

626 {
627  HRESULT hr;
628  DWORD dwStyle, dwExStyle;
629  UINT ViewMode;
630 
631  TRACE("%p\n", this);
632 
635  dwExStyle = WS_EX_CLIENTEDGE;
636 
638  dwStyle |= LVS_ALIGNLEFT;
639  else
640  dwStyle |= LVS_ALIGNTOP | LVS_SHOWSELALWAYS;
641 
642  ViewMode = m_FolderSettings.ViewMode;
643  hr = _DoFolderViewCB(SFVM_DEFVIEWMODE, 0, (LPARAM)&ViewMode);
644  if (SUCCEEDED(hr))
645  {
646  if (ViewMode >= FVM_FIRST && ViewMode <= FVM_LAST)
647  m_FolderSettings.ViewMode = ViewMode;
648  else
649  ERR("Ignoring invalid ViewMode from SFVM_DEFVIEWMODE: %u (was: %u)\n", ViewMode, m_FolderSettings.ViewMode);
650  }
651 
652  switch (m_FolderSettings.ViewMode)
653  {
654  case FVM_ICON:
655  dwStyle |= LVS_ICON;
656  break;
657 
658  case FVM_DETAILS:
659  dwStyle |= LVS_REPORT;
660  break;
661 
662  case FVM_SMALLICON:
663  dwStyle |= LVS_SMALLICON;
664  break;
665 
666  case FVM_LIST:
667  dwStyle |= LVS_LIST;
668  break;
669 
670  default:
671  dwStyle |= LVS_LIST;
672  break;
673  }
674 
676  dwStyle |= LVS_AUTOARRANGE;
677 
679  dwExStyle |= LVS_EX_SNAPTOGRID;
680 
683 
685  dwStyle |= LVS_SINGLESEL;
686 
688  dwExStyle &= ~WS_EX_CLIENTEDGE;
689 
690  RECT rcListView = {0,0,0,0};
691  m_ListView.Create(m_hWnd, rcListView, L"FolderView", dwStyle, dwExStyle, ID_LISTVIEW);
692 
693  if (!m_ListView)
694  return FALSE;
695 
697  m_sortInfo.nHeaderID = -1;
699 
700  /* UpdateShellSettings(); */
701  return TRUE;
702 }
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
HRESULT hr
Definition: shlfolder.c:183
#define LVS_SHOWSELALWAYS
Definition: commctrl.h:2267
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:119
#define TRUE
Definition: types.h:120
#define LVS_REPORT
Definition: commctrl.h:2262
#define WS_CLIPCHILDREN
Definition: pedump.c:619
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 LVS_SHAREIMAGELISTS
Definition: commctrl.h:2270
#define L(x)
Definition: ntvdm.h:50
#define FALSE
Definition: types.h:117
#define LVS_EX_SNAPTOGRID
Definition: commctrl.h:2748
if SUCCEEDED(hr)
#define LVS_ALIGNLEFT
Definition: commctrl.h:2280
LONG_PTR LPARAM
Definition: windef.h:208
#define LVS_AUTOARRANGE
Definition: commctrl.h:2272
CListView m_ListView
Definition: CDefView.cpp:117
#define LVS_LIST
Definition: commctrl.h:2264
#define WS_CHILDWINDOW
Definition: pedump.c:639
#define TRACE(s)
Definition: solgame.cpp:4
LISTVIEW_SORT_INFO m_sortInfo
Definition: CDefView.cpp:129
LONG HRESULT
Definition: typedefs.h:79
#define LVS_SINGLESEL
Definition: commctrl.h:2266
unsigned long DWORD
Definition: ntddk_ex.h:95
#define LVS_ICON
Definition: commctrl.h:2261
#define SFVM_DEFVIEWMODE
Definition: shlobj.h:1245
HWND m_hWnd
Definition: atlwin.h:267
#define WS_TABSTOP
Definition: pedump.c:634
#define ERR(fmt,...)
Definition: debug.h:110
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384
#define LVS_EDITLABELS
Definition: commctrl.h:2273
unsigned int UINT
Definition: ndis.h:50
#define WS_VISIBLE
Definition: pedump.c:620
#define ID_LISTVIEW
Definition: CDefView.cpp:402
#define LVS_SMALLICON
Definition: commctrl.h:2263
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3886
#define LVS_ALIGNTOP
Definition: commctrl.h:2279

Referenced by OnCreate().

◆ CreateViewWindow()

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

Implements IShellView.

Definition at line 2573 of file CDefView.cpp.

2574 {
2575  return CreateViewWindow3(psb, lpPrevView, SV3CVW3_DEFAULT,
2576  (FOLDERFLAGS)lpfs->fFlags, (FOLDERFLAGS)lpfs->fFlags, (FOLDERVIEWMODE)lpfs->ViewMode, NULL, prcView, phWnd);
2577 }
FOLDERVIEWMODE
Definition: shobjidl.idl:665
FOLDERFLAGS
Definition: shobjidl.idl:629
#define NULL
Definition: types.h:112
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:2977

◆ CreateViewWindow2()

HRESULT STDMETHODCALLTYPE CDefView::CreateViewWindow2 ( LPSV2CVW2_PARAMS  view_params)
virtual

Implements IShellView2.

Definition at line 2970 of file CDefView.cpp.

2971 {
2972  return CreateViewWindow3(view_params->psbOwner, view_params->psvPrev,
2973  SV3CVW3_DEFAULT, (FOLDERFLAGS)view_params->pfs->fFlags, (FOLDERFLAGS)view_params->pfs->fFlags,
2974  (FOLDERVIEWMODE)view_params->pfs->ViewMode, view_params->pvid, view_params->prcView, &view_params->hwndView);
2975 }
FOLDERVIEWMODE
Definition: shobjidl.idl:665
FOLDERFLAGS
Definition: shobjidl.idl:629
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:2977

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

2978 {
2979  OLEMENUGROUPWIDTHS omw = { { 0, 0, 0, 0, 0, 0 } };
2980 
2981  *hwnd = NULL;
2982 
2983  TRACE("(%p)->(shlview=%p shlbrs=%p rec=%p hwnd=%p vmode=%x flags=%x)\n", this, psvPrevious, psb, prcView, hwnd, mode, flags);
2984  if (prcView != NULL)
2985  TRACE("-- left=%i top=%i right=%i bottom=%i\n", prcView->left, prcView->top, prcView->right, prcView->bottom);
2986 
2987  /* Validate the Shell Browser */
2988  if (psb == NULL || m_hWnd)
2989  return E_UNEXPECTED;
2990 
2991  if (view_flags != SV3CVW3_DEFAULT)
2992  FIXME("unsupported view flags 0x%08x\n", view_flags);
2993 
2994  /* Set up the member variables */
2995  m_pShellBrowser = psb;
2998 
2999  if (view_id)
3000  {
3001  if (IsEqualIID(*view_id, VID_LargeIcons))
3003  else if (IsEqualIID(*view_id, VID_SmallIcons))
3005  else if (IsEqualIID(*view_id, VID_List))
3007  else if (IsEqualIID(*view_id, VID_Details))
3009  else if (IsEqualIID(*view_id, VID_Thumbnails))
3011  else if (IsEqualIID(*view_id, VID_Tile))
3013  else if (IsEqualIID(*view_id, VID_ThumbStrip))
3015  else
3016  FIXME("Ignoring unrecognized VID %s\n", debugstr_guid(view_id));
3017  }
3018 
3019  /* Get our parent window */
3020  m_pShellBrowser->GetWindow(&m_hWndParent);
3021 
3022  /* Try to get the ICommDlgBrowserInterface, adds a reference !!! */
3025  {
3026  TRACE("-- CommDlgBrowser\n");
3027  }
3028 
3030  if (m_hWnd == NULL)
3031  return E_FAIL;
3032 
3033  *hwnd = m_hWnd;
3034 
3035  CheckToolbar();
3036 
3037  if (!*hwnd)
3038  return E_FAIL;
3039 
3041 
3043  UpdateWindow();
3044 
3045  if (!m_hMenu)
3046  {
3047  m_hMenu = CreateMenu();
3048  m_pShellBrowser->InsertMenusSB(m_hMenu, &omw);
3049  TRACE("-- after fnInsertMenusSB\n");
3050  }
3051 
3052  _MergeToolbar();
3053 
3054  return S_OK;
3055 }
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
HMENU WINAPI CreateMenu(void)
Definition: menu.c:837
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:119
HWND Create(HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
Definition: atlwin.h:1728
#define U(x)
Definition: wordpad.c:45
CComPtr< ICommDlgBrowser > m_pCommDlgBrowser
Definition: CDefView.cpp:115
BOOL SetWindowPos(HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
Definition: atlwin.h:1282
LONG top
Definition: windef.h:307
#define HWND_TOP
Definition: winuser.h:1197
UINT_PTR WPARAM
Definition: windef.h:207
#define WS_CHILD
Definition: pedump.c:617
HMENU m_hMenu
Definition: CDefView.cpp:120
LONG left
Definition: windef.h:306
#define WS_CLIPCHILDREN
Definition: pedump.c:619
LONG right
Definition: windef.h:308
#define IID_PPV_ARG(Itype, ppType)
#define E_FAIL
Definition: ddrawi.h:102
GLenum GLint GLuint mask
Definition: glext.h:6028
if SUCCEEDED(hr)
#define FIXME(fmt,...)
Definition: debug.h:111
HRESULT _MergeToolbar()
Definition: CDefView.cpp:3859
#define debugstr_guid
Definition: kernel32.h:35
HWND m_hWndParent
Definition: CDefView.cpp:118
#define TRACE(s)
Definition: solgame.cpp:4
#define SFVM_WINDOWCREATED
Definition: shlobj.h:1235
BOOL UpdateWindow()
Definition: atlwin.h:1339
void CheckToolbar()
Definition: CDefView.cpp:523
GLbitfield flags
Definition: glext.h:7161
HWND m_hWnd
Definition: atlwin.h:267
#define WS_TABSTOP
Definition: pedump.c:634
GLenum mode
Definition: glext.h:6217
#define SWP_NOSIZE
Definition: winuser.h:1235
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
#define SWP_SHOWWINDOW
Definition: winuser.h:1238
#define E_UNEXPECTED
Definition: winerror.h:2456
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:114
LONG bottom
Definition: windef.h:309
#define SWP_NOMOVE
Definition: winuser.h:1234
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4022
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3886

Referenced by CreateViewWindow(), and CreateViewWindow2().

◆ DestroyViewWindow()

HRESULT WINAPI CDefView::DestroyViewWindow ( )
virtual

Implements IShellView.

Definition at line 2579 of file CDefView.cpp.

2580 {
2581  TRACE("(%p)\n", this);
2582 
2583  /* Make absolutely sure all our UI is cleaned up */
2585 
2586  if (m_hAccel)
2587  {
2588  // "Accelerator tables loaded from resources are freed automatically when the application terminates." -- MSDN
2589  m_hAccel = NULL;
2590  }
2591 
2592  if (m_hMenuArrangeModes)
2593  {
2596  }
2597 
2598  if (m_hMenuViewModes)
2599  {
2602  }
2603 
2604  if (m_hMenu)
2605  {
2607  m_hMenu = NULL;
2608  }
2609 
2610  if (m_ListView)
2611  {
2612  m_ListView.DestroyWindow();
2613  }
2614 
2615  if (m_hWnd)
2616  {
2618  DestroyWindow();
2619  }
2620 
2623 
2624  return S_OK;
2625 }
HMENU m_hMenuArrangeModes
Definition: CDefView.cpp:121
HACCEL m_hAccel
Definition: CDefView.cpp:131
CComPtr< ICommDlgBrowser > m_pCommDlgBrowser
Definition: CDefView.cpp:115
UINT_PTR WPARAM
Definition: windef.h:207
HMENU m_hMenu
Definition: CDefView.cpp:120
#define SFVM_WINDOWCLOSING
virtual HRESULT STDMETHODCALLTYPE UIActivate(UINT uState)
Definition: CDefView.cpp:2536
CListView m_ListView
Definition: CDefView.cpp:117
#define TRACE(s)
Definition: solgame.cpp:4
HWND m_hWnd
Definition: atlwin.h:267
BOOL DestroyWindow()
Definition: atlwin.h:456
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define S_OK
Definition: intsafe.h:52
void Release()
Definition: atlcomcli.h:147
#define NULL
Definition: types.h:112
HMENU m_hMenuViewModes
Definition: CDefView.cpp:122
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:114
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3886

Referenced by ~CDefView().

◆ DoActivate()

void CDefView::DoActivate ( UINT  uState)

Definition at line 1767 of file CDefView.cpp.

1768 {
1769  TRACE("%p uState=%x\n", this, uState);
1770 
1771  /*don't do anything if the state isn't really changing */
1772  if (m_uState == uState)
1773  {
1774  return;
1775  }
1776 
1777  if (uState == SVUIA_DEACTIVATE)
1778  {
1779  OnDeactivate();
1780  }
1781  else
1782  {
1784  {
1785  FillEditMenu();
1786  FillViewMenu();
1787  m_pShellBrowser->SetMenuSB(m_hMenu, 0, m_hWnd);
1789  }
1790 
1791  if (SVUIA_ACTIVATE_FOCUS == uState)
1792  {
1793  m_ListView.SetFocus();
1794  }
1795  }
1796 
1797  m_uState = uState;
1798  TRACE("--\n");
1799 }
HRESULT FillViewMenu()
Definition: CDefView.cpp:1392
HRESULT FillEditMenu()
Definition: CDefView.cpp:1375
#define TRUE
Definition: types.h:120
HMENU m_hMenu
Definition: CDefView.cpp:120
CListView m_ListView
Definition: CDefView.cpp:117
#define TRACE(s)
Definition: solgame.cpp:4
UINT m_uState
Definition: CDefView.cpp:125
BOOL m_bmenuBarInitialized
Definition: CDefView.cpp:124
HWND m_hWnd
Definition: atlwin.h:267
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:114
void OnDeactivate()
Definition: CDefView.cpp:1755

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

◆ drag_notify_subitem()

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

Definition at line 3365 of file CDefView.cpp.

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

Referenced by DragEnter(), and DragOver().

◆ DragEnter()

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

Implements IDropTarget.

Definition at line 3480 of file CDefView.cpp.

3481 {
3482  if (*pdwEffect == DROPEFFECT_NONE)
3483  return S_OK;
3484 
3485  /* Get a hold on the data object for later calls to DragEnter on the sub-folders */
3486  m_pCurDataObject = pDataObject;
3487 
3488  HRESULT hr = drag_notify_subitem(grfKeyState, pt, pdwEffect);
3489  if (SUCCEEDED(hr))
3490  {
3491  POINT ptClient = {pt.x, pt.y};
3492  ScreenToClient(&ptClient);
3493  ImageList_DragEnter(m_hWnd, ptClient.x, ptClient.y);
3494  }
3495 
3496  return hr;
3497 }
long y
Definition: polytest.cpp:48
HRESULT hr
Definition: shlfolder.c:183
long x
Definition: polytest.cpp:48
#define pt(x, y)
Definition: drawing.c:79
const DWORD DROPEFFECT_NONE
Definition: oleidl.idl:929
BOOL WINAPI ImageList_DragEnter(HWND hwndLock, INT x, INT y)
Definition: imagelist.c:958
CComPtr< IDataObject > m_pCurDataObject
Definition: CDefView.cpp:138
if SUCCEEDED(hr)
LONG HRESULT
Definition: typedefs.h:79
BOOL ScreenToClient(LPPOINT lpPoint) const
Definition: atlwin.h:1086
HWND m_hWnd
Definition: atlwin.h:267
#define S_OK
Definition: intsafe.h:52
HRESULT drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
Definition: CDefView.cpp:3365

◆ DragLeave()

HRESULT WINAPI CDefView::DragLeave ( void  )
virtual

Implements IDropTarget.

Definition at line 3507 of file CDefView.cpp.

3508 {
3510 
3511  if (m_pCurDropTarget)
3512  {
3513  m_pCurDropTarget->DragLeave();
3515  }
3516 
3517  if (m_pCurDataObject != NULL)
3518  {
3520  }
3521 
3522  m_iDragOverItem = 0;
3523 
3524  return S_OK;
3525 }
CComPtr< IDataObject > m_pCurDataObject
Definition: CDefView.cpp:138
LONG m_iDragOverItem
Definition: CDefView.cpp:139
HWND m_hWnd
Definition: atlwin.h:267
CComPtr< IDropTarget > m_pCurDropTarget
Definition: CDefView.cpp:137
#define S_OK
Definition: intsafe.h:52
BOOL WINAPI ImageList_DragLeave(HWND hwndLock)
Definition: imagelist.c:992
void Release()
Definition: atlcomcli.h:147
#define NULL
Definition: types.h:112

◆ DragOver()

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

Implements IDropTarget.

Definition at line 3499 of file CDefView.cpp.

3500 {
3501  POINT ptClient = {pt.x, pt.y};
3502  ScreenToClient(&ptClient);
3503  ImageList_DragMove(ptClient.x, ptClient.y);
3504  return drag_notify_subitem(grfKeyState, pt, pdwEffect);
3505 }
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
#define pt(x, y)
Definition: drawing.c:79
BOOL WINAPI ImageList_DragMove(INT x, INT y)
Definition: imagelist.c:1070
BOOL ScreenToClient(LPPOINT lpPoint) const
Definition: atlwin.h:1086
HRESULT drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
Definition: CDefView.cpp:3365

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

3791 {
3792  FIXME("Stub: this=%p\n", this);
3793 
3794  return E_NOTIMPL;
3795 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ Drop()

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

Implements IDropTarget.

Definition at line 3711 of file CDefView.cpp.

3712 {
3715 
3716  if ((IsDropOnSource(NULL) == S_OK) &&
3717  (*pdwEffect & DROPEFFECT_MOVE) &&
3719  {
3720  if (m_pCurDropTarget)
3721  {
3722  m_pCurDropTarget->DragLeave();
3724  }
3725 
3726  POINT ptDrop = { pt.x, pt.y };
3727  ::ScreenToClient(m_ListView, &ptDrop);
3728  ::ClientToListView(m_ListView, &ptDrop);
3729  m_ptLastMousePos = ptDrop;
3730 
3732  if (m_ListView.GetStyle() & LVS_AUTOARRANGE)
3733  {
3735  }
3736  else
3737  {
3738  POINT ptItem;
3739  INT iItem = -1;
3740  while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3741  {
3742  if (m_ListView.GetItemPosition(iItem, &ptItem))
3743  {
3744  ptItem.x += m_ptLastMousePos.x - m_ptFirstMousePos.x;
3745  ptItem.y += m_ptLastMousePos.y - m_ptFirstMousePos.y;
3746  m_ListView.SetItemPosition(iItem, &ptItem);
3747  }
3748  }
3749  }
3751  }
3752  else if (m_pCurDropTarget)
3753  {
3754  m_pCurDropTarget->Drop(pDataObject, grfKeyState, pt, pdwEffect);
3756  }
3757 
3759  m_iDragOverItem = 0;
3760  return S_OK;
3761 }
POINT m_ptFirstMousePos
Definition: CDefView.cpp:142
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
#define MK_LBUTTON
Definition: winuser.h:2357
#define TRUE
Definition: types.h:120
#define pt(x, y)
Definition: drawing.c:79
void SetRedraw(BOOL redraw)
Definition: rosctrls.h:27
int GetNextItem(int i, WORD flags)
Definition: rosctrls.h:161
#define LVNI_SELECTED
Definition: commctrl.h:2424
VOID WINAPI ImageList_EndDrag(void)
Definition: imagelist.c:1847
int32_t INT
Definition: typedefs.h:58
static void ClientToListView(HWND hwndLV, POINT *ppt)
Definition: CDefView.cpp:59
#define FALSE
Definition: types.h:117
CComPtr< IDataObject > m_pCurDataObject
Definition: CDefView.cpp:138
BOOL GetItemPosition(int nItem, POINT *pPoint)
Definition: rosctrls.h:231
void _MoveSelectionOnAutoArrange(POINT pt)
Definition: CDefView.cpp:3651
#define LVS_AUTOARRANGE
Definition: commctrl.h:2272
CListView m_ListView
Definition: CDefView.cpp:117
LONG m_iDragOverItem
Definition: CDefView.cpp:139
POINT m_ptLastMousePos
Definition: CDefView.cpp:141
BOOL ScreenToClient(LPPOINT lpPoint) const
Definition: atlwin.h:1086
virtual HRESULT STDMETHODCALLTYPE IsDropOnSource(IDropTarget *drop_target)
Definition: CDefView.cpp:3188
HWND m_hWnd
Definition: atlwin.h:267
CComPtr< IDropTarget > m_pCurDropTarget
Definition: CDefView.cpp:137
#define S_OK
Definition: intsafe.h:52
DWORD m_grfKeyState
Definition: CDefView.cpp:143
BOOL WINAPI ImageList_DragLeave(HWND hwndLock)
Definition: imagelist.c:992
const DWORD DROPEFFECT_MOVE
Definition: oleidl.idl:931
BOOL SetItemPosition(int nItem, POINT *pPoint)
Definition: rosctrls.h:236
void Release()
Definition: atlcomcli.h:147
#define NULL
Definition: types.h:112

◆ EnableModeless()

HRESULT WINAPI CDefView::EnableModeless ( BOOL  fEnable)
virtual

Implements IShellView.

Definition at line 2529 of file CDefView.cpp.

2530 {
2531  FIXME("(%p) stub\n", this);
2532 
2533  return E_NOTIMPL;
2534 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ Exec()

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

Implements IOleCommandTarget.

Definition at line 3302 of file CDefView.cpp.

3303 {
3304  FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08x Opt:0x%08x %p %p)\n",
3305  this, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
3306 
3307  if (!pguidCmdGroup)
3308  return OLECMDERR_E_UNKNOWNGROUP;
3309 
3310  if (IsEqualCLSID(*pguidCmdGroup, m_Category))
3311  {
3312  if (nCmdID == FCIDM_SHVIEW_AUTOARRANGE)
3313  {
3314  if (V_VT(pvaIn) != VT_INT_PTR)
3315  return OLECMDERR_E_NOTSUPPORTED;
3316 
3317  TPMPARAMS params;
3318  params.cbSize = sizeof(params);
3319  params.rcExclude = *(RECT*) V_INTREF(pvaIn);
3320 
3321  if (m_hMenuViewModes)
3322  {
3323  /* Duplicate all but the last two items of the view modes menu */
3324  HMENU hmenuViewPopup = CreatePopupMenu();
3325  Shell_MergeMenus(hmenuViewPopup, m_hMenuViewModes, 0, 0, 0xFFFF, 0);
3326  DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3327  DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3328  CheckViewMode(hmenuViewPopup);
3329  TrackPopupMenuEx(hmenuViewPopup, TPM_LEFTALIGN | TPM_TOPALIGN, params.rcExclude.left, params.rcExclude.bottom, m_hWndParent, &params);
3330  ::DestroyMenu(hmenuViewPopup);
3331  }
3332 
3333  // pvaOut is VT_I4 with value 0x403 (cmd id of the new mode maybe?)
3334  V_VT(pvaOut) = VT_I4;
3335  V_I4(pvaOut) = 0x403;
3336  }
3337  }
3338 
3339  if (IsEqualIID(*pguidCmdGroup, CGID_Explorer) &&
3340  (nCmdID == 0x29) &&
3341  (nCmdexecopt == 4) && pvaOut)
3342  return S_OK;
3343 
3344  if (IsEqualIID(*pguidCmdGroup, CGID_ShellDocView) &&
3345  (nCmdID == 9) &&
3346  (nCmdexecopt == 0))
3347  return 1;
3348 
3349  return OLECMDERR_E_UNKNOWNGROUP;
3350 }
Definition: compat.h:2298
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:816
#define TPM_LEFTALIGN
Definition: winuser.h:2367
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)
#define V_I4(A)
Definition: oleauto.h:247
GLenum const GLfloat * params
Definition: glext.h:5645
#define MF_BYPOSITION
Definition: winuser.h:203
#define TPM_TOPALIGN
Definition: winuser.h:2373
#define FIXME(fmt,...)
Definition: debug.h:111
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
HRESULT CheckViewMode(HMENU hmenuView)
Definition: CDefView.cpp:1448
#define debugstr_guid
Definition: kernel32.h:35
#define V_INTREF(A)
Definition: oleauto.h:252
HWND m_hWndParent
Definition: CDefView.cpp:118
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
#define V_VT(A)
Definition: oleauto.h:211
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define S_OK
Definition: intsafe.h:52
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:846
HMENU m_hMenuViewModes
Definition: CDefView.cpp:122
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
CLSID m_Category
Definition: CDefView.cpp:151

◆ fill_list()

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

Definition at line 1002 of file CDefView.cpp.

1003 {
1004  PITEMID_CHILD pidl = static_cast<PITEMID_CHILD>(ptr);
1005  CDefView *pThis = static_cast<CDefView *>(arg);
1006 
1007  /* in a commdlg This works as a filemask*/
1008  if (pThis->IncludeObject(pidl) == S_OK)
1009  pThis->LV_AddItem(pidl);
1010 
1011  SHFree(pidl);
1012  return TRUE;
1013 }
int LV_AddItem(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:897
#define TRUE
Definition: types.h:120
static PVOID ptr
Definition: dispmode.c:27
HRESULT IncludeObject(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:476
#define S_OK
Definition: intsafe.h:52
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:326

Referenced by FillList().

◆ FillArrangeAsMenu()

HRESULT CDefView::FillArrangeAsMenu ( HMENU  hmenuArrange)

Definition at line 1408 of file CDefView.cpp.

1409 {
1410  /* We only need to fill this once */
1411  if (GetMenuItemID(hmenuArrange, 0) == FCIDM_SHVIEW_AUTOARRANGE)
1412  {
1413  Shell_MergeMenus(hmenuArrange, m_hMenuArrangeModes, 0, 0, 0xFFFF,0);
1414  }
1415 
1416  /* Also check the menu item according to which we sort */
1417  CheckMenuRadioItem(hmenuArrange,
1418  0x30,
1419  0x100,
1420  m_sortInfo.nHeaderID + 0x30,
1421  MF_BYCOMMAND);
1422 
1424  {
1427  }
1428  else
1429  {
1432 
1433  if (GetAutoArrange() == S_OK)
1435  else
1437 
1438  if (_GetSnapToGrid() == S_OK)
1440  else
1442  }
1443 
1444 
1445  return S_OK;
1446 }
HMENU m_hMenuArrangeModes
Definition: CDefView.cpp:121
virtual HRESULT STDMETHODCALLTYPE GetAutoArrange()
Definition: CDefView.cpp:2899
HRESULT _GetSnapToGrid()
Definition: CDefView.cpp:2904
#define MF_BYCOMMAND
Definition: winuser.h:202
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:816
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:119
BOOL WINAPI CheckMenuRadioItem(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MF_CHECKED
Definition: winuser.h:132
LISTVIEW_SORT_INFO m_sortInfo
Definition: CDefView.cpp:129
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MF_UNCHECKED
Definition: winuser.h:204
#define S_OK
Definition: intsafe.h:52
UINT WINAPI GetMenuItemID(_In_ HMENU, _In_ int)
#define FCIDM_SHVIEW_ALIGNTOGRID
Definition: shresdef.h:818
#define MF_GRAYED
Definition: winuser.h:129

Referenced by OnInitMenuPopup().

◆ FillEditMenu()

HRESULT CDefView::FillEditMenu ( )

Definition at line 1375 of file CDefView.cpp.

1376 {
1378  if (!hEditMenu)
1379  return E_FAIL;
1380 
1381  HMENU hmenuContents = ::LoadMenuW(shell32_hInstance, L"MENU_003");
1382  if (!hmenuContents)
1383  return E_FAIL;
1384 
1385  Shell_MergeMenus(hEditMenu, hmenuContents, 0, 0, 0xFFFF, 0);
1386 
1387  ::DestroyMenu(hmenuContents);
1388 
1389  return S_OK;
1390 }
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:856
HMENU m_hMenu
Definition: CDefView.cpp:120
#define E_FAIL
Definition: ddrawi.h:102
#define FCIDM_MENU_EDIT
Definition: shlobj.h:558
#define L(x)
Definition: ntvdm.h:50
BOOL WINAPI DestroyMenu(_In_ HMENU)
HMENU GetSubmenuByID(HMENU hmenu, UINT id)
Definition: CDefView.cpp:1313
#define S_OK
Definition: intsafe.h:52
#define shell32_hInstance
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60

Referenced by DoActivate().

◆ FillFileMenu()

HRESULT CDefView::FillFileMenu ( )

Definition at line 1333 of file CDefView.cpp.

1334 {
1336  if (!hFileMenu)
1337  return E_FAIL;
1338 
1339  /* Cleanup the items added previously */
1340  for (int i = GetMenuItemCount(hFileMenu) - 1; i >= 0; i--)
1341  {
1342  UINT id = GetMenuItemID(hFileMenu, i);
1344  DeleteMenu(hFileMenu, i, MF_BYPOSITION);
1345  }
1346 
1348 
1349  /* In case we still have this left over, clean it up! */
1350  if (m_pFileMenu)
1351  {
1353  m_pFileMenu.Release();
1354  }
1355  /* Store the context menu in m_pFileMenu and keep it in order to invoke the selected command later on */
1357  if (FAILED_UNEXPECTEDLY(hr))
1358  return hr;
1359 
1361 
1362  hr = m_pFileMenu->QueryContextMenu(hmenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, 0);
1363  if (FAILED_UNEXPECTEDLY(hr))
1364  return hr;
1365 
1366  // TODO: filter or something
1367 
1368  Shell_MergeMenus(hFileMenu, hmenu, 0, 0, 0xFFFF, MM_ADDSEPARATOR | MM_SUBMENUSHAVEIDS);
1369 
1371 
1372  return S_OK;
1373 }
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:856
HRESULT hr
Definition: shlfolder.c:183
static HMENU hmenu
Definition: win.c:66
#define FCIDM_SHVIEWFIRST
Definition: shlobj.h:507
HMENU m_hMenu
Definition: CDefView.cpp:120
virtual HRESULT STDMETHODCALLTYPE GetItemObject(UINT uItem, REFIID riid, void **ppv)
Definition: CDefView.cpp:2703
#define IID_PPV_ARG(Itype, ppType)
#define E_FAIL
Definition: ddrawi.h:102
#define FCIDM_BROWSERLAST
Definition: shlobj.h:550
#define MF_BYPOSITION
Definition: winuser.h:203
HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site)
Definition: ordinal.c:1404
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
CListView m_ListView
Definition: CDefView.cpp:117
#define FCIDM_SHVIEWLAST
Definition: shlobj.h:541
#define FCIDM_MENU_FILE
Definition: shlobj.h:557
#define MM_ADDSEPARATOR
Definition: shlobj.h:2380
LONG HRESULT
Definition: typedefs.h:79
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
#define FAILED_UNEXPECTEDLY(hr)
Definition: shellutils.h:82
UINT GetSelectedCount()
Definition: rosctrls.h:136
BOOL WINAPI DestroyMenu(_In_ HMENU)
HMENU GetSubmenuByID(HMENU hmenu, UINT id)
Definition: CDefView.cpp:1313
#define S_OK
Definition: intsafe.h:52
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
void Release()
Definition: atlcomcli.h:147
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
UINT WINAPI GetMenuItemID(_In_ HMENU, _In_ int)
CComPtr< IContextMenu > m_pFileMenu
Definition: CDefView.cpp:146
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:846
#define MM_SUBMENUSHAVEIDS
Definition: shlobj.h:2381
GLenum GLuint id
Definition: glext.h:5579
UINT m_cidl
Definition: CDefView.cpp:126
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60

Referenced by OnInitMenuPopup().

◆ FillList()

HRESULT CDefView::FillList ( )

Definition at line 1015 of file CDefView.cpp.

1016 {
1017  CComPtr<IEnumIDList> pEnumIDList;
1018  PITEMID_CHILD pidl;
1019  DWORD dwFetched;
1020  HRESULT hRes;
1021  HDPA hdpa;
1022  DWORD dFlags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS;
1023  DWORD dwValue, cbValue;
1024 
1025  TRACE("%p\n", this);
1026 
1027  /* determine if there is a setting to show all the hidden files/folders */
1028  dwValue = 1;
1029  cbValue = sizeof(dwValue);
1031  L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
1032  L"Hidden", NULL, &dwValue, &cbValue);
1033  if (dwValue == 1)
1034  {
1035  dFlags |= SHCONTF_INCLUDEHIDDEN;
1036  m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
1037  }
1038 
1039  dwValue = 0;
1040  cbValue = sizeof(dwValue);
1042  L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
1043  L"ShowSuperHidden", NULL, &dwValue, &cbValue);
1044  if (dwValue)
1045  {
1046  dFlags |= SHCONTF_INCLUDESUPERHIDDEN;
1047  m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
1048  }
1049 
1050  /* get the itemlist from the shfolder */
1051  hRes = m_pSFParent->EnumObjects(m_hWnd, dFlags, &pEnumIDList);
1052  if (hRes != S_OK)
1053  {
1054  if (hRes == S_FALSE)
1055  return(NOERROR);
1056  return(hRes);
1057  }
1058 
1059  /* create a pointer array */
1060  hdpa = DPA_Create(16);
1061  if (!hdpa)
1062  {
1063  return(E_OUTOFMEMORY);
1064  }
1065 
1066  /* copy the items into the array*/
1067  while((S_OK == pEnumIDList->Next(1, &pidl, &dwFetched)) && dwFetched)
1068  {
1069  if (DPA_InsertPtr(hdpa, 0x7fff, pidl) == -1)
1070  {
1071  SHFree(pidl);
1072  }
1073  }
1074 
1075  /*turn the listview's redrawing off*/
1077 
1078  DPA_DestroyCallback( hdpa, fill_list, this);
1079 
1080  /* sort the array */
1081  if (m_pSF2Parent)
1082  {
1083  m_pSF2Parent->GetDefaultColumn(NULL, (ULONG*)&m_sortInfo.nHeaderID, NULL);
1084  }
1085  else
1086  {
1087  FIXME("no m_pSF2Parent\n");
1088  }
1090  _Sort();
1091 
1093  {
1096  }
1097 
1098  // load custom background image and custom text color
1101 
1102  /*turn the listview's redrawing back on and force it to draw*/
1104 
1105  UpdateListColors();
1106 
1108  {
1109  // redraw now
1110  m_ListView.InvalidateRect(NULL, TRUE);
1111  }
1112 
1114 
1115  return S_OK;
1116 }
void WINAPI DPA_DestroyCallback(HDPA hdpa, PFNDPAENUMCALLBACK enumProc, LPVOID lParam)
Definition: dpa.c:1003
HDPA WINAPI DPA_Create(INT nGrow)
Definition: dpa.c:950
#define NOERROR
Definition: winerror.h:2354
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:119
#define TRUE
Definition: types.h:120
#define HKEY_CURRENT_USER
Definition: winreg.h:11
void SetRedraw(BOOL redraw)
Definition: rosctrls.h:27
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
#define LVIS_CUT
Definition: commctrl.h:2320
#define LVM_SETCALLBACKMASK
Definition: commctrl.h:2419
#define SFVM_GET_CUSTOMVIEWINFO
CComPtr< IShellFolder2 > m_pSF2Parent
Definition: CDefView.cpp:112
#define L(x)
Definition: ntvdm.h:50
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define FALSE
Definition: types.h:117
SFVM_CUSTOMVIEWINFO_DATA m_viewinfo_data
Definition: CDefView.cpp:153
#define FIXME(fmt,...)
Definition: debug.h:111
#define SFVM_LISTREFRESHED
#define S_FALSE
Definition: winerror.h:2357
static INT CALLBACK fill_list(LPVOID ptr, LPVOID arg)
Definition: CDefView.cpp:1002
LONG_PTR LPARAM
Definition: windef.h:208
CListView m_ListView
Definition: CDefView.cpp:117
void UpdateListColors()
Definition: CDefView.cpp:704
#define TRACE(s)
Definition: solgame.cpp:4
LISTVIEW_SORT_INFO m_sortInfo
Definition: CDefView.cpp:129
LONG HRESULT
Definition: typedefs.h:79
unsigned long DWORD
Definition: ntddk_ex.h:95
INT WINAPI DPA_InsertPtr(HDPA hdpa, INT i, LPVOID p)
Definition: dpa.c:591
BOOL _Sort()
Definition: CDefView.cpp:834
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition: reg.c:1236
CComPtr< IShellFolder > m_pSFParent
Definition: CDefView.cpp:111
HWND m_hWnd
Definition: atlwin.h:267
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:326
unsigned int ULONG
Definition: retypes.h:1
Definition: dpa.c:48
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3886

Referenced by OnCreate(), and Refresh().

◆ FillViewMenu()

HRESULT CDefView::FillViewMenu ( )

Definition at line 1392 of file CDefView.cpp.

1393 {
1395  if (!hViewMenu)
1396  return E_FAIL;
1397 
1399  if (!m_hMenuViewModes)
1400  return E_FAIL;
1401 
1404 
1405  return S_OK;
1406 }
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:856
#define FCIDM_MENU_VIEW_SEP_OPTIONS
Definition: shlobj.h:560
HMENU m_hMenu
Definition: CDefView.cpp:120
#define E_FAIL
Definition: ddrawi.h:102
#define L(x)
Definition: ntvdm.h:50
DWORD WINAPI SHMenuIndexFromID(HMENU hMenu, UINT uID)
Definition: ordinal.c:4391
#define FCIDM_MENU_VIEW
Definition: shlobj.h:559
#define MM_ADDSEPARATOR
Definition: shlobj.h:2380
HMENU GetSubmenuByID(HMENU hmenu, UINT id)
Definition: CDefView.cpp:1313
#define S_OK
Definition: intsafe.h:52
#define shell32_hInstance
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
unsigned int UINT
Definition: ndis.h:50
HMENU m_hMenuViewModes
Definition: CDefView.cpp:122
#define MM_SUBMENUSHAVEIDS
Definition: shlobj.h:2381
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
#define MM_DONTREMOVESEPS
Definition: shlobj.h:2382

Referenced by DoActivate().

◆ Freeze()

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

Implements IViewObject.

Definition at line 3804 of file CDefView.cpp.

3805 {
3806  FIXME("Stub: this=%p\n", this);
3807 
3808  return E_NOTIMPL;
3809 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetAdvise()

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

Implements IViewObject.

Definition at line 3830 of file CDefView.cpp.

3831 {
3832  TRACE("this=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n", this, pAspects, pAdvf, ppAdvSink);
3833 
3834  if (ppAdvSink)
3835  {
3836  *ppAdvSink = m_pAdvSink;
3837  m_pAdvSink.p->AddRef();
3838  }
3839 
3840  if (pAspects)
3841  *pAspects = m_dwAspects;
3842 
3843  if (pAdvf)
3844  *pAdvf = m_dwAdvf;
3845 
3846  return S_OK;
3847 }
CComPtr< IAdviseSink > m_pAdvSink
Definition: CDefView.cpp:134
#define TRACE(s)
Definition: solgame.cpp:4
ULONG AddRef()
#define S_OK
Definition: intsafe.h:52
DWORD m_dwAdvf
Definition: CDefView.cpp:133
DWORD m_dwAspects
Definition: CDefView.cpp:132

◆ GetArrangeParam()

HRESULT STDMETHODCALLTYPE CDefView::GetArrangeParam ( LPARAM sort)
virtual

Definition at line 3078 of file CDefView.cpp.

3079 {
3080  FIXME("(%p)->(%p) stub\n", this, sort);
3081  return E_NOTIMPL;
3082 }
_STLP_MOVE_TO_STD_NAMESPACE void sort(_RandomAccessIter __first, _RandomAccessIter __last)
Definition: _algo.c:993
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetAutoArrange()

HRESULT STDMETHODCALLTYPE CDefView::GetAutoArrange ( )
virtual

Implements IFolderView.

Definition at line 2899 of file CDefView.cpp.

2900 {
2901  return ((m_ListView.GetStyle() & LVS_AUTOARRANGE) ? S_OK : S_FALSE);
2902 }
#define S_FALSE
Definition: winerror.h:2357
#define LVS_AUTOARRANGE
Definition: commctrl.h:2272
CListView m_ListView
Definition: CDefView.cpp:117
#define S_OK
Definition: intsafe.h:52

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

3798 {
3799  FIXME("Stub: this=%p\n", this);
3800 
3801  return E_NOTIMPL;
3802 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetCurrentInfo()

HRESULT WINAPI CDefView::GetCurrentInfo ( LPFOLDERSETTINGS  pfs)
virtual

Implements IShellView.

Definition at line 2627 of file CDefView.cpp.

2628 {
2629  TRACE("(%p)->(%p) vmode=%x flags=%x\n", this, lpfs,
2631 
2632  if (!lpfs)
2633  return E_INVALIDARG;
2634 
2635  *lpfs = m_FolderSettings;
2636  return S_OK;
2637 }
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:119
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:52

◆ GetCurrentViewMode()

HRESULT STDMETHODCALLTYPE CDefView::GetCurrentViewMode ( UINT pViewMode)
virtual

Implements IFolderView.

Definition at line 2754 of file CDefView.cpp.

2755 {
2756  TRACE("(%p)->(%p), stub\n", this, pViewMode);
2757 
2758  if (!pViewMode)
2759  return E_INVALIDARG;
2760 
2761  *pViewMode = m_FolderSettings.ViewMode;
2762  return S_OK;
2763 }
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:119
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:52

◆ GetDefaultSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetDefaultSpacing ( POINT ppt)
virtual

Implements IFolderView.

Definition at line 2894 of file CDefView.cpp.

2895 {
2896  return E_NOTIMPL;
2897 }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetDragPoint()

HRESULT STDMETHODCALLTYPE CDefView::GetDragPoint ( POINT pt)
virtual

Definition at line 3199 of file CDefView.cpp.

3200 {
3201  if (!pt)
3202  return E_INVALIDARG;
3203 
3204  *pt = m_ptFirstMousePos;
3205  return S_OK;
3206 }
POINT m_ptFirstMousePos
Definition: CDefView.cpp:142
#define pt(x, y)
Definition: drawing.c:79
#define E_INVALIDARG
Definition: ddrawi.h:101
#define S_OK
Definition: intsafe.h:52

◆ GetDropPoint()

HRESULT STDMETHODCALLTYPE CDefView::GetDropPoint ( POINT pt)
virtual

Definition at line 3208 of file CDefView.cpp.

3209 {
3210  FIXME("(%p)->(%p) stub\n", this, pt);
3211  return E_NOTIMPL;
3212 }
#define pt(x, y)
Definition: drawing.c:79
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetFocusedItem()

HRESULT STDMETHODCALLTYPE CDefView::GetFocusedItem ( int piItem)
virtual

Implements IFolderView.

Definition at line 2856 of file CDefView.cpp.

2857 {
2858  TRACE("(%p)->(%p)\n", this, piItem);
2859 
2860  *piItem = m_ListView.GetNextItem(-1, LVNI_FOCUSED);
2861 
2862  return S_OK;
2863 }
int GetNextItem(int i, WORD flags)
Definition: rosctrls.h:161
CListView m_ListView
Definition: CDefView.cpp:117
#define LVNI_FOCUSED
Definition: commctrl.h:2423
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:52

◆ GetFolder()

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

Implements IFolderView.

Definition at line 2809 of file CDefView.cpp.

2810 {
2811  if (m_pSFParent == NULL)
2812  return E_FAIL;
2813 
2814  return m_pSFParent->QueryInterface(riid, ppv);
2815 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define E_FAIL
Definition: ddrawi.h:102
CComPtr< IShellFolder > m_pSFParent
Definition: CDefView.cpp:111
#define NULL
Definition: types.h:112

◆ GetItemObject()

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

Implements IShellView.

Definition at line 2703 of file CDefView.cpp.

2704 {
2706 
2707  TRACE("(%p)->(uItem=0x%08x,\n\tIID=%s, ppv=%p)\n", this, uItem, debugstr_guid(&riid), ppvOut);
2708 
2709  if (!ppvOut)
2710  return E_INVALIDARG;
2711 
2712  *ppvOut = NULL;
2713 
2714  switch (uItem)
2715  {
2716  case SVGIO_BACKGROUND:
2717  if (IsEqualIID(riid, IID_IContextMenu))
2718  {
2720  if (FAILED_UNEXPECTEDLY(hr))
2721  return hr;
2722 
2723  IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2724  }
2725  else if (IsEqualIID(riid, IID_IDispatch))
2726  {
2728  {
2730  if (FAILED_UNEXPECTEDLY(hr))
2731  return hr;
2732  }
2733  hr = m_pShellFolderViewDual->QueryInterface(riid, ppvOut);
2734  }
2735  break;
2736 
2737  case SVGIO_SELECTION:
2738  GetSelections();
2739  hr = m_pSFParent->GetUIObjectOf(m_hWnd, m_cidl, m_apidl, riid, 0, ppvOut);
2740  if (FAILED_UNEXPECTEDLY(hr))
2741  return hr;
2742 
2743  if (IsEqualIID(riid, IID_IContextMenu))
2744  IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2745 
2746  break;
2747  }
2748 
2749  TRACE("-- (%p)->(interface=%p)\n", this, *ppvOut);
2750 
2751  return hr;
2752 }
#define E_NOINTERFACE
Definition: winerror.h:2364
HRESULT WINAPI CDefViewDual_Constructor(REFIID riid, LPVOID *ppvOut)
HRESULT hr
Definition: shlfolder.c:183
REFIID riid
Definition: precomp.h:44
CComPtr< IShellFolderViewDual > m_pShellFolderViewDual
Definition: CDefView.cpp:116
CComPtr< IShellFolder2 > m_pSF2Parent
Definition: CDefView.cpp:112
HRESULT CDefViewBckgrndMenu_CreateInstance(IShellFolder *psf, REFIID riid, void **ppv)
HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site)
Definition: ordinal.c:1404
#define E_INVALIDARG
Definition: ddrawi.h:101
#define debugstr_guid
Definition: kernel32.h:35
UINT GetSelections()
Definition: CDefView.cpp:1469
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:79
#define FAILED_UNEXPECTEDLY(hr)
Definition: shellutils.h:82
const GUID IID_IDispatch
CComPtr< IShellFolder > m_pSFParent
Definition: CDefView.cpp:111
HWND m_hWnd
Definition: atlwin.h:267
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:127
#define NULL
Definition: types.h:112
UINT m_cidl
Definition: CDefView.cpp:126
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95

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

◆ GetItemPosition()

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

Implements IFolderView.

Definition at line 2865 of file CDefView.cpp.

2866 {
2867  int lvIndex = LV_FindItemByPidl(pidl);
2868  if (lvIndex == -1 || ppt == NULL)
2869  return E_INVALIDARG;
2870 
2871  m_ListView.GetItemPosition(lvIndex, ppt);
2872  return S_OK;
2873 }
int LV_FindItemByPidl(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:881
BOOL GetItemPosition(int nItem, POINT *pPoint)
Definition: rosctrls.h:231
#define E_INVALIDARG
Definition: ddrawi.h:101
CListView m_ListView
Definition: CDefView.cpp:117
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112

◆ GetItemSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetItemSpacing ( ITEMSPACING spacing)
virtual

Definition at line 3244 of file CDefView.cpp.

3245 {
3246  FIXME("(%p)->(%p) stub\n", this, spacing);
3247  return E_NOTIMPL;
3248 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetObject()

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

Definition at line 3104 of file CDefView.cpp.

3105 {
3106  TRACE("(%p)->(%p %d)\n", this, pidl, item);
3107  return Item(item, pidl);
3108 }
virtual HRESULT STDMETHODCALLTYPE Item(int iItemIndex, PITEMID_CHILD *ppidl)
Definition: CDefView.cpp:2817
#define TRACE(s)
Definition: solgame.cpp:4
static ATOM item
Definition: dde.c:856

Referenced by OnPrintClient().

◆ GetObjectCount()

HRESULT STDMETHODCALLTYPE CDefView::GetObjectCount ( UINT count)
virtual

Definition at line 3129 of file CDefView.cpp.

3130 {
3131  TRACE("(%p)->(%p)\n", this, count);
3133  return S_OK;
3134 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
int GetItemCount()
Definition: rosctrls.h:121
CListView m_ListView
Definition: CDefView.cpp:117
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:52

◆ GetSelectedCount()

HRESULT STDMETHODCALLTYPE CDefView::GetSelectedCount ( UINT count)
virtual

Definition at line 3161 of file CDefView.cpp.

3162 {
3163  FIXME("(%p)->(%p) stub\n", this, count);
3164  return E_NOTIMPL;
3165 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetSelectedObjects()

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

Definition at line 3167 of file CDefView.cpp.

3168 {
3169  TRACE("(%p)->(%p %p)\n", this, pidl, items);
3170 
3171  *items = GetSelections();
3172 
3173  if (*items)
3174  {
3175  *pidl = static_cast<PCUITEMID_CHILD *>(LocalAlloc(0, *items * sizeof(PCUITEMID_CHILD)));
3176  if (!*pidl)
3177  {
3178  return E_OUTOFMEMORY;
3179  }
3180 
3181  /* it's documented that caller shouldn't PIDLs, only array itself */
3182  memcpy(*pidl, m_apidl, *items * sizeof(PCUITEMID_CHILD));
3183  }
3184 
3185  return S_OK;
3186 }
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Definition: shtypes.idl:70
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
UINT GetSelections()
Definition: CDefView.cpp:1469
#define TRACE(s)
Definition: solgame.cpp:4
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:127
#define S_OK
Definition: intsafe.h:52
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1373
static TCHAR * items[]
Definition: page1.c:45

◆ GetSelectionMarkedItem()

HRESULT STDMETHODCALLTYPE CDefView::GetSelectionMarkedItem ( int piItem)
virtual

Implements IFolderView.

Definition at line 2847 of file CDefView.cpp.

2848 {
2849  TRACE("(%p)->(%p)\n", this, piItem);
2850 
2851  *piItem = m_ListView.GetSelectionMark();
2852 
2853  return S_OK;
2854 }
int GetSelectionMark()
Definition: rosctrls.h:156
CListView m_ListView
Definition: CDefView.cpp:117
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:52

◆ GetSelections()

UINT CDefView::GetSelections ( )

Definition at line 1469 of file CDefView.cpp.

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