ReactOS  0.4.15-dev-1201-gb2cf5a4
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)
 
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:1648
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
smooth NULL
Definition: ftsmooth.c:416
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
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:2451
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
SFVM_CUSTOMVIEWINFO_DATA m_viewinfo_data
Definition: CDefView.cpp:127
smooth NULL
Definition: ftsmooth.c:416
#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
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:331
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3718

Member Function Documentation

◆ _DoFolderViewCB()

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

Definition at line 3718 of file CDefView.cpp.

3719 {
3720  HRESULT hr = E_NOTIMPL;
3721 
3723  {
3724  hr = m_pShellFolderViewCB->MessageSFVCB(uMsg, wParam, lParam);
3725  }
3726 
3727  return hr;
3728 }
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 3399 of file CDefView.cpp.

3400 {
3401  RECT rcBound;
3402  INT i, nCount = m_ListView.GetItemCount();
3403  DWORD dwSpacing;
3404  INT dx, dy;
3405  BOOL bSmall = ((m_ListView.GetStyle() & LVS_TYPEMASK) != LVS_ICON);
3406 
3407  /* FIXME: LVM_GETORIGIN is broken. See CORE-17266 */
3408  pt.x += m_ListView.GetScrollPos(SB_HORZ);
3409  pt.y += m_ListView.GetScrollPos(SB_VERT);
3410 
3411  if (m_ListView.GetStyle() & LVS_ALIGNLEFT)
3412  {
3413  // vertically
3414  for (i = 0; i < nCount; ++i)
3415  {
3416  dwSpacing = ListView_GetItemSpacing(m_ListView, bSmall);
3417  dx = LOWORD(dwSpacing);
3418  dy = HIWORD(dwSpacing);
3420  rcBound.right = rcBound.left + dx;
3421  rcBound.bottom = rcBound.top + dy;
3422  if (pt.x < rcBound.right && pt.y < (rcBound.top + rcBound.bottom) / 2)
3423  {
3424  return i;
3425  }
3426  }
3427  for (i = nCount - 1; i >= 0; --i)
3428  {
3430  if (rcBound.left < pt.x && rcBound.top < pt.y)
3431  {
3432  return i + 1;
3433  }
3434  }
3435  }
3436  else
3437  {
3438  // horizontally
3439  for (i = 0; i < nCount; ++i)
3440  {
3441  dwSpacing = ListView_GetItemSpacing(m_ListView, bSmall);
3442  dx = LOWORD(dwSpacing);
3443  dy = HIWORD(dwSpacing);
3445  rcBound.right = rcBound.left + dx;
3446  rcBound.bottom = rcBound.top + dy;
3447  if (pt.y < rcBound.bottom && pt.x < rcBound.left)
3448  {
3449  return i;
3450  }
3451  if (pt.y < rcBound.bottom && pt.x < rcBound.right)
3452  {
3453  return i + 1;
3454  }
3455  }
3456  for (i = nCount - 1; i >= 0; --i)
3457  {
3459  if (rcBound.left < pt.x && rcBound.top < pt.y)
3460  {
3461  return i + 1;
3462  }
3463  }
3464  }
3465 
3466  return nCount;
3467 }
#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:2474
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
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 BOOL
Definition: ntddk_ex.h:94
#define LVS_ALIGNLEFT
Definition: commctrl.h:2276
CListView m_ListView
Definition: CDefView.cpp:93
unsigned long DWORD
Definition: ntddk_ex.h:95
#define LVS_ICON
Definition: commctrl.h:2257
#define LVIR_SELECTBOUNDS
Definition: commctrl.h:2471
GLint dx
Definition: linetemp.h:97
#define HIWORD(l)
Definition: typedefs.h:247
#define LVS_TYPEMASK
Definition: commctrl.h:2261
LONG bottom
Definition: windef.h:309
#define ListView_GetItemSpacing(hwndLV, fSmall)
Definition: commctrl.h:2708
#define LOWORD(l)
Definition: pedump.c:82

Referenced by _MoveSelectionOnAutoArrange().

◆ _GetSnapToGrid()

HRESULT CDefView::_GetSnapToGrid ( )
private

Definition at line 2776 of file CDefView.cpp.

2777 {
2778  DWORD dwExStyle = (DWORD)m_ListView.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
2779  return ((dwExStyle & LVS_EX_SNAPTOGRID) ? S_OK : S_FALSE);
2780 }
#define DWORD
Definition: nt_native.h:44
#define LVS_EX_SNAPTOGRID
Definition: commctrl.h:2744
#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:2723
#define S_OK
Definition: intsafe.h:51

Referenced by FillArrangeAsMenu(), and OnCommand().

◆ _MergeToolbar()

HRESULT CDefView::_MergeToolbar ( )
private

Definition at line 3691 of file CDefView.cpp.

3692 {
3694  HRESULT hr = S_OK;
3695 
3696  hr = IUnknown_QueryService(m_pShellBrowser, IID_IExplorerToolbar, IID_PPV_ARG(IExplorerToolbar, &ptb));
3697  if (FAILED(hr))
3698  return hr;
3699 
3700  m_Category = CGID_DefViewFrame;
3701 
3702  hr = ptb->SetCommandTarget(static_cast<IOleCommandTarget*>(this), &m_Category, 0);
3703  if (FAILED(hr))
3704  return hr;
3705 
3706  if (hr == S_FALSE)
3707  return S_OK;
3708 
3709 #if 0
3710  hr = ptb->AddButtons(&m_Category, buttonsCount, buttons);
3711  if (FAILED(hr))
3712  return hr;
3713 #endif
3714 
3715  return S_OK;
3716 }
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:51
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 3483 of file CDefView.cpp.

3484 {
3485  // get insertable index from position
3486  INT iPosition = _FindInsertableIndexFromPoint(pt);
3487 
3488  // create identity mapping of indexes
3490  INT nCount = m_ListView.GetItemCount();
3491  for (INT i = 0; i < nCount; ++i)
3492  {
3493  array.Add(i);
3494  }
3495 
3496  // re-ordering mapping
3497  INT iItem = -1;
3498  while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3499  {
3500  INT iFrom = iItem, iTo = iPosition;
3501  if (iFrom < iTo)
3502  --iTo;
3503  if (iFrom >= nCount)
3504  iFrom = nCount - 1;
3505  if (iTo >= nCount)
3506  iTo = nCount - 1;
3507 
3508  // shift indexes by swapping (like a bucket relay)
3509  if (iFrom < iTo)
3510  {
3511  for (INT i = iFrom; i < iTo; ++i)
3512  {
3513  // swap array[i] and array[i + 1]
3514  INT tmp = array[i];
3515  array[i] = array[i + 1];
3516  array[i + 1] = tmp;
3517  }
3518  }
3519  else
3520  {
3521  for (INT i = iFrom; i > iTo; --i)
3522  {
3523  // swap array[i] and array[i - 1]
3524  INT tmp = array[i];
3525  array[i] = array[i - 1];
3526  array[i - 1] = tmp;
3527  }
3528  }
3529  }
3530 
3531  // create mapping (ListView's lParam to index) from array
3533  for (INT i = 0; i < nCount; ++i)
3534  {
3536  map.Add(lParam, i);
3537  }
3538 
3539  // finally sort
3541 }
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:2420
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:3472
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
LONG_PTR LPARAM
Definition: windef.h:208
CListView m_ListView
Definition: CDefView.cpp:93
INT _FindInsertableIndexFromPoint(POINT pt)
Definition: CDefView.cpp:3399
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
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
CListView m_ListView
Definition: CDefView.cpp:93

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:1648
#define HDF_SORTUP
Definition: commctrl.h:720
#define HDITEM
Definition: commctrl.h:693
#define HDI_FORMAT
Definition: commctrl.h:701
#define Header_GetItem(hwndHD, i, phdi)
Definition: commctrl.h:747
CListView m_ListView
Definition: CDefView.cpp:93
LISTVIEW_SORT_INFO m_sortInfo
Definition: CDefView.cpp:105
#define HDF_SORTDOWN
Definition: commctrl.h:721
#define GWL_STYLE
Definition: winuser.h:846
#define LVM_GETHEADER
Definition: commctrl.h:2646
#define LVS_NOSORTHEADER
Definition: commctrl.h:2281
#define Header_SetItem(hwndHD, i, phdi)
Definition: commctrl.h:754
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 2969 of file CDefView.cpp.

2970 {
2971  TRACE("(%p)->(%p %p)\n", this, pidl, item);
2972  *item = LV_AddItem(pidl);
2973  return (int)*item >= 0 ? S_OK : E_OUTOFMEMORY;
2974 }
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:51
static ATOM item
Definition: dde.c:856

◆ AddPropertySheetPages()

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

Implements IShellView.

Definition at line 2511 of file CDefView.cpp.

2512 {
2513  FIXME("(%p) stub\n", this);
2514 
2515  return E_NOTIMPL;
2516 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ ArrangeGrid()

HRESULT STDMETHODCALLTYPE CDefView::ArrangeGrid ( )
virtual

Definition at line 2956 of file CDefView.cpp.

2957 {
2959  return S_OK;
2960 }
DWORD SetExtendedListViewStyle(DWORD dw, DWORD dwMask=0)
Definition: rosctrls.h:47
#define LVS_EX_SNAPTOGRID
Definition: commctrl.h:2744
CListView m_ListView
Definition: CDefView.cpp:93
#define S_OK
Definition: intsafe.h:51

Referenced by OnCommand().

◆ AutoArrange()

HRESULT STDMETHODCALLTYPE CDefView::AutoArrange ( )
virtual

Definition at line 2962 of file CDefView.cpp.

2963 {
2964  m_ListView.ModifyStyle(0, LVS_AUTOARRANGE);
2966  return S_OK;
2967 }
BOOL Arrange(UINT nCode)
Definition: rosctrls.h:241
#define LVS_AUTOARRANGE
Definition: commctrl.h:2268
CListView m_ListView
Definition: CDefView.cpp:93
#define S_OK
Definition: intsafe.h:51
#define LVA_DEFAULT
Definition: commctrl.h:2523

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:799
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:1038
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define TB_CHECKBUTTON
Definition: commctrl.h:1039
#define FCIDM_TB_SMALLICON
Definition: shresdef.h:798
CComPtr< IShellBrowser > m_pShellBrowser
Definition: CDefView.cpp:90
LONG_PTR LRESULT
Definition: windef.h:209
GLuint64EXT * result
Definition: glext.h:11304

Referenced by CreateViewWindow3(), and OnCommand().

◆ CheckViewMode()

HRESULT CDefView::CheckViewMode ( HMENU  hmenuView)

Definition at line 1339 of file CDefView.cpp.

1340 {
1342  {
1343  UINT iItemFirst = FCIDM_SHVIEW_BIGICON;
1344  UINT iItemLast = iItemFirst + FVM_LAST - FVM_FIRST;
1345  UINT iItem = iItemFirst + m_FolderSettings.ViewMode - FVM_FIRST;
1346  CheckMenuRadioItem(hmenuView, iItemFirst, iItemLast, iItem, MF_BYCOMMAND);
1347  }
1348 
1349  return S_OK;
1350 }
#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:777
#define S_OK
Definition: intsafe.h:51
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 2360 of file CDefView.cpp.

2361 {
2362  FIXME("(%p) stub\n", this);
2363 
2364  return E_NOTIMPL;
2365 }
#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:2263
FOLDERSETTINGS m_FolderSettings
Definition: CDefView.cpp:95
#define TRUE
Definition: types.h:120
#define LVS_REPORT
Definition: commctrl.h:2258
#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:2266
#define FALSE
Definition: types.h:117
#define LVS_EX_SNAPTOGRID
Definition: commctrl.h:2744
#define LVS_ALIGNLEFT
Definition: commctrl.h:2276
LONG_PTR LPARAM
Definition: windef.h:208
#define LVS_AUTOARRANGE
Definition: commctrl.h:2268
CListView m_ListView
Definition: CDefView.cpp:93
#define LVS_LIST
Definition: commctrl.h:2260
#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:2262
unsigned long DWORD
Definition: ntddk_ex.h:95
#define LVS_ICON
Definition: commctrl.h:2257
#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:2269
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:2259
#define SUCCEEDED(hr)
Definition: intsafe.h:49
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3718
#define LVS_ALIGNTOP
Definition: commctrl.h:2275

Referenced by OnCreate().

◆ CreateViewWindow()

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

Implements IShellView.

Definition at line 2445 of file CDefView.cpp.

2446 {
2447  return CreateViewWindow3(psb, lpPrevView, SV3CVW3_DEFAULT,
2448  (FOLDERFLAGS)lpfs->fFlags, (FOLDERFLAGS)lpfs->fFlags, (FOLDERVIEWMODE)lpfs->ViewMode, NULL, prcView, phWnd);
2449 }
smooth NULL
Definition: ftsmooth.c:416
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:2849

◆ CreateViewWindow2()

HRESULT STDMETHODCALLTYPE CDefView::CreateViewWindow2 ( LPSV2CVW2_PARAMS  view_params)
virtual

Implements IShellView2.

Definition at line 2842 of file CDefView.cpp.

2843 {
2844  return CreateViewWindow3(view_params->psbOwner, view_params->psvPrev,
2845  SV3CVW3_DEFAULT, (FOLDERFLAGS)view_params->pfs->fFlags, (FOLDERFLAGS)view_params->pfs->fFlags,
2846  (FOLDERVIEWMODE)view_params->pfs->ViewMode, view_params->pvid, view_params->prcView, &view_params->hwndView);
2847 }
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:2849

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

2850 {
2851  OLEMENUGROUPWIDTHS omw = { { 0, 0, 0, 0, 0, 0 } };
2852 
2853  *hwnd = NULL;
2854 
2855  TRACE("(%p)->(shlview=%p shlbrs=%p rec=%p hwnd=%p vmode=%x flags=%x)\n", this, psvPrevious, psb, prcView, hwnd, mode, flags);
2856  if (prcView != NULL)
2857  TRACE("-- left=%i top=%i right=%i bottom=%i\n", prcView->left, prcView->top, prcView->right, prcView->bottom);
2858 
2859  /* Validate the Shell Browser */
2860  if (psb == NULL || m_hWnd)
2861  return E_UNEXPECTED;
2862 
2863  if (view_flags != SV3CVW3_DEFAULT)
2864  FIXME("unsupported view flags 0x%08x\n", view_flags);
2865 
2866  /* Set up the member variables */
2867  m_pShellBrowser = psb;
2870 
2871  if (view_id)
2872  {
2873  if (IsEqualIID(*view_id, VID_LargeIcons))
2875  else if (IsEqualIID(*view_id, VID_SmallIcons))
2877  else if (IsEqualIID(*view_id, VID_List))
2879  else if (IsEqualIID(*view_id, VID_Details))
2881  else if (IsEqualIID(*view_id, VID_Thumbnails))
2883  else if (IsEqualIID(*view_id, VID_Tile))
2885  else if (IsEqualIID(*view_id, VID_ThumbStrip))
2887  else
2888  FIXME("Ignoring unrecognized VID %s\n", debugstr_guid(view_id));
2889  }
2890 
2891  /* Get our parent window */
2892  m_pShellBrowser->GetWindow(&m_hWndParent);
2893 
2894  /* Try to get the ICommDlgBrowserInterface, adds a reference !!! */
2897  {
2898  TRACE("-- CommDlgBrowser\n");
2899  }
2900 
2902  if (m_hWnd == NULL)
2903  return E_FAIL;
2904 
2905  *hwnd = m_hWnd;
2906 
2907  CheckToolbar();
2908 
2909  if (!*hwnd)
2910  return E_FAIL;
2911 
2913 
2915  UpdateWindow();
2916 
2917  if (!m_hMenu)
2918  {
2919  m_hMenu = CreateMenu();
2920  m_pShellBrowser->InsertMenusSB(m_hMenu, &omw);
2921  TRACE("-- after fnInsertMenusSB\n");
2922  }
2923 
2924  _MergeToolbar();
2925 
2926  return S_OK;
2927 }
#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:1637
#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:1220
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
#define FIXME(fmt,...)
Definition: debug.h:111
smooth NULL
Definition: ftsmooth.c:416
HRESULT _MergeToolbar()
Definition: CDefView.cpp:3691
#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:1277
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:1230
#define S_OK
Definition: intsafe.h:51
#define SWP_SHOWWINDOW
Definition: winuser.h:1233
#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:1229
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define SUCCEEDED(hr)
Definition: intsafe.h:49
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:3718

Referenced by CreateViewWindow(), and CreateViewWindow2().

◆ DestroyViewWindow()

HRESULT WINAPI CDefView::DestroyViewWindow ( )
virtual

Implements IShellView.

Definition at line 2451 of file CDefView.cpp.

2452 {
2453  TRACE("(%p)\n", this);
2454 
2455  /* Make absolutely sure all our UI is cleaned up */
2457 
2458  if (m_hAccel)
2459  {
2460  // "Accelerator tables loaded from resources are freed automatically when the application terminates." -- MSDN
2461  m_hAccel = NULL;
2462  }
2463 
2464  if (m_hMenuArrangeModes)
2465  {
2468  }
2469 
2470  if (m_hMenuViewModes)
2471  {
2474  }
2475 
2476  if (m_hMenu)
2477  {
2479  m_hMenu = NULL;
2480  }
2481 
2482  if (m_ListView)
2483  {
2484  m_ListView.DestroyWindow();
2485  }
2486 
2487  if (m_hWnd)
2488  {
2490  DestroyWindow();
2491  }
2492 
2495 
2496  return S_OK;
2497 }
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:2396
smooth NULL
Definition: ftsmooth.c:416
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:51
void Release()
Definition: atlcomcli.h:140
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:3718

Referenced by ~CDefView().

◆ DoActivate()

void CDefView::DoActivate ( UINT  uState)

Definition at line 1646 of file CDefView.cpp.

1647 {
1648  TRACE("%p uState=%x\n", this, uState);
1649 
1650  /*don't do anything if the state isn't really changing */
1651  if (m_uState == uState)
1652  {
1653  return;
1654  }
1655 
1656  if (uState == SVUIA_DEACTIVATE)
1657  {
1658  OnDeactivate();
1659  }
1660  else
1661  {
1663  {
1664  FillEditMenu();
1665  FillViewMenu();
1666  m_pShellBrowser->SetMenuSB(m_hMenu, 0, m_hWnd);
1668  }
1669 
1670  if (SVUIA_ACTIVATE_FOCUS == uState)
1671  {
1672  m_ListView.SetFocus();
1673  }
1674  }
1675 
1676  m_uState = uState;
1677  TRACE("--\n");
1678 }
HRESULT FillViewMenu()
Definition: CDefView.cpp:1283
HRESULT FillEditMenu()
Definition: CDefView.cpp:1266
#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:1634

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

◆ drag_notify_subitem()

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

Definition at line 3237 of file CDefView.cpp.

3238 {
3239  LONG lResult;
3240  HRESULT hr;
3241  RECT clientRect;
3242 
3243  /* The key state on drop doesn't have MK_LBUTTON or MK_RBUTTON because it
3244  reflects the key state after the user released the button, so we need
3245  to remember the last key state when the button was pressed */
3246  m_grfKeyState = grfKeyState;
3247 
3248  /* Map from global to client coordinates and query the index of the listview-item, which is
3249  * currently under the mouse cursor. */
3250  LVHITTESTINFO htinfo = {{pt.x, pt.y}, LVHT_ONITEM};
3251  ScreenToClient(&htinfo.pt);
3252  lResult = m_ListView.HitTest(&htinfo);
3253 
3254  /* Send WM_*SCROLL messages every 250 ms during drag-scrolling */
3255  ::GetClientRect(m_ListView, &clientRect);
3256  if (htinfo.pt.x == m_ptLastMousePos.x && htinfo.pt.y == m_ptLastMousePos.y &&
3257  (htinfo.pt.x < SCROLLAREAWIDTH || htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH ||
3258  htinfo.pt.y < SCROLLAREAWIDTH || htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH ))
3259  {
3260  m_cScrollDelay = (m_cScrollDelay + 1) % 5; /* DragOver is called every 50 ms */
3261  if (m_cScrollDelay == 0)
3262  {
3263  /* Mouse did hover another 250 ms over the scroll-area */
3264  if (htinfo.pt.x < SCROLLAREAWIDTH)
3265  m_ListView.SendMessageW(WM_HSCROLL, SB_LINEUP, 0);
3266 
3267  if (htinfo.pt.x > clientRect.right - SCROLLAREAWIDTH)
3268  m_ListView.SendMessageW(WM_HSCROLL, SB_LINEDOWN, 0);
3269 
3270  if (htinfo.pt.y < SCROLLAREAWIDTH)
3271  m_ListView.SendMessageW(WM_VSCROLL, SB_LINEUP, 0);
3272 
3273  if (htinfo.pt.y > clientRect.bottom - SCROLLAREAWIDTH)
3274  m_ListView.SendMessageW(WM_VSCROLL, SB_LINEDOWN, 0);
3275  }
3276  }
3277  else
3278  {
3279  m_cScrollDelay = 0; /* Reset, if the cursor is not over the listview's scroll-area */
3280  }
3281 
3282  m_ptLastMousePos = htinfo.pt;
3284 
3285  /* We need to check if we drag the selection over itself */
3286  if (lResult != -1 && m_pSourceDataObject.p != NULL)
3287  {
3288  PCUITEMID_CHILD pidl = _PidlByItem(lResult);
3289 
3290  for (UINT i = 0; i < m_cidl; i++)
3291  {
3292  if (pidl == m_apidl[i])
3293  {
3294  /* The item that is being draged is hovering itself. */
3295  lResult = -1;
3296  break;
3297  }
3298  }
3299  }
3300 
3301  /* If we are still over the previous sub-item, notify it via DragOver and return. */
3302  if (m_pCurDropTarget && lResult == m_iDragOverItem)
3303  return m_pCurDropTarget->DragOver(grfKeyState, pt, pdwEffect);
3304 
3305  /* We've left the previous sub-item, notify it via DragLeave and Release it. */
3306  if (m_pCurDropTarget)
3307  {
3309  if (pidl)
3310  SelectItem(pidl, 0);
3311 
3312  m_pCurDropTarget->DragLeave();
3314  }
3315 
3316  m_iDragOverItem = lResult;
3317 
3318  if (lResult == -1)
3319  {
3320  /* We are not above one of the listview's subitems. Bind to the parent folder's
3321  * DropTarget interface. */
3322  hr = m_pSFParent->CreateViewObject(NULL, IID_PPV_ARG(IDropTarget,&m_pCurDropTarget));
3323  }
3324  else
3325  {
3326  /* Query the relative PIDL of the shellfolder object represented by the currently
3327  * dragged over listview-item ... */
3328  PCUITEMID_CHILD pidl = _PidlByItem(lResult);
3329 
3330  /* ... and bind m_pCurDropTarget to the IDropTarget interface of an UIObject of this object */
3331  hr = m_pSFParent->GetUIObjectOf(m_ListView, 1, &pidl, IID_NULL_PPV_ARG(IDropTarget, &m_pCurDropTarget));
3332  }
3333 
3335 
3336  /* If anything failed, m_pCurDropTarget should be NULL now, which ought to be a save state. */
3337  if (FAILED(hr))
3338  {
3339  *pdwEffect = DROPEFFECT_NONE;
3340  return hr;
3341  }
3342 
3343  if (m_iDragOverItem != -1)
3344  {
3345  SelectItem(m_iDragOverItem, SVSI_SELECT);
3346  }
3347 
3348  /* Notify the item just entered via DragEnter. */
3349  return m_pCurDropTarget->DragEnter(m_pCurDataObject, grfKeyState, pt, pdwEffect);
3350 }
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:2493
LONG right
Definition: windef.h:308
#define IID_PPV_ARG(Itype, ppType)
const DWORD DROPEFFECT_NONE
Definition: oleidl.idl:929
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
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
smooth NULL
Definition: ftsmooth.c:416
CListView m_ListView
Definition: CDefView.cpp:93
#define SCROLLAREAWIDTH
Definition: CDefView.cpp:3235
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:1024
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
void Release()
Definition: atlcomcli.h:140
unsigned int UINT
Definition: ndis.h:50
#define SB_LINEDOWN
Definition: winuser.h:565
#define WM_HSCROLL
Definition: winuser.h:1725
#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:1726
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 3352 of file CDefView.cpp.

3353 {
3354  if (*pdwEffect == DROPEFFECT_NONE)
3355  return S_OK;
3356 
3357  /* Get a hold on the data object for later calls to DragEnter on the sub-folders */
3358  m_pCurDataObject = pDataObject;
3359 
3360  HRESULT hr = drag_notify_subitem(grfKeyState, pt, pdwEffect);
3361  if (SUCCEEDED(hr))
3362  {
3363  POINT ptClient = {pt.x, pt.y};
3364  ScreenToClient(&ptClient);
3365  ImageList_DragEnter(m_hWnd, ptClient.x, ptClient.y);
3366  }
3367 
3368  return hr;
3369 }
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
LONG HRESULT
Definition: typedefs.h:79
BOOL ScreenToClient(LPPOINT lpPoint) const
Definition: atlwin.h:1024
HWND m_hWnd
Definition: atlwin.h:268
#define S_OK
Definition: intsafe.h:51
HRESULT drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
Definition: CDefView.cpp:3237
#define SUCCEEDED(hr)
Definition: intsafe.h:49

◆ DragLeave()

HRESULT WINAPI CDefView::DragLeave ( void  )
virtual

Implements IDropTarget.

Definition at line 3379 of file CDefView.cpp.

3380 {
3382 
3383  if (m_pCurDropTarget)
3384  {
3385  m_pCurDropTarget->DragLeave();
3387  }
3388 
3389  if (m_pCurDataObject != NULL)
3390  {
3392  }
3393 
3394  m_iDragOverItem = 0;
3395 
3396  return S_OK;
3397 }
CComPtr< IDataObject > m_pCurDataObject
Definition: CDefView.cpp:114
smooth NULL
Definition: ftsmooth.c:416
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:51
BOOL WINAPI ImageList_DragLeave(HWND hwndLock)
Definition: imagelist.c:992
void Release()
Definition: atlcomcli.h:140

◆ DragOver()

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

Implements IDropTarget.

Definition at line 3371 of file CDefView.cpp.

3372 {
3373  POINT ptClient = {pt.x, pt.y};
3374  ScreenToClient(&ptClient);
3375  ImageList_DragMove(ptClient.x, ptClient.y);
3376  return drag_notify_subitem(grfKeyState, pt, pdwEffect);
3377 }
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:1024
HRESULT drag_notify_subitem(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
Definition: CDefView.cpp:3237

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

3623 {
3624  FIXME("Stub: this=%p\n", this);
3625 
3626  return E_NOTIMPL;
3627 }
#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 3543 of file CDefView.cpp.

3544 {
3547 
3548  if ((IsDropOnSource(NULL) == S_OK) &&
3549  (*pdwEffect & DROPEFFECT_MOVE) &&
3551  {
3552  if (m_pCurDropTarget)
3553  {
3554  m_pCurDropTarget->DragLeave();
3556  }
3557 
3558  POINT ptDrop = { pt.x, pt.y };
3559  ::ScreenToClient(m_ListView, &ptDrop);
3560  ::ClientToListView(m_ListView, &ptDrop);
3561  m_ptLastMousePos = ptDrop;
3562 
3564  if (m_ListView.GetStyle() & LVS_AUTOARRANGE)
3565  {
3567  }
3568  else
3569  {
3570  POINT ptItem;
3571  INT iItem = -1;
3572  while ((iItem = m_ListView.GetNextItem(iItem, LVNI_SELECTED)) >= 0)
3573  {
3574  if (m_ListView.GetItemPosition(iItem, &ptItem))
3575  {
3576  ptItem.x += m_ptLastMousePos.x - m_ptFirstMousePos.x;
3577  ptItem.y += m_ptLastMousePos.y - m_ptFirstMousePos.y;
3578  m_ListView.SetItemPosition(iItem, &ptItem);
3579  }
3580  }
3581  }
3583  }
3584  else if (m_pCurDropTarget)
3585  {
3586  m_pCurDropTarget->Drop(pDataObject, grfKeyState, pt, pdwEffect);
3588  }
3589 
3591  m_iDragOverItem = 0;
3592  return S_OK;
3593 }
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:2342
#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:2420
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:3483
smooth NULL
Definition: ftsmooth.c:416
#define LVS_AUTOARRANGE
Definition: commctrl.h:2268
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:1024
virtual HRESULT STDMETHODCALLTYPE IsDropOnSource(IDropTarget *drop_target)
Definition: CDefView.cpp:3060
HWND m_hWnd
Definition: atlwin.h:268
CComPtr< IDropTarget > m_pCurDropTarget
Definition: CDefView.cpp:113
#define S_OK
Definition: intsafe.h:51
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

◆ EnableModeless()

HRESULT WINAPI CDefView::EnableModeless ( BOOL  fEnable)
virtual

Implements IShellView.

Definition at line 2389 of file CDefView.cpp.

2390 {
2391  FIXME("(%p) stub\n", this);
2392 
2393  return E_NOTIMPL;
2394 }
#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 3174 of file CDefView.cpp.

3175 {
3176  FIXME("(%p)->(\n\tTarget GUID:%s Command:0x%08x Opt:0x%08x %p %p)\n",
3177  this, debugstr_guid(pguidCmdGroup), nCmdID, nCmdexecopt, pvaIn, pvaOut);
3178 
3179  if (!pguidCmdGroup)
3180  return OLECMDERR_E_UNKNOWNGROUP;
3181 
3182  if (IsEqualCLSID(*pguidCmdGroup, m_Category))
3183  {
3184  if (nCmdID == FCIDM_SHVIEW_AUTOARRANGE)
3185  {
3186  if (V_VT(pvaIn) != VT_INT_PTR)
3187  return OLECMDERR_E_NOTSUPPORTED;
3188 
3189  TPMPARAMS params;
3190  params.cbSize = sizeof(params);
3191  params.rcExclude = *(RECT*) V_INTREF(pvaIn);
3192 
3193  if (m_hMenuViewModes)
3194  {
3195  /* Duplicate all but the last two items of the view modes menu */
3196  HMENU hmenuViewPopup = CreatePopupMenu();
3197  Shell_MergeMenus(hmenuViewPopup, m_hMenuViewModes, 0, 0, 0xFFFF, 0);
3198  DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3199  DeleteMenu(hmenuViewPopup, GetMenuItemCount(hmenuViewPopup) - 1, MF_BYPOSITION);
3200  CheckViewMode(hmenuViewPopup);
3201  TrackPopupMenuEx(hmenuViewPopup, TPM_LEFTALIGN | TPM_TOPALIGN, params.rcExclude.left, params.rcExclude.bottom, m_hWndParent, &params);
3202  ::DestroyMenu(hmenuViewPopup);
3203  }
3204 
3205  // pvaOut is VT_I4 with value 0x403 (cmd id of the new mode maybe?)
3206  V_VT(pvaOut) = VT_I4;
3207  V_I4(pvaOut) = 0x403;
3208  }
3209  }
3210 
3211  if (IsEqualIID(*pguidCmdGroup, CGID_Explorer) &&
3212  (nCmdID == 0x29) &&
3213  (nCmdexecopt == 4) && pvaOut)
3214  return S_OK;
3215 
3216  if (IsEqualIID(*pguidCmdGroup, CGID_ShellDocView) &&
3217  (nCmdID == 9) &&
3218  (nCmdexecopt == 0))
3219  return 1;
3220 
3221  return OLECMDERR_E_UNKNOWNGROUP;
3222 }
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:782
#define TPM_LEFTALIGN
Definition: winuser.h:2352
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:2358
#define FIXME(fmt,...)
Definition: debug.h:111
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
HRESULT CheckViewMode(HMENU hmenuView)
Definition: CDefView.cpp:1339
#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:51
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 912 of file CDefView.cpp.

913 {
914  PITEMID_CHILD pidl = static_cast<PITEMID_CHILD>(ptr);
915  CDefView *pThis = static_cast<CDefView *>(arg);
916 
917  /* in a commdlg This works as a filemask*/
918  if (pThis->IncludeObject(pidl) == S_OK)
919  pThis->LV_AddItem(pidl);
920 
921  SHFree(pidl);
922  return TRUE;
923 }
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:51
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:331

Referenced by FillList().

◆ FillArrangeAsMenu()

HRESULT CDefView::FillArrangeAsMenu ( HMENU  hmenuArrange)

Definition at line 1299 of file CDefView.cpp.

1300 {
1301  /* We only need to fill this once */
1302  if (GetMenuItemID(hmenuArrange, 0) == FCIDM_SHVIEW_AUTOARRANGE)
1303  {
1304  Shell_MergeMenus(hmenuArrange, m_hMenuArrangeModes, 0, 0, 0xFFFF,0);
1305  }
1306 
1307  /* Also check the menu item according to which we sort */
1308  CheckMenuRadioItem(hmenuArrange,
1309  0x30,
1310  0x100,
1311  m_sortInfo.nHeaderID + 0x30,
1312  MF_BYCOMMAND);
1313 
1315  {
1318  }
1319  else
1320  {
1323 
1324  if (GetAutoArrange() == S_OK)
1326  else
1328 
1329  if (_GetSnapToGrid() == S_OK)
1331  else
1333  }
1334 
1335 
1336  return S_OK;
1337 }
HMENU m_hMenuArrangeModes
Definition: CDefView.cpp:97
virtual HRESULT STDMETHODCALLTYPE GetAutoArrange()
Definition: CDefView.cpp:2771
HRESULT _GetSnapToGrid()
Definition: CDefView.cpp:2776
#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:782
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:51
UINT WINAPI GetMenuItemID(_In_ HMENU, _In_ int)
#define FCIDM_SHVIEW_ALIGNTOGRID
Definition: shresdef.h:784
#define MF_GRAYED
Definition: winuser.h:129

Referenced by OnInitMenuPopup().

◆ FillEditMenu()

HRESULT CDefView::FillEditMenu ( )

Definition at line 1266 of file CDefView.cpp.

1267 {
1269  if (!hEditMenu)
1270  return E_FAIL;
1271 
1272  HMENU hmenuContents = ::LoadMenuW(shell32_hInstance, L"MENU_003");
1273  if (!hmenuContents)
1274  return E_FAIL;
1275 
1276  Shell_MergeMenus(hEditMenu, hmenuContents, 0, 0, 0xFFFF, 0);
1277 
1278  ::DestroyMenu(hmenuContents);
1279 
1280  return S_OK;
1281 }
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:1209
#define S_OK
Definition: intsafe.h:51
#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 1229 of file CDefView.cpp.

1230 {
1232  if (!hFileMenu)
1233  return E_FAIL;
1234 
1235  /* Cleanup the items added previously */
1236  for (int i = GetMenuItemCount(hFileMenu) - 1; i >= 0; i--)
1237  {
1238  UINT id = GetMenuItemID(hFileMenu, i);
1240  DeleteMenu(hFileMenu, i, MF_BYPOSITION);
1241  }
1242 
1244 
1245  /* Store the context menu in m_pCM and keep it in order to invoke the selected command later on */
1248  if (FAILED_UNEXPECTEDLY(hr))
1249  return hr;
1250 
1252 
1253  hr = m_pCM->QueryContextMenu(hmenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, 0);
1254  if (FAILED_UNEXPECTEDLY(hr))
1255  return hr;
1256 
1257  // TODO: filter or something
1258 
1259  Shell_MergeMenus(hFileMenu, hmenu, 0, 0, 0xFFFF, MM_ADDSEPARATOR | MM_SUBMENUSHAVEIDS);
1260 
1262 
1263  return S_OK;
1264 }
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:2575
#define IID_PPV_ARG(Itype, ppType)
#define E_FAIL
Definition: ddrawi.h:102
#define FCIDM_BROWSERLAST
Definition: shlobj.h:550
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define 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:71
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:1209
#define S_OK
Definition: intsafe.h:51
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 925 of file CDefView.cpp.

926 {
927  CComPtr<IEnumIDList> pEnumIDList;
928  PITEMID_CHILD pidl;
929  DWORD dwFetched;
930  HRESULT hRes;
931  HDPA hdpa;
932  DWORD dFlags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS;
933  DWORD dwValue, cbValue;
934 
935  TRACE("%p\n", this);
936 
937  /* determine if there is a setting to show all the hidden files/folders */
938  dwValue = 1;
939  cbValue = sizeof(dwValue);
941  L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
942  L"Hidden", NULL, &dwValue, &cbValue);
943  if (dwValue == 1)
944  {
945  dFlags |= SHCONTF_INCLUDEHIDDEN;
946  m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
947  }
948 
949  dwValue = 0;
950  cbValue = sizeof(dwValue);
952  L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
953  L"ShowSuperHidden", NULL, &dwValue, &cbValue);
954  if (dwValue)
955  {
956  dFlags |= SHCONTF_INCLUDESUPERHIDDEN;
957  m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
958  }
959 
960  /* get the itemlist from the shfolder */
961  hRes = m_pSFParent->EnumObjects(m_hWnd, dFlags, &pEnumIDList);
962  if (hRes != S_OK)
963  {
964  if (hRes == S_FALSE)
965  return(NOERROR);
966  return(hRes);
967  }
968 
969  /* create a pointer array */
970  hdpa = DPA_Create(16);
971  if (!hdpa)
972  {
973  return(E_OUTOFMEMORY);
974  }
975 
976  /* copy the items into the array*/
977  while((S_OK == pEnumIDList->Next(1, &pidl, &dwFetched)) && dwFetched)
978  {
979  if (DPA_InsertPtr(hdpa, 0x7fff, pidl) == -1)
980  {
981  SHFree(pidl);
982  }
983  }
984 
985  /*turn the listview's redrawing off*/
987 
988  DPA_DestroyCallback( hdpa, fill_list, this);
989 
990  /* sort the array */
991  if (m_pSF2Parent)
992  {
993  m_pSF2Parent->GetDefaultColumn(NULL, (ULONG*)&m_sortInfo.nHeaderID, NULL);
994  }
995  else
996  {
997  FIXME("no m_pSF2Parent\n");
998  }
1000  _Sort();
1001 
1003  {
1006  }
1007 
1008  // load custom background image and custom text color
1011 
1012  /*turn the listview's redrawing back on and force it to draw*/
1014 
1015  UpdateListColors();
1016 
1018  {
1019  // redraw now
1020  m_ListView.InvalidateRect(NULL, TRUE);
1021  }
1022 
1024 
1025  return S_OK;
1026 }
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:2316
#define LVM_SETCALLBACKMASK
Definition: commctrl.h:2415
#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:912
smooth NULL
Definition: ftsmooth.c:416
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:51
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:3718

Referenced by OnCreate(), and Refresh().

◆ FillViewMenu()

HRESULT CDefView::FillViewMenu ( )

Definition at line 1283 of file CDefView.cpp.

1284 {
1286  if (!hViewMenu)
1287  return E_FAIL;
1288 
1290  if (!m_hMenuViewModes)
1291  return E_FAIL;
1292 
1295 
1296  return S_OK;
1297 }
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
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
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:1209
#define S_OK
Definition: intsafe.h:51
#define shell32_hInstance
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 3636 of file CDefView.cpp.

3637 {
3638  FIXME("Stub: this=%p\n", this);
3639 
3640  return E_NOTIMPL;
3641 }
#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 3662 of file CDefView.cpp.

3663 {
3664  TRACE("this=%p pAspects=%p pAdvf=%p ppAdvSink=%p\n", this, pAspects, pAdvf, ppAdvSink);
3665 
3666  if (ppAdvSink)
3667  {
3668  *ppAdvSink = m_pAdvSink;
3669  m_pAdvSink.p->AddRef();
3670  }
3671 
3672  if (pAspects)
3673  *pAspects = m_dwAspects;
3674 
3675  if (pAdvf)
3676  *pAdvf = m_dwAdvf;
3677 
3678  return S_OK;
3679 }
CComPtr< IAdviseSink > m_pAdvSink
Definition: CDefView.cpp:110
#define TRACE(s)
Definition: solgame.cpp:4
ULONG AddRef()
#define S_OK
Definition: intsafe.h:51
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 2950 of file CDefView.cpp.

2951 {
2952  FIXME("(%p)->(%p) stub\n", this, sort);
2953  return E_NOTIMPL;
2954 }
_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 2771 of file CDefView.cpp.

2772 {
2773  return ((m_ListView.GetStyle() & LVS_AUTOARRANGE) ? S_OK : S_FALSE);
2774 }
#define S_FALSE
Definition: winerror.h:2357
#define LVS_AUTOARRANGE
Definition: commctrl.h:2268
CListView m_ListView
Definition: CDefView.cpp:93
#define S_OK
Definition: intsafe.h:51

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

3630 {
3631  FIXME("Stub: this=%p\n", this);
3632 
3633  return E_NOTIMPL;
3634 }
#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 2499 of file CDefView.cpp.

2500 {
2501  TRACE("(%p)->(%p) vmode=%x flags=%x\n", this, lpfs,
2503 
2504  if (!lpfs)
2505  return E_INVALIDARG;
2506 
2507  *lpfs = m_FolderSettings;
2508  return S_OK;
2509 }
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:51

◆ GetCurrentViewMode()

HRESULT STDMETHODCALLTYPE CDefView::GetCurrentViewMode ( UINT pViewMode)
virtual

Implements IFolderView.

Definition at line 2626 of file CDefView.cpp.

2627 {
2628  TRACE("(%p)->(%p), stub\n", this, pViewMode);
2629 
2630  if (!pViewMode)
2631  return E_INVALIDARG;
2632 
2633  *pViewMode = m_FolderSettings.ViewMode;
2634  return S_OK;
2635 }
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:51

◆ GetDefaultSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetDefaultSpacing ( POINT ppt)
virtual

Implements IFolderView.

Definition at line 2766 of file CDefView.cpp.

2767 {
2768  return E_NOTIMPL;
2769 }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ GetDragPoint()

HRESULT STDMETHODCALLTYPE CDefView::GetDragPoint ( POINT pt)
virtual

Definition at line 3071 of file CDefView.cpp.

3072 {
3073  if (!pt)
3074  return E_INVALIDARG;
3075 
3076  *pt = m_ptFirstMousePos;
3077  return S_OK;
3078 }
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:51

◆ GetDropPoint()

HRESULT STDMETHODCALLTYPE CDefView::GetDropPoint ( POINT pt)
virtual

Definition at line 3080 of file CDefView.cpp.

3081 {
3082  FIXME("(%p)->(%p) stub\n", this, pt);
3083  return E_NOTIMPL;
3084 }
#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 2728 of file CDefView.cpp.

2729 {
2730  TRACE("(%p)->(%p)\n", this, piItem);
2731 
2732  *piItem = m_ListView.GetNextItem(-1, LVNI_FOCUSED);
2733 
2734  return S_OK;
2735 }
int GetNextItem(int i, WORD flags)
Definition: rosctrls.h:161
CListView m_ListView
Definition: CDefView.cpp:93
#define LVNI_FOCUSED
Definition: commctrl.h:2419
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:51

◆ GetFolder()

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

Implements IFolderView.

Definition at line 2681 of file CDefView.cpp.

2682 {
2683  if (m_pSFParent == NULL)
2684  return E_FAIL;
2685 
2686  return m_pSFParent->QueryInterface(riid, ppv);
2687 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define E_FAIL
Definition: ddrawi.h:102
smooth NULL
Definition: ftsmooth.c:416
CComPtr< IShellFolder > m_pSFParent
Definition: CDefView.cpp:87

◆ GetItemObject()

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

Implements IShellView.

Definition at line 2575 of file CDefView.cpp.

2576 {
2578 
2579  TRACE("(%p)->(uItem=0x%08x,\n\tIID=%s, ppv=%p)\n", this, uItem, debugstr_guid(&riid), ppvOut);
2580 
2581  if (!ppvOut)
2582  return E_INVALIDARG;
2583 
2584  *ppvOut = NULL;
2585 
2586  switch (uItem)
2587  {
2588  case SVGIO_BACKGROUND:
2589  if (IsEqualIID(riid, IID_IContextMenu))
2590  {
2592  if (FAILED_UNEXPECTEDLY(hr))
2593  return hr;
2594 
2595  IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2596  }
2597  else if (IsEqualIID(riid, IID_IDispatch))
2598  {
2600  {
2602  if (FAILED_UNEXPECTEDLY(hr))
2603  return hr;
2604  }
2605  hr = m_pShellFolderViewDual->QueryInterface(riid, ppvOut);
2606  }
2607  break;
2608 
2609  case SVGIO_SELECTION:
2610  GetSelections();
2611  hr = m_pSFParent->GetUIObjectOf(m_hWnd, m_cidl, m_apidl, riid, 0, ppvOut);
2612  if (FAILED_UNEXPECTEDLY(hr))
2613  return hr;
2614 
2615  if (IsEqualIID(riid, IID_IContextMenu))
2616  IUnknown_SetSite(*((IUnknown**)ppvOut), (IShellView *)this);
2617 
2618  break;
2619  }
2620 
2621  TRACE("-- (%p)->(interface=%p)\n", this, *ppvOut);
2622 
2623  return hr;
2624 }
#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
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
UINT GetSelections()
Definition: CDefView.cpp:1360
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:79
#define FAILED_UNEXPECTEDLY(hr)
Definition: shellutils.h:71
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
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 2737 of file CDefView.cpp.

2738 {
2739  int lvIndex = LV_FindItemByPidl(pidl);
2740  if (lvIndex == -1 || ppt == NULL)
2741  return E_INVALIDARG;
2742 
2743  m_ListView.GetItemPosition(lvIndex, ppt);
2744  return S_OK;
2745 }
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
smooth NULL
Definition: ftsmooth.c:416
CListView m_ListView
Definition: CDefView.cpp:93
#define S_OK
Definition: intsafe.h:51

◆ GetItemSpacing()

HRESULT STDMETHODCALLTYPE CDefView::GetItemSpacing ( ITEMSPACING spacing)
virtual

Definition at line 3116 of file CDefView.cpp.

3117 {
3118  FIXME("(%p)->(%p) stub\n", this, spacing);
3119  return E_NOTIMPL;
3120 }
#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 2976 of file CDefView.cpp.

2977 {
2978  TRACE("(%p)->(%p %d)\n", this, pidl, item);
2979  return Item(item, pidl);
2980 }
virtual HRESULT STDMETHODCALLTYPE Item(int iItemIndex, PITEMID_CHILD *ppidl)
Definition: CDefView.cpp:2689
#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 3001 of file CDefView.cpp.

3002 {
3003  TRACE("(%p)->(%p)\n", this, count);
3005  return S_OK;
3006 }
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:51

◆ GetSelectedCount()

HRESULT STDMETHODCALLTYPE CDefView::GetSelectedCount ( UINT count)
virtual

Definition at line 3033 of file CDefView.cpp.

3034 {
3035  FIXME("(%p)->(%p) stub\n", this, count);
3036  return E_NOTIMPL;
3037 }
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 3039 of file CDefView.cpp.

3040 {
3041  TRACE("(%p)->(%p %p)\n", this, pidl, items);
3042 
3043  *items = GetSelections();
3044 
3045  if (*items)
3046  {
3047  *pidl = static_cast<PCUITEMID_CHILD *>(LocalAlloc(0, *items * sizeof(PCUITEMID_CHILD)));
3048  if (!*pidl)
3049  {
3050  return E_OUTOFMEMORY;
3051  }
3052 
3053  /* it's documented that caller shouldn't PIDLs, only array itself */
3054  memcpy(*pidl, m_apidl, *items * sizeof(PCUITEMID_CHILD));
3055  }
3056 
3057  return S_OK;
3058 }
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Definition: shtypes.idl:70
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
UINT GetSelections()
Definition: CDefView.cpp:1360
#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:51
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 2719 of file CDefView.cpp.

2720 {
2721  TRACE("(%p)->(%p)\n", this, piItem);
2722 
2723  *piItem = m_ListView.GetSelectionMark();
2724 
2725  return S_OK;
2726 }
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:51

◆ GetSelections()

UINT CDefView::GetSelections ( )

Definition at line 1360 of file CDefView.cpp.

1361 {
1362  SHFree(m_apidl);
1363 
1365  m_apidl = static_cast<PCUITEMID_CHILD*>(SHAlloc(m_cidl * sizeof(PCUITEMID_CHILD)));
1366  if (!m_apidl)
1367  {
1368  m_cidl = 0;
1369  return 0;
1370  }
1371 
1372  TRACE("-- Items selected =%u\n", m_cidl);
1373 
1374  UINT i = 0;
1375  int lvIndex = -1;
1376  while ((lvIndex = m_ListView.GetNextItem(lvIndex, LVNI_SELECTED)) > -1)
1377  {
1378  m_apidl[i] = _PidlByItem(lvIndex);
1379  i++;
1380  if (i == m_cidl)
1381  break;
1382  TRACE("-- selected Item found\n");
1383  }
1384 
1385  return m_cidl;
1386 }
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:2420
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
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
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 2747 of file CDefView.cpp.

2748 {
2749  TRACE("(%p)->(%p)\n", this, ppt);
2750 
2751  if (!m_ListView)
2752  return S_FALSE;
2753 
2754  if (ppt)
2755  {
2756  SIZE spacing;
2757  m_ListView.GetItemSpacing(spacing);
2758 
2759  ppt->x = spacing.cx;
2760  ppt->y = spacing.cy;
2761  }
2762 
2763  return S_OK;
2764 }
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:51
LONG cy
Definition: windef.h:335

◆ GetView()

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

Implements IShellView2.

Definition at line 2836 of file CDefView.cpp.

2837 {
2838  FIXME("(%p)->(%p, %lu) stub\n", this, view_guid, view_type);
2839  return E_NOTIMPL;
2840 }
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 2351 of file CDefView.cpp.

2352 {
2353  TRACE("(%p)\n", this);
2354 
2355  *phWnd = m_hWnd;
2356 
2357  return S_OK;
2358 }
#define TRACE(s)
Definition: solgame.cpp:4
HWND m_hWnd
Definition: atlwin.h:268
#define S_OK
Definition: intsafe.h:51

◆ GetWindowProc()

virtual WNDPROC CDefView::GetWindowProc ( )
inlinevirtual

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

Definition at line 308 of file CDefView.cpp.

309  {
310  return WindowProc;
311  }
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: CDefView.cpp:313

◆ GetWndClassInfo()

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

Definition at line 295 of file CDefView.cpp.

296  {
297  static ATL::CWndClassInfo wc =
298  {
300  0, 0, NULL, NULL,
302  },
303  NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
304  };
305  return wc;
306  }
static const WCHAR SV_CLASS_NAME[]
Definition: CDefView.cpp:45
#define TRUE
Definition: types.h:120
smooth NULL
Definition: ftsmooth.c:416
#define _T(x)
Definition: vfdio.h:22
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: atlwin.h:1530
#define LoadCursor
Definition: winuser.h:5787
#define IDC_ARROW</