ReactOS  0.4.15-dev-3193-g74513a7
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 (UINT uCommand)
 
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 OnNCDestroy (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 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 ()
 
virtual void OnFinalMessage (HWND)
 
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 (int nID)
 
UINT GetDlgItemInt (int nID, BOOL *lpTrans=NULL, BOOL bSigned=TRUE) const
 
UINT GetDlgItemText (int nID, LPTSTR lpStr, int nMaxCount) const
 
BOOL GetDlgItemText (int nID, 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 (LPTSTR lpszStringBuf, int nMaxCount) const
 
BOOL GetWindowText (BSTR &bstrText)
 
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)
 

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
 
BOOL m_isEditing
 
CLSID m_Category
 
BOOL m_Destroyed
 
SFVM_CUSTOMVIEWINFO_DATA m_viewinfo_data
 

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

Constructor & Destructor Documentation

◆ CDefView()

CDefView::CDefView ( )

Definition at line 381 of file CDefView.cpp.

381  :
382  m_ListView(),
384  m_hMenu(NULL),
389  m_uState(0),
390  m_cidl(0),
391  m_apidl(NULL),
393  m_hNotify(0),
394  m_hAccel(NULL),
395  m_dwAspects(0),
396  m_dwAdvf(0),
397  m_iDragOverItem(0),
398  m_cScrollDelay(0),
401 {
403  ZeroMemory(&m_sortInfo, sizeof(m_sortInfo));
405  ZeroMemory(&m_Category, sizeof(m_Category));
409 }
HMENU m_hMenuArrangeModes
Definition: CDefView.cpp:97
BOOL m_Destroyed
Definition: CDefView.cpp:126
HACCEL m_hAccel
Definition: CDefView.cpp:107
UINT m_cScrollDelay
Definition: CDefView.cpp:116
BOOL m_isEditing
Definition: CDefView.cpp:123
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:95
#define ZeroMemory
Definition: winbase.h:1664
HMENU m_hMenu
Definition: CDefView.cpp:96
#define COLOR_WINDOW
Definition: winuser.h:908
DWORD WINAPI GetSysColor(_In_ int)
#define FALSE
Definition: types.h:117
SFVM_CUSTOMVIEWINFO_DATA m_viewinfo_data
Definition: CDefView.cpp:127
HMENU m_hContextMenu
Definition: CDefView.cpp:99
PIDLIST_ABSOLUTE m_pidlParent
Definition: CDefView.cpp:104
ULONG m_hNotify
Definition: CDefView.cpp:106
CListView m_ListView
Definition: CDefView.cpp:93
HWND m_hWndParent
Definition: CDefView.cpp:94
UINT m_uState
Definition: CDefView.cpp:101
BOOL m_bmenuBarInitialized
Definition: CDefView.cpp:100
LISTVIEW_SORT_INFO m_sortInfo
Definition: CDefView.cpp:105
#define COLOR_WINDOWTEXT
Definition: winuser.h:911
LONG m_iDragOverItem
Definition: CDefView.cpp:115
POINT m_ptLastMousePos
Definition: CDefView.cpp:117
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:103
DWORD m_dwAdvf
Definition: CDefView.cpp:109
#define NULL
Definition: types.h:112
HMENU m_hMenuViewModes
Definition: CDefView.cpp:98
DWORD m_dwAspects
Definition: CDefView.cpp:108
UINT m_cidl
Definition: CDefView.cpp:102
CLSID m_Category
Definition: CDefView.cpp:125

◆ ~CDefView()

CDefView::~CDefView ( )

Definition at line 411 of file CDefView.cpp.

412 {
413  TRACE(" destroying IShellView(%p)\n", this);
414 
416 
418  {
421  }
422 
423  if (m_hWnd)
424  {
426  }
427 
428  SHFree(m_apidl);
429 }
virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow()
Definition: CDefView.cpp:2478
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
SFVM_CUSTOMVIEWINFO_DATA m_viewinfo_data
Definition: CDefView.cpp:127
#define TRACE(s)
Definition: solgame.cpp:4
#define SFVM_VIEWRELEASE
HWND m_hWnd
Definition: atlwin.h:268
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:103
#define NULL
Definition: types.h:112
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:331
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3745

Member Function Documentation

◆ _DoFolderViewCB()

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

Definition at line 3745 of file CDefView.cpp.

3746 {
3747  HRESULT hr = E_NOTIMPL;
3748 
3750  {
3751  hr = m_pShellFolderViewCB->MessageSFVCB(uMsg, wParam, lParam);
3752  }
3753 
3754  return hr;
3755 }
HRESULT hr
Definition: shlfolder.c:183
WPARAM wParam
Definition: combotst.c:138
CComPtr< IShellFolderViewCB > m_pShellFolderViewCB
Definition: CDefView.cpp:89
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 3426 of file CDefView.cpp.

3427 {
3428  RECT rcBound;
3429  INT i, nCount = m_ListView.GetItemCount();
3430  DWORD dwSpacing;
3431  INT dx, dy;
3432  BOOL bSmall = ((m_ListView.GetStyle() & LVS_TYPEMASK) != LVS_ICON);
3433 
3434  /* FIXME: LVM_GETORIGIN is broken. See CORE-17266 */
3435  pt.x += m_ListView.GetScrollPos(SB_HORZ);
3436  pt.y += m_ListView.GetScrollPos(SB_VERT);
3437 
3438  if (m_ListView.GetStyle() & LVS_ALIGNLEFT)
3439  {
3440  // vertically
3441  for (i = 0; i < nCount; ++i)
3442  {
3443  dwSpacing = ListView_GetItemSpacing(m_ListView, bSmall);
3444  dx = LOWORD(dwSpacing);
3445  dy = HIWORD(dwSpacing);
3447  rcBound.right = rcBound.left + dx;
3448  rcBound.bottom = rcBound.top + dy;
3449  if (pt.x < rcBound.right && pt.y < (rcBound.top + rcBound.bottom) / 2)
3450  {
3451  return i;
3452  }
3453  }
3454  for (i = nCount - 1; i >= 0; --i)
3455  {
3457  if (rcBound.left < pt.x && rcBound.top < pt.y)
3458  {
3459  return i + 1;
3460  }
3461  }
3462  }
3463  else
3464  {
3465  // horizontally
3466  for (i = 0; i < nCount; ++i)
3467  {
3468  dwSpacing = ListView_GetItemSpacing(m_ListView, bSmall);
3469  dx = LOWORD(dwSpacing);
3470  dy = HIWORD(dwSpacing);
3472  rcBound.right = rcBound.left + dx;
3473  rcBound.bottom = rcBound.top + dy;
3474  if (pt.y < rcBound.bottom && pt.x < rcBound.left)
3475  {
3476  return i;
3477  }
3478  if (pt.y < rcBound.bottom && pt.x < rcBound.right)
3479  {
3480  return i + 1;
3481  }
3482  }
3483  for (i = nCount - 1; i >= 0; --i)
3484  {
3486  if (rcBound.left < pt.x && rcBound.top < pt.y)
3487  {
3488  return i + 1;
3489  }
3490  }
3491  }
3492 
3493  return nCount;
3494 }
#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:93
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().

◆ _GetSnapToGrid()

HRESULT CDefView::_GetSnapToGrid ( )
private

Definition at line 2803 of file CDefView.cpp.

2804 {
2805  DWORD dwExStyle = (DWORD)m_ListView.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
2806  return ((dwExStyle & LVS_EX_SNAPTOGRID) ? S_OK : S_FALSE);
2807 }
#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:93
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().

◆ _MergeToolbar()

HRESULT CDefView::_MergeToolbar ( )
private

Definition at line 3718 of file CDefView.cpp.

3719 {
3721  HRESULT hr = S_OK;
3722 
3723  hr = IUnknown_QueryService(m_pShellBrowser, IID_IExplorerToolbar, IID_PPV_ARG(IExplorerToolbar, &ptb));
3724  if (FAILED(hr))
3725  return hr;
3726 
3727  m_Category = CGID_DefViewFrame;
3728 
3729  hr = ptb->SetCommandTarget(static_cast<IOleCommandTarget*>(this), &m_Category, 0);
3730  if (FAILED(hr))
3731  return hr;
3732 
3733  if (hr == S_FALSE)
3734  return S_OK;
3735 
3736 #if 0
3737  hr = ptb->AddButtons(&m_Category, buttonsCount, buttons);
3738  if (FAILED(hr))
3739  return hr;
3740 #endif
3741 
3742  return S_OK;
3743 }
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:90
CLSID m_Category
Definition: CDefView.cpp:125

Referenced by CreateViewWindow3().

◆ _MoveSelectionOnAutoArrange()

void CDefView::_MoveSelectionOnAutoArrange ( POINT  pt)
private

Definition at line 3510 of file CDefView.cpp.

3511 {
3512  // get insertable index from position
3513  INT iPosition = _FindInsertableIndexFromPoint(pt);
3514 
3515  // create identity mapping of indexes
3517  INT nCount = m_ListView.GetItemCount();
3518  for (INT i = 0; i < nCount; ++i)
3519  {
3520  array.Add(i);
3521  }
3522 
3523  // re-ordering mapping
3524  INT iItem = -1;
3525  while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3526  {
3527  INT iFrom = iItem, iTo = iPosition;
3528  if (iFrom < iTo)
3529  --iTo;
3530  if (iFrom >= nCount)
3531  iFrom = nCount - 1;
3532  if (iTo >= nCount)
3533  iTo = nCount - 1;
3534 
3535  // shift indexes by swapping (like a bucket relay)
3536  if (iFrom < iTo)
3537  {
3538  for (INT i = iFrom; i < iTo; ++i)
3539  {
3540  // swap array[i] and array[i + 1]
3541  INT tmp = array[i];
3542  array[i] = array[i + 1];
3543  array[i + 1] = tmp;
3544  }
3545  }
3546  else
3547  {
3548  for (INT i = iFrom; i > iTo; --i)
3549  {
3550  // swap array[i] and array[i - 1]
3551  INT tmp = array[i];
3552  array[i] = array[i - 1];
3553  array[i - 1] = tmp;
3554  }
3555  }
3556  }
3557 
3558  // create mapping (ListView's lParam to index) from array
3560  for (INT i = 0; i < nCount; ++i)
3561  {
3563  map.Add(lParam, i);
3564  }
3565 
3566  // finally sort
3568 }
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:3499
LONG_PTR LPARAM
Definition: windef.h:208
CListView m_ListView
Definition: CDefView.cpp:93
INT _FindInsertableIndexFromPoint(POINT pt)
Definition: CDefView.cpp:3426
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 782 of file CDefView.cpp.

783 {
784  return reinterpret_cast<PCUITEMID_CHILD>(m_ListView.GetItemData(i));
785 }
DWORD_PTR GetItemData(int i)
Definition: rosctrls.h:204
CListView m_ListView
Definition: CDefView.cpp:93
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(), and OnNotify().

◆ _PidlByItem() [2/2]

PCUITEMID_CHILD CDefView::_PidlByItem ( LVITEM lvItem)

Definition at line 787 of file CDefView.cpp.

788 {
789  return reinterpret_cast<PCUITEMID_CHILD>(lvItem.lParam);
790 }

◆ _Sort()

BOOL CDefView::_Sort ( )
private

Definition at line 748 of file CDefView.cpp.

749 {
750  HWND hHeader;
751  HDITEM hColumn;
752 
753  if (m_ListView.GetWindowLongPtr(GWL_STYLE) & LVS_NOSORTHEADER)
754  return TRUE;
755 
756  hHeader = (HWND)m_ListView.SendMessage(LVM_GETHEADER, 0, 0);
757  ZeroMemory(&hColumn, sizeof(hColumn));
758 
759  /* If the sorting column changed, remove the sorting style from the old column */
760  if ( (m_sortInfo.nLastHeaderID != -1) &&
762  {
763  hColumn.mask = HDI_FORMAT;
764  Header_GetItem(hHeader, m_sortInfo.nLastHeaderID, &hColumn);
765  hColumn.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN);
766  Header_SetItem(hHeader, m_sortInfo.nLastHeaderID, &hColumn);
767  }
768 
769  /* Set the sorting style to the new column */
770  hColumn.mask = HDI_FORMAT;
771  Header_GetItem(hHeader, m_sortInfo.nHeaderID, &hColumn);
772 
773  hColumn.fmt &= (m_sortInfo.bIsAscending ? ~HDF_SORTDOWN : ~HDF_SORTUP );
774  hColumn.fmt |= (m_sortInfo.bIsAscending ? HDF_SORTUP : HDF_SORTDOWN);
775  Header_SetItem(hHeader, m_sortInfo.nHeaderID, &hColumn);
776 
777  /* Sort the list, using the current values of nHeaderID and bIsAscending */
780 }
#define TRUE
Definition: types.h:120
static INT CALLBACK ListViewCompareItems(LPARAM lParam1, LPARAM lParam2, LPARAM lpData)
Definition: CDefView.cpp:732
HANDLE HWND
Definition: compat.h:19
#define ZeroMemory
Definition: winbase.h:1664
#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:93
LISTVIEW_SORT_INFO m_sortInfo
Definition: CDefView.cpp:105
#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 2996 of file CDefView.cpp.

2997 {
2998  TRACE("(%p)->(%p %p)\n", this, pidl, item);
2999  *item = LV_AddItem(pidl);
3000  return (int)*item >= 0 ? S_OK : E_OUTOFMEMORY;
3001 }
int LV_AddItem(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:811
#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 2538 of file CDefView.cpp.

2539 {
2540  FIXME("(%p) stub\n", this);
2541 
2542  return E_NOTIMPL;
2543 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ ArrangeGrid()

HRESULT STDMETHODCALLTYPE CDefView::ArrangeGrid ( )
virtual

Definition at line 2983 of file CDefView.cpp.

2984 {
2986  return S_OK;
2987 }
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:93
#define S_OK
Definition: intsafe.h:52

Referenced by OnCommand().

◆ AutoArrange()

HRESULT STDMETHODCALLTYPE CDefView::AutoArrange ( )
virtual

Definition at line 2989 of file CDefView.cpp.

2990 {
2991  m_ListView.ModifyStyle(0, LVS_AUTOARRANGE);
2993  return S_OK;
2994 }
BOOL Arrange(UINT nCode)
Definition: rosctrls.h:241
#define LVS_AUTOARRANGE
Definition: commctrl.h:2272
CListView m_ListView
Definition: CDefView.cpp:93
#define S_OK
Definition: intsafe.h:52
#define LVA_DEFAULT
Definition: commctrl.h:2527

Referenced by OnCommand().

◆ CheckToolbar()

void CDefView::CheckToolbar ( )

Definition at line 490 of file CDefView.cpp.

491 {
492  LRESULT result;
493 
494  TRACE("\n");
495 
496  if (m_pCommDlgBrowser != NULL)
497  {
498  m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_CHECKBUTTON,
500  m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_CHECKBUTTON,
502  m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_ENABLEBUTTON,
504  m_pShellBrowser->SendControlMsg(FCW_TOOLBAR, TB_ENABLEBUTTON,
506  }
507 }
#define FCIDM_TB_REPORTVIEW
Definition: shresdef.h:825
GLuint64EXT * result
Definition: glext.h:11304
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:95
#define TRUE
Definition: types.h:120
CComPtr< ICommDlgBrowser > m_pCommDlgBrowser
Definition: CDefView.cpp:91
#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:824
#define NULL
Definition: types.h:112
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:90
LONG_PTR LRESULT
Definition: windef.h:209

Referenced by CreateViewWindow3(), and OnCommand().

◆ CheckViewMode()

HRESULT CDefView::CheckViewMode ( HMENU  hmenuView)

Definition at line 1343 of file CDefView.cpp.

1344 {
1346  {
1347  UINT iItemFirst = FCIDM_SHVIEW_BIGICON;
1348  UINT iItemLast = iItemFirst + FVM_LAST - FVM_FIRST;
1349  UINT iItem = iItemFirst + m_FolderSettings.ViewMode - FVM_FIRST;
1350  CheckMenuRadioItem(hmenuView, iItemFirst, iItemLast, iItem, MF_BYCOMMAND);
1351  }
1352 
1353  return S_OK;
1354 }
#define MF_BYCOMMAND
Definition: winuser.h:202
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:95
BOOL WINAPI CheckMenuRadioItem(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT, _In_ UINT)
#define FCIDM_SHVIEW_BIGICON
Definition: shresdef.h:803
#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 2387 of file CDefView.cpp.

2388 {
2389  FIXME("(%p) stub\n", this);
2390 
2391  return E_NOTIMPL;
2392 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ CreateList()

BOOL CDefView::CreateList ( )

Definition at line 539 of file CDefView.cpp.

540 {
541  HRESULT hr;
542  DWORD dwStyle, dwExStyle;
543  UINT ViewMode;
544 
545  TRACE("%p\n", this);
546 
549  dwExStyle = WS_EX_CLIENTEDGE;
550 
552  dwStyle |= LVS_ALIGNLEFT;
553  else
554  dwStyle |= LVS_ALIGNTOP | LVS_SHOWSELALWAYS;
555 
556  ViewMode = m_FolderSettings.ViewMode;
557  hr = _DoFolderViewCB(SFVM_DEFVIEWMODE, 0, (LPARAM)&ViewMode);
558  if (SUCCEEDED(hr))
559  {
560  if (ViewMode >= FVM_FIRST && ViewMode <= FVM_LAST)
561  m_FolderSettings.ViewMode = ViewMode;
562  else
563  ERR("Ignoring invalid ViewMode from SFVM_DEFVIEWMODE: %u (was: %u)\n", ViewMode, m_FolderSettings.ViewMode);
564  }
565 
566  switch (m_FolderSettings.ViewMode)
567  {
568  case FVM_ICON:
569  dwStyle |= LVS_ICON;
570  break;
571 
572  case FVM_DETAILS:
573  dwStyle |= LVS_REPORT;
574  break;
575 
576  case FVM_SMALLICON:
577  dwStyle |= LVS_SMALLICON;
578  break;
579 
580  case FVM_LIST:
581  dwStyle |= LVS_LIST;
582  break;
583 
584  default:
585  dwStyle |= LVS_LIST;
586  break;
587  }
588 
590  dwStyle |= LVS_AUTOARRANGE;
591 
593  dwExStyle |= LVS_EX_SNAPTOGRID;
594 
597 
599  dwStyle |= LVS_SINGLESEL;
600 
602  dwExStyle &= ~WS_EX_CLIENTEDGE;
603 
604  RECT rcListView = {0,0,0,0};
605  m_ListView.Create(m_hWnd, rcListView, L"FolderView", dwStyle, dwExStyle, ID_LISTVIEW);
606 
607  if (!m_ListView)
608  return FALSE;
609 
611  m_sortInfo.nHeaderID = -1;
613 
614  /* UpdateShellSettings(); */
615  return TRUE;
616 }
#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:95
#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 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:93
#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:105
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
static const WCHAR L[]
Definition: oid.c:1250
HWND m_hWnd
Definition: atlwin.h:268
#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:372
#define LVS_SMALLICON
Definition: commctrl.h:2263
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3745
#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 2472 of file CDefView.cpp.

2473 {
2474  return CreateViewWindow3(psb, lpPrevView, SV3CVW3_DEFAULT,
2475  (FOLDERFLAGS)lpfs->fFlags, (FOLDERFLAGS)lpfs->fFlags, (FOLDERVIEWMODE)lpfs->ViewMode, NULL, prcView, phWnd);
2476 }
FOLDERVIEWMODE
Definition: shobjidl.idl:663
FOLDERFLAGS
Definition: shobjidl.idl:627
#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:2876

◆ CreateViewWindow2()

HRESULT STDMETHODCALLTYPE CDefView::CreateViewWindow2 ( LPSV2CVW2_PARAMS  view_params)
virtual

Implements IShellView2.

Definition at line 2869 of file CDefView.cpp.

2870 {
2871  return CreateViewWindow3(view_params->psbOwner, view_params->psvPrev,
2872  SV3CVW3_DEFAULT, (FOLDERFLAGS)view_params->pfs->fFlags, (FOLDERFLAGS)view_params->pfs->fFlags,
2873  (FOLDERVIEWMODE)view_params->pfs->ViewMode, view_params->pvid, view_params->prcView, &view_params->hwndView);
2874 }
FOLDERVIEWMODE
Definition: shobjidl.idl:663
FOLDERFLAGS
Definition: shobjidl.idl:627
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:2876

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

2877 {
2878  OLEMENUGROUPWIDTHS omw = { { 0, 0, 0, 0, 0, 0 } };
2879 
2880  *hwnd = NULL;
2881 
2882  TRACE("(%p)->(shlview=%p shlbrs=%p rec=%p hwnd=%p vmode=%x flags=%x)\n", this, psvPrevious, psb, prcView, hwnd, mode, flags);
2883  if (prcView != NULL)
2884  TRACE("-- left=%i top=%i right=%i bottom=%i\n", prcView->left, prcView->top, prcView->right, prcView->bottom);
2885 
2886  /* Validate the Shell Browser */
2887  if (psb == NULL || m_hWnd)
2888  return E_UNEXPECTED;
2889 
2890  if (view_flags != SV3CVW3_DEFAULT)
2891  FIXME("unsupported view flags 0x%08x\n", view_flags);
2892 
2893  /* Set up the member variables */
2894  m_pShellBrowser = psb;
2897 
2898  if (view_id)
2899  {
2900  if (IsEqualIID(*view_id, VID_LargeIcons))
2902  else if (IsEqualIID(*view_id, VID_SmallIcons))
2904  else if (IsEqualIID(*view_id, VID_List))
2906  else if (IsEqualIID(*view_id, VID_Details))
2908  else if (IsEqualIID(*view_id, VID_Thumbnails))
2910  else if (IsEqualIID(*view_id, VID_Tile))
2912  else if (IsEqualIID(*view_id, VID_ThumbStrip))
2914  else
2915  FIXME("Ignoring unrecognized VID %s\n", debugstr_guid(view_id));
2916  }
2917 
2918  /* Get our parent window */
2919  m_pShellBrowser->GetWindow(&m_hWndParent);
2920 
2921  /* Try to get the ICommDlgBrowserInterface, adds a reference !!! */
2924  {
2925  TRACE("-- CommDlgBrowser\n");
2926  }
2927 
2929  if (m_hWnd == NULL)
2930  return E_FAIL;
2931 
2932  *hwnd = m_hWnd;
2933 
2934  CheckToolbar();
2935 
2936  if (!*hwnd)
2937  return E_FAIL;
2938 
2940 
2942  UpdateWindow();
2943 
2944  if (!m_hMenu)
2945  {
2946  m_hMenu = CreateMenu();
2947  m_pShellBrowser->InsertMenusSB(m_hMenu, &omw);
2948  TRACE("-- after fnInsertMenusSB\n");
2949  }
2950 
2951  _MergeToolbar();
2952 
2953  return S_OK;
2954 }
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
HMENU WINAPI CreateMenu(void)
Definition: menu.c:837
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:95
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:1666
#define U(x)
Definition: wordpad.c:45
CComPtr< ICommDlgBrowser > m_pCommDlgBrowser
Definition: CDefView.cpp:91
BOOL SetWindowPos(HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
Definition: atlwin.h:1223
LONG top
Definition: windef.h:307
#define HWND_TOP
Definition: winuser.h:1193
UINT_PTR WPARAM
Definition: windef.h:207
#define WS_CHILD
Definition: pedump.c:617
HMENU m_hMenu
Definition: CDefView.cpp:96
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:3718
#define debugstr_guid
Definition: kernel32.h:35
HWND m_hWndParent
Definition: CDefView.cpp:94
#define TRACE(s)
Definition: solgame.cpp:4
#define SFVM_WINDOWCREATED
Definition: shlobj.h:1235
BOOL UpdateWindow()
Definition: atlwin.h:1280
void CheckToolbar()
Definition: CDefView.cpp:490
GLbitfield flags
Definition: glext.h:7161
HWND m_hWnd
Definition: atlwin.h:268
#define WS_TABSTOP
Definition: pedump.c:634
GLenum mode
Definition: glext.h:6217
#define SWP_NOSIZE
Definition: winuser.h:1231
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
#define SWP_SHOWWINDOW
Definition: winuser.h:1234
#define E_UNEXPECTED
Definition: winerror.h:2456
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:90
LONG bottom
Definition: windef.h:309
#define SWP_NOMOVE
Definition: winuser.h:1230
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3745

Referenced by CreateViewWindow(), and CreateViewWindow2().

◆ DestroyViewWindow()

HRESULT WINAPI CDefView::DestroyViewWindow ( )
virtual

Implements IShellView.

Definition at line 2478 of file CDefView.cpp.

2479 {
2480  TRACE("(%p)\n", this);
2481 
2482  /* Make absolutely sure all our UI is cleaned up */
2484 
2485  if (m_hAccel)
2486  {
2487  // "Accelerator tables loaded from resources are freed automatically when the application terminates." -- MSDN
2488  m_hAccel = NULL;
2489  }
2490 
2491  if (m_hMenuArrangeModes)
2492  {
2495  }
2496 
2497  if (m_hMenuViewModes)
2498  {
2501  }
2502 
2503  if (m_hMenu)
2504  {
2506  m_hMenu = NULL;
2507  }
2508 
2509  if (m_ListView)
2510  {
2511  m_ListView.DestroyWindow();
2512  }
2513 
2514  if (m_hWnd)
2515  {
2517  DestroyWindow();
2518  }
2519 
2522 
2523  return S_OK;
2524 }
HMENU m_hMenuArrangeModes
Definition: CDefView.cpp:97
HACCEL m_hAccel
Definition: CDefView.cpp:107
CComPtr< ICommDlgBrowser > m_pCommDlgBrowser
Definition: CDefView.cpp:91
UINT_PTR WPARAM
Definition: windef.h:207
HMENU m_hMenu
Definition: CDefView.cpp:96
#define SFVM_WINDOWCLOSING
virtual HRESULT STDMETHODCALLTYPE UIActivate(UINT uState)
Definition: CDefView.cpp:2423
CListView m_ListView
Definition: CDefView.cpp:93
#define TRACE(s)
Definition: solgame.cpp:4
HWND m_hWnd
Definition: atlwin.h:268
BOOL DestroyWindow()
Definition: atlwin.h:428
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define S_OK
Definition: intsafe.h:52
void Release()
Definition: atlcomcli.h:140
#define NULL
Definition: types.h:112
HMENU m_hMenuViewModes
Definition: CDefView.cpp:98
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:90
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3745

Referenced by ~CDefView().

◆ DoActivate()

void CDefView::DoActivate ( UINT  uState)

Definition at line 1670 of file CDefView.cpp.

1671 {
1672  TRACE("%p uState=%x\n", this, uState);
1673 
1674  /*don't do anything if the state isn't really changing */
1675  if (m_uState == uState)
1676  {
1677  return;
1678  }
1679 
1680  if (uState == SVUIA_DEACTIVATE)
1681  {
1682  OnDeactivate();
1683  }
1684  else
1685  {
1687  {
1688  FillEditMenu();
1689  FillViewMenu();
1690  m_pShellBrowser->SetMenuSB(m_hMenu, 0, m_hWnd);
1692  }
1693 
1694  if (SVUIA_ACTIVATE_FOCUS == uState)
1695  {
1696  m_ListView.SetFocus();
1697  }
1698  }
1699 
1700  m_uState = uState;
1701  TRACE("--\n");
1702 }
HRESULT FillViewMenu()
Definition: CDefView.cpp:1287
HRESULT FillEditMenu()
Definition: CDefView.cpp:1270
#define TRUE
Definition: types.h:120
HMENU m_hMenu
Definition: CDefView.cpp:96
CListView m_ListView
Definition: CDefView.cpp:93
#define TRACE(s)
Definition: solgame.cpp:4
UINT m_uState
Definition: CDefView.cpp:101
BOOL m_bmenuBarInitialized
Definition: CDefView.cpp:100
HWND m_hWnd
Definition: atlwin.h:268
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:90
void OnDeactivate()
Definition: CDefView.cpp:1658

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

◆ drag_notify_subitem()

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

Definition at line 3264 of file CDefView.cpp.

3265 {
3266  LONG lResult;
3267  HRESULT hr;
3268  RECT clientRect;
3269 
3270  /* The key state on drop doesn't have MK_LBUTTON or MK_RBUTTON because it
3271  reflects the key state after the user released the button, so we need
3272  to remember the last key state when the button was pressed */
3273  m_grfKeyState = grfKeyState;
3274 
3275  /* Map from global to client coordinates and query the index of the listview-item, which is
3276  * currently under the mouse cursor. */
3277  LVHITTESTINFO htinfo = {{pt.x, pt.y}, LVHT_ONITEM};
3278  ScreenToClient(&htinfo.pt);
3279  lResult = m_ListView.HitTest(&htinfo);
3280 
3281  /* Send WM_*SCROLL messages every 250 ms during drag-scrolling */
3282  ::GetClientRect(m_ListView, &clientRect);
3283  if (htinfo.pt.x == m_ptLastMousePos.x && htinfo.pt.y == m_ptLastMousePos.y &&
3284  (htinfo.pt.x < SCROLLAREAWIDTH || htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH ||
3285  htinfo.pt.y < SCROLLAREAWIDTH || htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH ))
3286  {
3287  m_cScrollDelay = (m_cScrollDelay + 1) % 5; /* DragOver is called every 50 ms */
3288  if (m_cScrollDelay == 0)
3289  {
3290  /* Mouse did hover another 250 ms over the scroll-area */
3291  if (htinfo.pt.x < SCROLLAREAWIDTH)
3292  m_ListView.SendMessageW(WM_HSCROLL, SB_LINEUP, 0);
3293 
3294  if (htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH)
3295  m_ListView.SendMessageW(WM_HSCROLL, SB_LINEDOWN, 0);
3296 
3297  if (htinfo.pt.y < SCROLLAREAWIDTH)
3298  m_ListView.SendMessageW(WM_VSCROLL, SB_LINEUP, 0);
3299 
3300  if (htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH)
3301  m_ListView.SendMessageW(WM_VSCROLL, SB_LINEDOWN, 0);
3302  }
3303  }
3304  else
3305  {
3306  m_cScrollDelay = 0; /* Reset, if the cursor is not over the listview's scroll-area */
3307  }
3308 
3309  m_ptLastMousePos = htinfo.pt;
3311 
3312  /* We need to check if we drag the selection over itself */
3313  if (lResult != -1 && m_pSourceDataObject.p != NULL)
3314  {
3315  PCUITEMID_CHILD pidl = _PidlByItem(lResult);
3316 
3317  for (UINT i = 0; i < m_cidl; i++)
3318  {
3319  if (pidl == m_apidl[i])
3320  {
3321  /* The item that is being draged is hovering itself. */
3322  lResult = -1;
3323  break;
3324  }
3325  }
3326  }
3327 
3328  /* If we are still over the previous sub-item, notify it via DragOver and return. */
3329  if (m_pCurDropTarget && lResult == m_iDragOverItem)
3330  return m_pCurDropTarget->DragOver(grfKeyState, pt, pdwEffect);
3331 
3332  /* We've left the previous sub-item, notify it via DragLeave and Release it. */
3333  if (m_pCurDropTarget)
3334  {
3336  if (pidl)
3337  SelectItem(pidl, 0);
3338 
3339  m_pCurDropTarget->DragLeave();
3341  }
3342 
3343  m_iDragOverItem = lResult;
3344 
3345  if (lResult == -1)
3346  {
3347  /* We are not above one of the listview's subitems. Bind to the parent folder's
3348  * DropTarget interface. */
3349  hr = m_pSFParent->CreateViewObject(NULL, IID_PPV_ARG(IDropTarget,&m_pCurDropTarget));
3350  }
3351  else
3352  {
3353  /* Query the relative PIDL of the shellfolder object represented by the currently
3354  * dragged over listview-item ... */
3355  PCUITEMID_CHILD pidl = _PidlByItem(lResult);
3356 
3357  /* ... and bind m_pCurDropTarget to the IDropTarget interface of an UIObject of this object */
3358  hr = m_pSFParent->GetUIObjectOf(m_ListView, 1, &pidl, IID_NULL_PPV_ARG(IDropTarget, &m_pCurDropTarget));
3359  }
3360 
3362 
3363  /* If anything failed, m_pCurDropTarget should be NULL now, which ought to be a save state. */
3364  if (FAILED(hr))
3365  {
3366  *pdwEffect = DROPEFFECT_NONE;
3367  return hr;
3368  }
3369 
3370  if (m_iDragOverItem != -1)
3371  {
3372  SelectItem(m_iDragOverItem, SVSI_SELECT);
3373  }
3374 
3375  /* Notify the item just entered via DragEnter. */
3376  return m_pCurDropTarget->DragEnter(m_pCurDataObject, grfKeyState, pt, pdwEffect);
3377 }
UINT m_cScrollDelay
Definition: CDefView.cpp:116
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:782
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:62
long LONG
Definition: pedump.c:60
CComPtr< IDataObject > m_pCurDataObject
Definition: CDefView.cpp:114
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:507
CListView m_ListView
Definition: CDefView.cpp:93
#define SCROLLAREAWIDTH
Definition: CDefView.cpp:3262
CComPtr< IDataObject > m_pSourceDataObject
Definition: CDefView.cpp:112
#define IID_NULL_PPV_ARG(Itype, ppType)
LONG HRESULT
Definition: typedefs.h:79
LONG m_iDragOverItem
Definition: CDefView.cpp:115
POINT m_ptLastMousePos
Definition: CDefView.cpp:117
BOOL ScreenToClient(LPPOINT lpPoint) const
Definition: atlwin.h:1027
CComPtr< IShellFolder > m_pSFParent
Definition: CDefView.cpp:87
CComPtr< IDropTarget > m_pCurDropTarget
Definition: CDefView.cpp:113
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:103
DWORD m_grfKeyState
Definition: CDefView.cpp:119
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:140
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:1726
#define SB_LINEUP
Definition: winuser.h:564
LONG bottom
Definition: windef.h:309
UINT m_cidl
Definition: CDefView.cpp:102
#define WM_VSCROLL
Definition: winuser.h:1727
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 3379 of file CDefView.cpp.

3380 {
3381  if (*pdwEffect == DROPEFFECT_NONE)
3382  return S_OK;
3383 
3384  /* Get a hold on the data object for later calls to DragEnter on the sub-folders */
3385  m_pCurDataObject = pDataObject;
3386 
3387  HRESULT hr = drag_notify_subitem(grfKeyState, pt, pdwEffect);
3388  if (SUCCEEDED(hr))
3389  {
3390  POINT ptClient = {pt.x, pt.y};
3391  ScreenToClient(&ptClient);
3392  ImageList_DragEnter(m_hWnd, ptClient.x, ptClient.y);
3393  }
3394 
3395  return hr;
3396 }
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:114
if SUCCEEDED(hr)
LONG HRESULT
Definition: typedefs.h:79
BOOL ScreenToClient(LPPOINT lpPoint) const
Definition: atlwin.h:1027
HWND m_hWnd
Definition: atlwin.h:268
#define S_OK
Definition: intsafe.h:52
HRESULT drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
Definition: CDefView.cpp:3264

◆ DragLeave()

HRESULT WINAPI CDefView::DragLeave ( void  )
virtual

Implements IDropTarget.

Definition at line 3406 of file CDefView.cpp.

3407 {
3409 
3410  if (m_pCurDropTarget)
3411  {
3412  m_pCurDropTarget->DragLeave();
3414  }
3415 
3416  if (m_pCurDataObject != NULL)
3417  {
3419  }
3420 
3421  m_iDragOverItem = 0;
3422 
3423  return S_OK;
3424 }
CComPtr< IDataObject > m_pCurDataObject
Definition: CDefView.cpp:114
LONG m_iDragOverItem
Definition: CDefView.cpp:115
HWND m_hWnd
Definition: atlwin.h:268
CComPtr< IDropTarget > m_pCurDropTarget
Definition: CDefView.cpp:113
#define S_OK
Definition: intsafe.h:52
BOOL WINAPI ImageList_DragLeave(HWND hwndLock)
Definition: imagelist.c:992
void Release()
Definition: atlcomcli.h:140
#define NULL
Definition: types.h:112

◆ DragOver()

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

Implements IDropTarget.

Definition at line 3398 of file CDefView.cpp.

3399 {
3400  POINT ptClient = {pt.x, pt.y};
3401  ScreenToClient(&ptClient);
3402  ImageList_DragMove(ptClient.x, ptClient.y);
3403  return drag_notify_subitem(grfKeyState, pt, pdwEffect);
3404 }
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:1027
HRESULT drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
Definition: CDefView.cpp:3264

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

3650 {
3651  FIXME("Stub: this=%p\n", this);
3652 
3653  return E_NOTIMPL;
3654 }
#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 3570 of file CDefView.cpp.

3571 {
3574 
3575  if ((IsDropOnSource(NULL) == S_OK) &&
3576  (*pdwEffect & DROPEFFECT_MOVE) &&
3578  {
3579  if (m_pCurDropTarget)
3580  {
3581  m_pCurDropTarget->DragLeave();
3583  }
3584 
3585  POINT ptDrop = { pt.x, pt.y };
3586  ::ScreenToClient(m_ListView, &ptDrop);
3587  ::ClientToListView(m_ListView, &ptDrop);
3588  m_ptLastMousePos = ptDrop;
3589 
3591  if (m_ListView.GetStyle() & LVS_AUTOARRANGE)
3592  {
3594  }
3595  else
3596  {
3597  POINT ptItem;
3598  INT iItem = -1;
3599  while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3600  {
3601  if (m_ListView.GetItemPosition(iItem, &ptItem))
3602  {
3603  ptItem.x += m_ptLastMousePos.x - m_ptFirstMousePos.x;
3604  ptItem.y += m_ptLastMousePos.y - m_ptFirstMousePos.y;
3605  m_ListView.SetItemPosition(iItem, &ptItem);
3606  }
3607  }
3608  }
3610  }
3611  else if (m_pCurDropTarget)
3612  {
3613  m_pCurDropTarget->Drop(pDataObject, grfKeyState, pt, pdwEffect);
3615  }
3616 
3618  m_iDragOverItem = 0;
3619  return S_OK;
3620 }
POINT m_ptFirstMousePos
Definition: CDefView.cpp:118
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
#define MK_LBUTTON
Definition: winuser.h:2343
#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:62
#define FALSE
Definition: types.h:117
CComPtr< IDataObject > m_pCurDataObject
Definition: CDefView.cpp:114
BOOL GetItemPosition(int nItem, POINT *pPoint)
Definition: rosctrls.h:231
void _MoveSelectionOnAutoArrange(POINT pt)
Definition: CDefView.cpp:3510
#define LVS_AUTOARRANGE
Definition: commctrl.h:2272
CListView m_ListView
Definition: CDefView.cpp:93
LONG m_iDragOverItem
Definition: CDefView.cpp:115
POINT m_ptLastMousePos
Definition: CDefView.cpp:117
BOOL ScreenToClient(LPPOINT lpPoint) const
Definition: atlwin.h:1027
virtual HRESULT STDMETHODCALLTYPE IsDropOnSource(IDropTarget *drop_target)
Definition: CDefView.cpp:3087
HWND m_hWnd
Definition: atlwin.h:268
CComPtr< IDropTarget > m_pCurDropTarget
Definition: CDefView.cpp:113
#define S_OK
Definition: intsafe.h:52
DWORD m_grfKeyState
Definition: CDefView.cpp:119
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:140
#define NULL
Definition: types.h:112

◆ EnableModeless()

HRESULT WINAPI CDefView::EnableModeless ( BOOL  fEnable)
virtual

Implements IShellView.

Definition at line 2416 of file CDefView.cpp.

2417 {
2418  FIXME("(%p) stub\n", this);
2419 
2420  return E_NOTIMPL;
2421 }
#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 3201 of file CDefView.cpp.

3202 {
3203  FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08x Opt:0x%08x %p %p)\n",
3204  this, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
3205 
3206  if (!pguidCmdGroup)
3207  return OLECMDERR_E_UNKNOWNGROUP;
3208 
3209  if (IsEqualCLSID(*pguidCmdGroup, m_Category))
3210  {
3211  if (nCmdID == FCIDM_SHVIEW_AUTOARRANGE)
3212  {
3213  if (V_VT(pvaIn) != VT_INT_PTR)
3214  return OLECMDERR_E_NOTSUPPORTED;
3215 
3216  TPMPARAMS params;
3217  params.cbSize = sizeof(params);
3218  params.rcExclude = *(RECT*) V_INTREF(pvaIn);
3219 
3220  if (m_hMenuViewModes)
3221  {
3222  /* Duplicate all but the last two items of the view modes menu */
3223  HMENU hmenuViewPopup = CreatePopupMenu();
3224  Shell_MergeMenus(hmenuViewPopup, m_hMenuViewModes, 0, 0, 0xFFFF, 0);
3225  DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3226  DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3227  CheckViewMode(hmenuViewPopup);
3228  TrackPopupMenuEx(hmenuViewPopup, TPM_LEFTALIGN | TPM_TOPALIGN, params.rcExclude.left, params.rcExclude.bottom, m_hWndParent, &params);
3229  ::DestroyMenu(hmenuViewPopup);
3230  }
3231 
3232  // pvaOut is VT_I4 with value 0x403 (cmd id of the new mode maybe?)
3233  V_VT(pvaOut) = VT_I4;
3234  V_I4(pvaOut) = 0x403;
3235  }
3236  }
3237 
3238  if (IsEqualIID(*pguidCmdGroup, CGID_Explorer) &&
3239  (nCmdID == 0x29) &&
3240  (nCmdexecopt == 4) && pvaOut)
3241  return S_OK;
3242 
3243  if (IsEqualIID(*pguidCmdGroup, CGID_ShellDocView) &&
3244  (nCmdID == 9) &&
3245  (nCmdexecopt == 0))
3246  return 1;
3247 
3248  return OLECMDERR_E_UNKNOWNGROUP;
3249 }
Definition: compat.h:2157
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:857
#define FCIDM_SHVIEW_AUTOARRANGE
Definition: shresdef.h:808
#define TPM_LEFTALIGN
Definition: winuser.h:2353
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:2359
#define FIXME(fmt,...)
Definition: debug.h:111
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
HRESULT CheckViewMode(HMENU hmenuView)
Definition: CDefView.cpp:1343
#define debugstr_guid
Definition: kernel32.h:35
#define V_INTREF(A)
Definition: oleauto.h:252
HWND m_hWndParent
Definition: CDefView.cpp:94
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:98
#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:125

◆ fill_list()

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

Definition at line 916 of file CDefView.cpp.

917 {
918  PITEMID_CHILD pidl = static_cast<PITEMID_CHILD>(ptr);
919  CDefView *pThis = static_cast<CDefView *>(arg);
920 
921  /* in a commdlg This works as a filemask*/
922  if (pThis->IncludeObject(pidl) == S_OK)
923  pThis->LV_AddItem(pidl);
924 
925  SHFree(pidl);
926  return TRUE;
927 }
int LV_AddItem(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:811
#define TRUE
Definition: types.h:120
static PVOID ptr
Definition: dispmode.c:27
HRESULT IncludeObject(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:443
#define S_OK
Definition: intsafe.h:52
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:331

Referenced by FillList().

◆ FillArrangeAsMenu()

HRESULT CDefView::FillArrangeAsMenu ( HMENU  hmenuArrange)

Definition at line 1303 of file CDefView.cpp.

1304 {
1305  /* We only need to fill this once */
1306  if (GetMenuItemID(hmenuArrange, 0) == FCIDM_SHVIEW_AUTOARRANGE)
1307  {
1308  Shell_MergeMenus(hmenuArrange, m_hMenuArrangeModes, 0, 0, 0xFFFF,0);
1309  }
1310 
1311  /* Also check the menu item according to which we sort */
1312  CheckMenuRadioItem(hmenuArrange,
1313  0x30,
1314  0x100,
1315  m_sortInfo.nHeaderID + 0x30,
1316  MF_BYCOMMAND);
1317 
1319  {
1322  }
1323  else
1324  {
1327 
1328  if (GetAutoArrange() == S_OK)
1330  else
1332 
1333  if (_GetSnapToGrid() == S_OK)
1335  else
1337  }
1338 
1339 
1340  return S_OK;
1341 }
HMENU m_hMenuArrangeModes
Definition: CDefView.cpp:97
virtual HRESULT STDMETHODCALLTYPE GetAutoArrange()
Definition: CDefView.cpp:2798
HRESULT _GetSnapToGrid()
Definition: CDefView.cpp:2803
#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:857
#define FCIDM_SHVIEW_AUTOARRANGE
Definition: shresdef.h:808
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:95
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:105
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:810
#define MF_GRAYED
Definition: winuser.h:129

Referenced by OnInitMenuPopup().

◆ FillEditMenu()

HRESULT CDefView::FillEditMenu ( )

Definition at line 1270 of file CDefView.cpp.

1271 {
1273  if (!hEditMenu)
1274  return E_FAIL;
1275 
1276  HMENU hmenuContents = ::LoadMenuW(shell32_hInstance, L"MENU_003");
1277  if (!hmenuContents)
1278  return E_FAIL;
1279 
1280  Shell_MergeMenus(hEditMenu, hmenuContents, 0, 0, 0xFFFF, 0);
1281 
1282  ::DestroyMenu(hmenuContents);
1283 
1284  return S_OK;
1285 }
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:857
HMENU m_hMenu
Definition: CDefView.cpp:96
#define E_FAIL
Definition: ddrawi.h:102
#define FCIDM_MENU_EDIT
Definition: shlobj.h:558
static const WCHAR L[]
Definition: oid.c:1250
BOOL WINAPI DestroyMenu(_In_ HMENU)
HMENU GetSubmenuByID(HMENU hmenu, UINT id)
Definition: CDefView.cpp:1213
#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 1233 of file CDefView.cpp.

1234 {
1236  if (!hFileMenu)
1237  return E_FAIL;
1238 
1239  /* Cleanup the items added previously */
1240  for (int i = GetMenuItemCount(hFileMenu) - 1; i >= 0; i--)
1241  {
1242  UINT id = GetMenuItemID(hFileMenu, i);
1244  DeleteMenu(hFileMenu, i, MF_BYPOSITION);
1245  }
1246 
1248 
1249  /* Store the context menu in m_pCM and keep it in order to invoke the selected command later on */
1252  if (FAILED_UNEXPECTEDLY(hr))
1253  return hr;
1254 
1256 
1257  hr = m_pCM->QueryContextMenu(hmenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, 0);
1258  if (FAILED_UNEXPECTEDLY(hr))
1259  return hr;
1260 
1261  // TODO: filter or something
1262 
1263  Shell_MergeMenus(hFileMenu, hmenu, 0, 0, 0xFFFF, MM_ADDSEPARATOR | MM_SUBMENUSHAVEIDS);
1264 
1266 
1267  return S_OK;
1268 }
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:857
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:96
virtual HRESULT STDMETHODCALLTYPE GetItemObject(UINT uItem, REFIID riid, void **ppv)
Definition: CDefView.cpp:2602
#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
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
CListView m_ListView
Definition: CDefView.cpp:93
#define FCIDM_SHVIEWLAST
Definition: shlobj.h:541
#define FCIDM_MENU_FILE
Definition: shlobj.h:557
#define MM_ADDSEPARATOR
Definition: shlobj.h:2345
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
CComPtr< IContextMenu > m_pCM
Definition: CDefView.cpp:121
BOOL WINAPI DestroyMenu(_In_ HMENU)
HMENU GetSubmenuByID(HMENU hmenu, UINT id)
Definition: CDefView.cpp:1213
#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
unsigned int UINT
Definition: ndis.h:50
UINT WINAPI GetMenuItemID(_In_ HMENU, _In_ int)
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:846
#define MM_SUBMENUSHAVEIDS
Definition: shlobj.h:2346
GLenum GLuint id
Definition: glext.h:5579
UINT m_cidl
Definition: CDefView.cpp:102
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 929 of file CDefView.cpp.

930 {
931  CComPtr<IEnumIDList> pEnumIDList;
932  PITEMID_CHILD pidl;
933  DWORD dwFetched;
934  HRESULT hRes;
935  HDPA hdpa;
936  DWORD dFlags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS;
937  DWORD dwValue, cbValue;
938 
939  TRACE("%p\n", this);
940 
941  /* determine if there is a setting to show all the hidden files/folders */
942  dwValue = 1;
943  cbValue = sizeof(dwValue);
945  L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
946  L"Hidden", NULL, &dwValue, &cbValue);
947  if (dwValue == 1)
948  {
949  dFlags |= SHCONTF_INCLUDEHIDDEN;
950  m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
951  }
952 
953  dwValue = 0;
954  cbValue = sizeof(dwValue);
956  L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
957  L"ShowSuperHidden", NULL, &dwValue, &cbValue);
958  if (dwValue)
959  {
960  dFlags |= SHCONTF_INCLUDESUPERHIDDEN;
961  m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
962  }
963 
964  /* get the itemlist from the shfolder */
965  hRes = m_pSFParent->EnumObjects(m_hWnd, dFlags, &pEnumIDList);
966  if (hRes != S_OK)
967  {
968  if (hRes == S_FALSE)
969  return(NOERROR);
970  return(hRes);
971  }
972 
973  /* create a pointer array */
974  hdpa = DPA_Create(16);
975  if (!hdpa)
976  {
977  return(E_OUTOFMEMORY);
978  }
979 
980  /* copy the items into the array*/
981  while((S_OK == pEnumIDList->Next(1, &pidl, &dwFetched)) && dwFetched)
982  {
983  if (DPA_InsertPtr(hdpa, 0x7fff, pidl) == -1)
984  {
985  SHFree(pidl);
986  }
987  }
988 
989  /*turn the listview's redrawing off*/
991 
992  DPA_DestroyCallback( hdpa, fill_list, this);
993 
994  /* sort the array */
995  if (m_pSF2Parent)
996  {
997  m_pSF2Parent->GetDefaultColumn(NULL, (ULONG*)&m_sortInfo.nHeaderID, NULL);
998  }
999  else
1000  {
1001  FIXME("no m_pSF2Parent\n");
1002  }
1004  _Sort();
1005 
1007  {
1010  }
1011 
1012  // load custom background image and custom text color
1015 
1016  /*turn the listview's redrawing back on and force it to draw*/
1018 
1019  UpdateListColors();
1020 
1022  {
1023  // redraw now
1024  m_ListView.InvalidateRect(NULL, TRUE);
1025  }
1026 
1028 
1029  return S_OK;
1030 }
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:95
#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:88
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define FALSE
Definition: types.h:117
SFVM_CUSTOMVIEWINFO_DATA m_viewinfo_data
Definition: CDefView.cpp:127
#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:916
LONG_PTR LPARAM
Definition: windef.h:208
CListView m_ListView
Definition: CDefView.cpp:93
void UpdateListColors()
Definition: CDefView.cpp:618
#define TRACE(s)
Definition: solgame.cpp:4
LISTVIEW_SORT_INFO m_sortInfo
Definition: CDefView.cpp:105
LONG HRESULT
Definition: typedefs.h:79
unsigned long DWORD
Definition: ntddk_ex.h:95
static const WCHAR L[]
Definition: oid.c:1250
INT WINAPI DPA_InsertPtr(HDPA hdpa, INT i, LPVOID p)
Definition: dpa.c:591
BOOL _Sort()
Definition: CDefView.cpp:748
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:87
HWND m_hWnd
Definition: atlwin.h:268
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:331
unsigned int ULONG
Definition: retypes.h:1
Definition: dpa.c:48
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3745

Referenced by OnCreate(), and Refresh().

◆ FillViewMenu()

HRESULT CDefView::FillViewMenu ( )

Definition at line 1287 of file CDefView.cpp.

1288 {
1290  if (!hViewMenu)
1291  return E_FAIL;
1292 
1294  if (!m_hMenuViewModes)
1295  return E_FAIL;
1296 
1299 
1300  return S_OK;
1301 }
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:857
#define FCIDM_MENU_VIEW_SEP_OPTIONS
Definition: shlobj.h:560
HMENU m_hMenu
Definition: CDefView.cpp:96
#define E_FAIL
Definition: ddrawi.h:102
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:2345
static const WCHAR L[]
Definition: oid.c:1250
HMENU GetSubmenuByID(HMENU hmenu, UINT id)
Definition: CDefView.cpp:1213
#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:98
#define MM_SUBMENUSHAVEIDS
Definition: shlobj.h:2346
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:2347

Referenced by DoActivate().

◆ Freeze()

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

Implements IViewObject.

Definition at line 3663 of file CDefView.cpp.

3664 {
3665  FIXME("Stub: this=%p\n", this);
3666 
3667  return E_NOTIMPL;
3668 }
#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 3689 of file CDefView.cpp.

3690 {
3691  TRACE("this=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n", this, pAspects, pAdvf, ppAdvSink);
3692 
3693  if (ppAdvSink)
3694  {
3695  *ppAdvSink = m_pAdvSink;
3696  m_pAdvSink.p->AddRef();
3697  }
3698 
3699  if (pAspects)
3700  *pAspects = m_dwAspects;
3701 
3702  if (pAdvf)
3703  *pAdvf = m_dwAdvf;
3704 
3705  return S_OK;
3706 }
CComPtr< IAdviseSink > m_pAdvSink
Definition: CDefView.cpp:110
#define TRACE(s)
Definition: solgame.cpp:4
ULONG AddRef()
#define S_OK
Definition: intsafe.h:52
DWORD m_dwAdvf
Definition: CDefView.cpp:109
DWORD m_dwAspects
Definition: CDefView.cpp:108

◆ GetArrangeParam()

HRESULT STDMETHODCALLTYPE CDefView::GetArrangeParam ( LPARAM sort)
virtual

Definition at line 2977 of file CDefView.cpp.

2978 {
2979  FIXME("(%p)->(%p) stub\n", this, sort);
2980  return E_NOTIMPL;
2981 }
_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 2798 of file CDefView.cpp.

2799 {
2800  return ((m_ListView.GetStyle() & LVS_AUTOARRANGE) ? S_OK : S_FALSE);
2801 }
#define S_FALSE
Definition: winerror.h:2357
#define LVS_AUTOARRANGE
Definition: commctrl.h:2272
CListView m_ListView
Definition: CDefView.cpp:93
#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 3656 of file CDefView.cpp.

3657 {
3658  FIXME("Stub: this=%p\n", this);
3659 
3660  return E_NOTIMPL;
3661 }
#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 2526 of file CDefView.cpp.

2527 {
2528  TRACE("(%p)->(%p) vmode=%x flags=%x\n", this, lpfs,
2530 
2531  if (!lpfs)
2532  return E_INVALIDARG;
2533 
2534  *lpfs = m_FolderSettings;
2535  return S_OK;
2536 }
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:95
#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 2653 of file CDefView.cpp.

2654 {
2655  TRACE("(%p)->(%p), stub\n", this, pViewMode);
2656 
2657  if (!pViewMode)
2658  return E_INVALIDARG;
2659 
2660  *pViewMode = m_FolderSettings.ViewMode;
2661  return S_OK;
2662 }
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:95
#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 2793 of file CDefView.cpp.

2794 {
2795  return E_NOTIMPL;
2796 }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetDragPoint()

HRESULT STDMETHODCALLTYPE CDefView::GetDragPoint ( POINT pt)
virtual

Definition at line 3098 of file CDefView.cpp.

3099 {
3100  if (!pt)
3101  return E_INVALIDARG;
3102 
3103  *pt = m_ptFirstMousePos;
3104  return S_OK;
3105 }
POINT m_ptFirstMousePos
Definition: CDefView.cpp:118
#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 3107 of file CDefView.cpp.

3108 {
3109  FIXME("(%p)->(%p) stub\n", this, pt);
3110  return E_NOTIMPL;
3111 }
#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 2755 of file CDefView.cpp.

2756 {
2757  TRACE("(%p)->(%p)\n", this, piItem);
2758 
2759  *piItem = m_ListView.GetNextItem(-1, LVNI_FOCUSED);
2760 
2761  return S_OK;
2762 }
int GetNextItem(int i, WORD flags)
Definition: rosctrls.h:161
CListView m_ListView
Definition: CDefView.cpp:93
#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 2708 of file CDefView.cpp.

2709 {
2710  if (m_pSFParent == NULL)
2711  return E_FAIL;
2712 
2713  return m_pSFParent->QueryInterface(riid, ppv);
2714 }
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:87
#define NULL
Definition: types.h:112

◆ GetItemObject()

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

Implements IShellView.

Definition at line 2602 of file CDefView.cpp.

2603 {
2605 
2606  TRACE("(%p)->(uItem=0x%08x,\n\tIID=%s, ppv=%p)\n", this, uItem, debugstr_guid(&riid), ppvOut);
2607 
2608  if (!ppvOut)
2609  return E_INVALIDARG;
2610 
2611  *ppvOut = NULL;
2612 
2613  switch (uItem)
2614  {
2615  case SVGIO_BACKGROUND:
2616  if (IsEqualIID(riid, IID_IContextMenu))
2617  {
2619  if (FAILED_UNEXPECTEDLY(hr))
2620  return hr;
2621 
2622  IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2623  }
2624  else if (IsEqualIID(riid, IID_IDispatch))
2625  {
2627  {
2629  if (FAILED_UNEXPECTEDLY(hr))
2630  return hr;
2631  }
2632  hr = m_pShellFolderViewDual->QueryInterface(riid, ppvOut);
2633  }
2634  break;
2635 
2636  case SVGIO_SELECTION:
2637  GetSelections();
2638  hr = m_pSFParent->GetUIObjectOf(m_hWnd, m_cidl, m_apidl, riid, 0, ppvOut);
2639  if (FAILED_UNEXPECTEDLY(hr))
2640  return hr;
2641 
2642  if (IsEqualIID(riid, IID_IContextMenu))
2643  IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2644 
2645  break;
2646  }
2647 
2648  TRACE("-- (%p)->(interface=%p)\n", this, *ppvOut);
2649 
2650  return hr;
2651 }
#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:92
CComPtr< IShellFolder2 > m_pSF2Parent
Definition: CDefView.cpp:88
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:1364
#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:87
HWND m_hWnd
Definition: atlwin.h:268
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:103
#define NULL
Definition: types.h:112
UINT m_cidl
Definition: CDefView.cpp:102
#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 2764 of file CDefView.cpp.

2765 {
2766  int lvIndex = LV_FindItemByPidl(pidl);
2767  if (lvIndex == -1 || ppt == NULL)
2768  return E_INVALIDARG;
2769 
2770  m_ListView.GetItemPosition(lvIndex, ppt);
2771  return S_OK;
2772 }
int LV_FindItemByPidl(PCUITEMID_CHILD pidl)
Definition: CDefView.cpp:795
BOOL GetItemPosition(int nItem, POINT *pPoint)
Definition: rosctrls.h:231
#define E_INVALIDARG
Definition: ddrawi.h:101
CListView m_ListView
Definition: CDefView.cpp:93
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112

◆ GetItemSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetItemSpacing ( ITEMSPACING spacing)
virtual

Definition at line 3143 of file CDefView.cpp.

3144 {
3145  FIXME("(%p)->(%p) stub\n", this, spacing);
3146  return E_NOTIMPL;
3147 }
#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 3003 of file CDefView.cpp.

3004 {
3005  TRACE("(%p)->(%p %d)\n", this, pidl, item);
3006  return Item(item, pidl);
3007 }
virtual HRESULT STDMETHODCALLTYPE Item(int iItemIndex, PITEMID_CHILD *ppidl)
Definition: CDefView.cpp:2716
#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 3028 of file CDefView.cpp.

3029 {
3030  TRACE("(%p)->(%p)\n", this, count);
3032  return S_OK;
3033 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
int GetItemCount()
Definition: rosctrls.h:121
CListView m_ListView
Definition: CDefView.cpp:93
#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 3060 of file CDefView.cpp.

3061 {
3062  FIXME("(%p)->(%p) stub\n", this, count);
3063  return E_NOTIMPL;
3064 }
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 3066 of file CDefView.cpp.

3067 {
3068  TRACE("(%p)->(%p %p)\n", this, pidl, items);
3069 
3070  *items = GetSelections();
3071 
3072  if (*items)
3073  {
3074  *pidl = static_cast<PCUITEMID_CHILD *>(LocalAlloc(0, *items * sizeof(PCUITEMID_CHILD)));
3075  if (!*pidl)
3076  {
3077  return E_OUTOFMEMORY;
3078  }
3079 
3080  /* it's documented that caller shouldn't PIDLs, only array itself */
3081  memcpy(*pidl, m_apidl, *items * sizeof(PCUITEMID_CHILD));
3082  }
3083 
3084  return S_OK;
3085 }
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Definition: shtypes.idl:70
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
UINT GetSelections()
Definition: CDefView.cpp:1364
#define TRACE(s)
Definition: solgame.cpp:4
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:103
#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 2746 of file CDefView.cpp.

2747 {
2748  TRACE("(%p)->(%p)\n", this, piItem);
2749 
2750  *piItem = m_ListView.GetSelectionMark();
2751 
2752  return S_OK;
2753 }
int GetSelectionMark()
Definition: rosctrls.h:156
CListView m_ListView
Definition: CDefView.cpp:93
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:52

◆ GetSelections()

UINT CDefView::GetSelections ( )

Definition at line 1364 of file CDefView.cpp.

1365 {
1366  SHFree(m_apidl);
1367 
1369  m_apidl = static_cast<PCUITEMID_CHILD*>(SHAlloc(m_cidl * sizeof(PCUITEMID_CHILD)));
1370  if (!m_apidl)
1371  {
1372  m_cidl = 0;
1373  return 0;
1374  }
1375 
1376  TRACE("-- Items selected =%u\n", m_cidl);
1377 
1378  UINT i = 0;
1379  int lvIndex = -1;
1380  while ((lvIndex = m_ListView.GetNextItem(lvIndex, LVNI_SELECTED)) > -1)
1381  {
1382  m_apidl[i] = _PidlByItem(lvIndex);
1383  i++;
1384  if (i == m_cidl)
1385  break;
1386  TRACE("-- selected Item found\n");
1387  }
1388 
1389  return m_cidl;
1390 }
PCUITEMID_CHILD _PidlByItem(int i)
Definition: CDefView.cpp:782
int GetNextItem(int i, WORD flags)
Definition: rosctrls.h:161
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Definition: shtypes.idl:70
#define LVNI_SELECTED
Definition: commctrl.h:2424
CListView m_ListView
Definition: CDefView.cpp:93
#define TRACE(s)
Definition: solgame.cpp:4
UINT GetSelectedCount()
Definition: rosctrls.h:136
PCUITEMID_CHILD * m_apidl
Definition: CDefView.cpp:103
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
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:331
UINT m_cidl
Definition: CDefView.cpp:102
LPVOID WINAPI SHAlloc(SIZE_T len)
Definition: shellole.c:309

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

◆ GetSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetSpacing ( POINT ppt)
virtual

Implements IFolderView.

Definition at line 2774 of file CDefView.cpp.

2775 {
2776  TRACE("(%p)->(%p)\n", this, ppt);
2777 
2778  if (!m_ListView)
2779  return S_FALSE;
2780 
2781  if (ppt)
2782  {
2783  SIZE spacing;
2784  m_ListView.GetItemSpacing(spacing);
2785 
2786  ppt->x = spacing.cx;
2787  ppt->y = spacing.cy;
2788  }
2789 
2790  return S_OK;
2791 }
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
#define S_FALSE
Definition: winerror.h:2357
LONG cx
Definition: windef.h:334
CListView m_ListView
Definition: CDefView.cpp:93
#define TRACE(s)
Definition: solgame.cpp:4
void GetItemSpacing(SIZE &spacing, BOOL bSmallIconView=FALSE)
Definition: rosctrls.h:166
#define S_OK
Definition: intsafe.h:52
LONG cy
Definition: windef.h:335

◆ GetView()

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

Implements IShellView2.

Definition at line 2863 of file CDefView.cpp.

2864 {
2865  FIXME("(%p)->(%p, %lu) stub\n", this, view_guid, view_type);
2866  return E_NOTIMPL;
2867 }
view_type
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetWindow()

HRESULT WINAPI CDefView::GetWindow ( HWND lphwnd)
virtual

Implements IOleWindow.

Definition at line 2378 of file CDefView.cpp.

2379 {
2380  TRACE("(%p)\n", this);
2381 
2382  *phWnd = m_hWnd;
2383 
2384  return S_OK;
2385 }
#define TRACE(s)
Definition: solgame.cpp:4
HWND m_hWnd
Definition: atlwin.h:268
#define S_OK
Definition: intsafe.h:52

◆ GetWindowProc()

virtual WNDPROC CDefView::GetWindowProc ( )
inlinevirtual

Reimplemented from ATL::CWindowImplBaseT< CWindow, CControlWinTraits >.

Definition at line 308 of file CDefView.cpp.

309  {
310  return WindowProc;