ReactOS 0.4.15-dev-7842-g558ab78
CShellBrowser Class Reference
Inheritance diagram for CShellBrowser:
Collaboration diagram for CShellBrowser:

Classes

class  barInfo
 

Public Member Functions

 CShellBrowser ()
 
 ~CShellBrowser ()
 
HRESULT Initialize ()
 
HRESULT BrowseToPIDL (LPCITEMIDLIST pidl, long flags)
 
HRESULT BrowseToPath (IShellFolder *newShellFolder, LPCITEMIDLIST absolutePIDL, FOLDERSETTINGS *folderSettings, long flags)
 
HRESULT GetMenuBand (REFIID riid, void **shellMenu)
 
HRESULT GetBaseBar (bool vertical, REFIID riid, void **theBaseBar)
 
BOOL IsBandLoaded (const CLSID clsidBand, bool vertical, DWORD *pdwBandID)
 
HRESULT ShowBand (const CLSID &classID, bool vertical)
 
HRESULT NavigateToParent ()
 
HRESULT DoFolderOptions ()
 
void RepositionBars ()
 
HRESULT BuildExplorerBandMenu ()
 
HRESULT BuildExplorerBandCategory (HMENU hBandsMenu, CATID category, DWORD dwPos, UINT *nbFound)
 
BOOL IsBuiltinBand (CLSID &bandID)
 
virtual WNDPROC GetWindowProc ()
 
HRESULT FireEvent (DISPID dispIdMember, int argCount, VARIANT *arguments)
 
HRESULT FireNavigateComplete (const wchar_t *newDirectory)
 
HRESULT FireCommandStateChange (bool newState, int commandID)
 
HRESULT FireCommandStateChangeAll ()
 
HRESULT UpdateForwardBackState ()
 
HRESULT UpdateUpState ()
 
void UpdateGotoMenu (HMENU theMenu)
 
void UpdateViewMenu (HMENU theMenu)
 
void RefreshCabinetState ()
 
void UpdateWindowTitle ()
 
STDMETHOD() GetBorderDW (IUnknown *punkObj, LPRECT prcBorder) override
 
STDMETHOD() RequestBorderSpaceDW (IUnknown *punkObj, LPCBORDERWIDTHS pbw) override
 
STDMETHOD() SetBorderSpaceDW (IUnknown *punkObj, LPCBORDERWIDTHS pbw) override
 
STDMETHOD() QueryStatus (const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) override
 
STDMETHOD() Exec (const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) override
 
STDMETHOD() GetWindow (HWND *lphwnd) override
 
STDMETHOD() ContextSensitiveHelp (BOOL fEnterMode) override
 
STDMETHOD() InsertMenusSB (HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) override
 
STDMETHOD() SetMenuSB (HMENU hmenuShared, HOLEMENU holemenuRes, HWND hwndActiveObject) override
 
STDMETHOD() RemoveMenusSB (HMENU hmenuShared) override
 
STDMETHOD() SetStatusTextSB (LPCOLESTR pszStatusText) override
 
STDMETHOD() EnableModelessSB (BOOL fEnable) override
 
STDMETHOD() TranslateAcceleratorSB (MSG *pmsg, WORD wID) override
 
STDMETHOD() BrowseObject (LPCITEMIDLIST pidl, UINT wFlags) override
 
STDMETHOD() GetViewStateStream (DWORD grfMode, IStream **ppStrm) override
 
STDMETHOD() GetControlWindow (UINT id, HWND *lphwnd) override
 
STDMETHOD() SendControlMsg (UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *pret) override
 
STDMETHOD() QueryActiveShellView (IShellView **ppshv) override
 
STDMETHOD() OnViewWindowActive (IShellView *ppshv) override
 
STDMETHOD() SetToolbarItems (LPTBBUTTON lpButtons, UINT nButtons, UINT uFlags) override
 
STDMETHOD() DragEnter (IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override
 
STDMETHOD() DragOver (DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override
 
STDMETHOD() DragLeave () override
 
STDMETHOD() Drop (IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect) override
 
STDMETHOD() QueryService (REFGUID guidService, REFIID riid, void **ppvObject) override
 
STDMETHOD() GetPropertyBag (long flags, REFIID riid, void **ppvObject) override
 
STDMETHOD() GetTypeInfoCount (UINT *pctinfo) override
 
STDMETHOD() GetTypeInfo (UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) override
 
STDMETHOD() GetIDsOfNames (REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) override
 
STDMETHOD() Invoke (DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) override
 
STDMETHOD() GetParentSite (IOleInPlaceSite **ppipsite) override
 
STDMETHOD() SetTitle (IShellView *psv, LPCWSTR pszName) override
 
STDMETHOD() GetTitle (IShellView *psv, LPWSTR pszName, DWORD cchName) override
 
STDMETHOD() GetOleObject (IOleObject **ppobjv) override
 
STDMETHOD() GetTravelLog (ITravelLog **pptl) override
 
STDMETHOD() ShowControlWindow (UINT id, BOOL fShow) override
 
STDMETHOD() IsControlWindowShown (UINT id, BOOL *pfShown) override
 
STDMETHOD() IEGetDisplayName (LPCITEMIDLIST pidl, LPWSTR pwszName, UINT uFlags) override
 
STDMETHOD() IEParseDisplayName (UINT uiCP, LPCWSTR pwszPath, LPITEMIDLIST *ppidlOut) override
 
STDMETHOD() DisplayParseError (HRESULT hres, LPCWSTR pwszPath) override
 
STDMETHOD() NavigateToPidl (LPCITEMIDLIST pidl, DWORD grfHLNF) override
 
STDMETHOD() SetNavigateState (BNSTATE bnstate) override
 
STDMETHOD() GetNavigateState (BNSTATE *pbnstate) override
 
STDMETHOD() NotifyRedirect (IShellView *psv, LPCITEMIDLIST pidl, BOOL *pfDidBrowse) override
 
STDMETHOD() UpdateWindowList () override
 
STDMETHOD() UpdateBackForwardState () override
 
STDMETHOD() SetFlags (DWORD dwFlags, DWORD dwFlagMask) override
 
STDMETHOD() GetFlags (DWORD *pdwFlags) override
 
STDMETHOD() CanNavigateNow (void) override
 
STDMETHOD() GetPidl (LPITEMIDLIST *ppidl) override
 
STDMETHOD() SetReferrer (LPCITEMIDLIST pidl) override
 
 STDMETHOD_ (DWORD, GetBrowserIndex)() override
 
STDMETHOD() GetBrowserByIndex (DWORD dwID, IUnknown **ppunk) override
 
STDMETHOD() GetHistoryObject (IOleObject **ppole, IStream **pstm, IBindCtx **ppbc) override
 
STDMETHOD() SetHistoryObject (IOleObject *pole, BOOL fIsLocalAnchor) override
 
STDMETHOD() CacheOLEServer (IOleObject *pole) override
 
STDMETHOD() GetSetCodePage (VARIANT *pvarIn, VARIANT *pvarOut) override
 
STDMETHOD() OnHttpEquiv (IShellView *psv, BOOL fDone, VARIANT *pvarargIn, VARIANT *pvarargOut) override
 
STDMETHOD() GetPalette (HPALETTE *hpal) override
 
STDMETHOD() RegisterWindow (BOOL fForceRegister, int swc) override
 
 STDMETHOD_ (LRESULT, WndProcBS)(HWND hwnd
 
STDMETHOD() SetAsDefFolderSettings () override
 
STDMETHOD() GetViewRect (RECT *prc) override
 
STDMETHOD() OnSize (WPARAM wParam) override
 
STDMETHOD() OnCreate (struct tagCREATESTRUCTW *pcs) override
 
 STDMETHOD_ (LRESULT, OnCommand)(WPARAM wParam
 
STDMETHOD() OnDestroy () override
 
 STDMETHOD_ (LRESULT, OnNotify)(struct tagNMHDR *pnm) override
 
STDMETHOD() OnSetFocus () override
 
STDMETHOD() OnFrameWindowActivateBS (BOOL fActive) override
 
STDMETHOD() ReleaseShellView () override
 
STDMETHOD() ActivatePendingView () override
 
STDMETHOD() CreateViewWindow (IShellView *psvNew, IShellView *psvOld, LPRECT prcView, HWND *phwnd) override
 
STDMETHOD() CreateBrowserPropSheetExt (REFIID riid, void **ppv) override
 
STDMETHOD() GetViewWindow (HWND *phwndView) override
 
STDMETHOD() GetBaseBrowserData (LPCBASEBROWSERDATA *pbbd) override
 
 STDMETHOD_ (LPBASEBROWSERDATA, PutBaseBrowserData)(void) override
 
STDMETHOD() InitializeTravelLog (ITravelLog *ptl, DWORD dw) override
 
STDMETHOD() SetTopBrowser () override
 
STDMETHOD() Offline (int iCmd) override
 
STDMETHOD() AllowViewResize (BOOL f) override
 
STDMETHOD() SetActivateState (UINT u) override
 
STDMETHOD() UpdateSecureLockIcon (int eSecureLock) override
 
STDMETHOD() InitializeDownloadManager () override
 
STDMETHOD() InitializeTransitionSite () override
 
STDMETHOD() _Initialize (HWND hwnd, IUnknown *pauto) override
 
STDMETHOD() _CancelPendingNavigationAsync (void) override
 
STDMETHOD() _CancelPendingView () override
 
STDMETHOD() _MaySaveChanges () override
 
STDMETHOD() _PauseOrResumeView (BOOL fPaused) override
 
STDMETHOD() _DisableModeless () override
 
STDMETHOD() _NavigateToPidl (LPCITEMIDLIST pidl, DWORD grfHLNF, DWORD dwFlags) override
 
STDMETHOD() _TryShell2Rename (IShellView *psv, LPCITEMIDLIST pidlNew) override
 
STDMETHOD() _SwitchActivationNow () override
 
STDMETHOD() _ExecChildren (IUnknown *punkBar, BOOL fBroadcast, const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvarargIn, VARIANTARG *pvarargOut) override
 
STDMETHOD() _SendChildren (HWND hwndBar, BOOL fBroadcast, UINT uMsg, WPARAM wParam, LPARAM lParam) override
 
STDMETHOD() GetFolderSetData (struct tagFolderSetData *pfsd) override
 
STDMETHOD() _OnFocusChange (UINT itb) override
 
STDMETHOD() v_ShowHideChildWindows (BOOL fChildOnly) override
 
 STDMETHOD_ (UINT, _get_itbLastFocus)() override
 
STDMETHOD() _put_itbLastFocus (UINT itbLastFocus) override
 
STDMETHOD() _UIActivateView (UINT uState) override
 
STDMETHOD() _GetViewBorderRect (RECT *prc) override
 
STDMETHOD() _UpdateViewRectSize () override
 
STDMETHOD() _ResizeNextBorder (UINT itb) override
 
STDMETHOD() _ResizeView () override
 
STDMETHOD() _GetEffectiveClientArea (LPRECT lprectBorder, HMONITOR hmon) override
 
 STDMETHOD_ (IStream *, v_GetViewStream)(LPCITEMIDLIST pidl
 
 STDMETHOD_ (LRESULT, ForwardViewMsg)(UINT uMsg
 
STDMETHOD() SetAcceleratorMenu (HACCEL hacc) override
 
 STDMETHOD_ (int, _GetToolbarCount)() override
 
 STDMETHOD_ (LPTOOLBARITEM, _GetToolbarItem)(int itb) override
 
STDMETHOD() _SaveToolbars (IStream *pstm) override
 
STDMETHOD() _LoadToolbars (IStream *pstm) override
 
STDMETHOD() _CloseAndReleaseToolbars (BOOL fClose) override
 
STDMETHOD() v_MayGetNextToolbarFocus (LPMSG lpMsg, UINT itbNext, int citb, LPTOOLBARITEM *pptbi, HWND *phwnd) override
 
STDMETHOD() _ResizeNextBorderHelper (UINT itb, BOOL bUseHmonitor) override
 
 STDMETHOD_ (UINT, _FindTBar)(IUnknown *punkSrc) override
 
STDMETHOD() _SetFocus (LPTOOLBARITEM ptbi, HWND hwnd, LPMSG lpMsg) override
 
STDMETHOD() v_MayTranslateAccelerator (MSG *pmsg) override
 
STDMETHOD() _GetBorderDWHelper (IUnknown *punkSrc, LPRECT lprectBorder, BOOL bUseHmonitor) override
 
STDMETHOD() v_CheckZoneCrossing (LPCITEMIDLIST pidl) override
 
STDMETHOD() GoBack () override
 
STDMETHOD() GoForward () override
 
STDMETHOD() GoHome () override
 
STDMETHOD() GoSearch () override
 
STDMETHOD() Navigate (BSTR URL, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers) override
 
STDMETHOD() Refresh () override
 
STDMETHOD() Refresh2 (VARIANT *Level) override
 
STDMETHOD() Stop () override
 
STDMETHOD() get_Application (IDispatch **ppDisp) override
 
STDMETHOD() get_Parent (IDispatch **ppDisp) override
 
STDMETHOD() get_Container (IDispatch **ppDisp) override
 
STDMETHOD() get_Document (IDispatch **ppDisp) override
 
STDMETHOD() get_TopLevelContainer (VARIANT_BOOL *pBool) override
 
STDMETHOD() get_Type (BSTR *Type) override
 
STDMETHOD() get_Left (long *pl) override
 
STDMETHOD() put_Left (long Left) override
 
STDMETHOD() get_Top (long *pl) override
 
STDMETHOD() put_Top (long Top) override
 
STDMETHOD() get_Width (long *pl) override
 
STDMETHOD() put_Width (long Width) override
 
STDMETHOD() get_Height (long *pl) override
 
STDMETHOD() put_Height (long Height) override
 
STDMETHOD() get_LocationName (BSTR *LocationName) override
 
STDMETHOD() get_LocationURL (BSTR *LocationURL) override
 
STDMETHOD() get_Busy (VARIANT_BOOL *pBool) override
 
STDMETHOD() Quit () override
 
STDMETHOD() ClientToWindow (int *pcx, int *pcy) override
 
STDMETHOD() PutProperty (BSTR Property, VARIANT vtValue) override
 
STDMETHOD() GetProperty (BSTR Property, VARIANT *pvtValue) override
 
STDMETHOD() get_Name (BSTR *Name) override
 
STDMETHOD() get_HWND (SHANDLE_PTR *pHWND) override
 
STDMETHOD() get_FullName (BSTR *FullName) override
 
STDMETHOD() get_Path (BSTR *Path) override
 
STDMETHOD() get_Visible (VARIANT_BOOL *pBool) override
 
STDMETHOD() put_Visible (VARIANT_BOOL Value) override
 
STDMETHOD() get_StatusBar (VARIANT_BOOL *pBool) override
 
STDMETHOD() put_StatusBar (VARIANT_BOOL Value) override
 
STDMETHOD() get_StatusText (BSTR *StatusText) override
 
STDMETHOD() put_StatusText (BSTR StatusText) override
 
STDMETHOD() get_ToolBar (int *Value) override
 
STDMETHOD() put_ToolBar (int Value) override
 
STDMETHOD() get_MenuBar (VARIANT_BOOL *Value) override
 
STDMETHOD() put_MenuBar (VARIANT_BOOL Value) override
 
STDMETHOD() get_FullScreen (VARIANT_BOOL *pbFullScreen) override
 
STDMETHOD() put_FullScreen (VARIANT_BOOL bFullScreen) override
 
STDMETHOD() Navigate2 (VARIANT *URL, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers) override
 
STDMETHOD() QueryStatusWB (OLECMDID cmdID, OLECMDF *pcmdf) override
 
STDMETHOD() ExecWB (OLECMDID cmdID, OLECMDEXECOPT cmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) override
 
STDMETHOD() ShowBrowserBar (VARIANT *pvaClsid, VARIANT *pvarShow, VARIANT *pvarSize) override
 
STDMETHOD() get_ReadyState (READYSTATE *plReadyState) override
 
STDMETHOD() get_Offline (VARIANT_BOOL *pbOffline) override
 
STDMETHOD() put_Offline (VARIANT_BOOL bOffline) override
 
STDMETHOD() get_Silent (VARIANT_BOOL *pbSilent) override
 
STDMETHOD() put_Silent (VARIANT_BOOL bSilent) override
 
STDMETHOD() get_RegisterAsBrowser (VARIANT_BOOL *pbRegister) override
 
STDMETHOD() put_RegisterAsBrowser (VARIANT_BOOL bRegister) override
 
STDMETHOD() get_RegisterAsDropTarget (VARIANT_BOOL *pbRegister) override
 
STDMETHOD() put_RegisterAsDropTarget (VARIANT_BOOL bRegister) override
 
STDMETHOD() get_TheaterMode (VARIANT_BOOL *pbRegister) override
 
STDMETHOD() put_TheaterMode (VARIANT_BOOL bRegister) override
 
STDMETHOD() get_AddressBar (VARIANT_BOOL *Value) override
 
STDMETHOD() put_AddressBar (VARIANT_BOOL Value) override
 
STDMETHOD() get_Resizable (VARIANT_BOOL *Value) override
 
STDMETHOD() put_Resizable (VARIANT_BOOL Value) override
 
STDMETHOD() FindWindowByIndex (DWORD dwID, IUnknown **ppunk) override
 
STDMETHOD() GetWindowData (IStream *pStream, LPWINDOWDATA pWinData) override
 
STDMETHOD() LoadHistoryPosition (LPWSTR pszUrlLocation, DWORD dwPosition) override
 
STDMETHOD() GetClassID (CLSID *pClassID) override
 
STDMETHOD() LoadHistory (IStream *pStream, IBindCtx *pbc) override
 
STDMETHOD() SaveHistory (IStream *pStream) override
 
STDMETHOD() SetPositionCookie (DWORD dwPositioncookie) override
 
STDMETHOD() GetPositionCookie (DWORD *pdwPositioncookie) override
 
LRESULT OnCreate (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnDestroy (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSize (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnInitMenuPopup (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSetFocus (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT RelayMsgToShellView (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSettingChange (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnClose (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnFolderOptions (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnMapNetworkDrive (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnDisconnectNetworkDrive (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnAboutReactOS (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnGoBack (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnGoForward (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnGoUpLevel (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnBackspace (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnGoHome (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnAddToFavorites (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnOrganizeFavorites (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnToggleStatusBarVisible (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnToggleToolbarLock (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnToggleToolbarBandVisible (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnToggleAddressBandVisible (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnToggleLinksBandVisible (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnToggleTextLabels (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnToolbarCustomize (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnGoTravel (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnRefresh (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnExplorerBar (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT RelayCommands (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnSettingsChange (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnGetSettingsPtr (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnAppCommand (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
HRESULT OnSearch ()
 
- Public Member Functions inherited from ATL::CWindowImpl< CShellBrowser, CWindow, CFrameWinTraits >
HWND Create (HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
 
- Public Member Functions inherited from ATL::CWindowImplBaseT< TBase, TWinTraits >
 CWindowImplBaseT ()
 
virtual void OnFinalMessage (HWND)
 
BOOL SubclassWindow (HWND hWnd)
 
HWND UnsubclassWindow (BOOL bForce=FALSE)
 
virtual WNDPROC GetWindowProc ()
 
LRESULT DefWindowProc (UINT uMsg, WPARAM wParam, LPARAM lParam)
 
HWND Create (HWND hWndParent, _U_RECT rect, LPCTSTR szWindowName, DWORD dwStyle, DWORD dwExStyle, _U_MENUorID MenuOrID, ATOM atom, LPVOID lpCreateParam)
 
- Public Member Functions inherited from ATL::CWindowImplRoot< TBase >
 CWindowImplRoot ()
 
virtual ~CWindowImplRoot ()
 
- Public Member Functions inherited from ATL::CWindow
 CWindow (HWND hWnd=NULL)
 
 operator HWND () const
 
UINT ArrangeIconicWindows ()
 
void Attach (HWND hWndNew)
 
HDC BeginPaint (LPPAINTSTRUCT lpPaint)
 
BOOL BringWindowToTop ()
 
BOOL CenterWindow (HWND hWndCenter=NULL)
 
BOOL ChangeClipboardChain (HWND hWndNewNext)
 
BOOL CheckDlgButton (int nIDButton, UINT nCheck)
 
BOOL CheckRadioButton (int nIDFirstButton, int nIDLastButton, int nIDCheckButton)
 
HWND ChildWindowFromPoint (POINT point) const
 
HWND ChildWindowFromPointEx (POINT point, UINT uFlags) const
 
BOOL ClientToScreen (LPPOINT lpPoint) const
 
BOOL ClientToScreen (LPRECT lpRect) const
 
HWND Create (LPCTSTR lpstrWndClass, HWND hWndParent, _U_RECT rect=NULL, LPCTSTR szWindowName=NULL, DWORD dwStyle=0, DWORD dwExStyle=0, _U_MENUorID MenuOrID=0U, LPVOID lpCreateParam=NULL)
 
BOOL CreateCaret (HBITMAP pBitmap)
 
BOOL CreateGrayCaret (int nWidth, int nHeight)
 
BOOL CreateSolidCaret (int nWidth, int nHeight)
 
HDWP DeferWindowPos (HDWP hWinPosInfo, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags)
 
BOOL DestroyWindow ()
 
HWND Detach ()
 
int DlgDirList (LPTSTR lpPathSpec, int nIDListBox, int nIDStaticPath, UINT nFileType)
 
int DlgDirListComboBox (LPTSTR lpPathSpec, int nIDComboBox, int nIDStaticPath, UINT nFileType)
 
BOOL DlgDirSelect (LPTSTR lpString, int nCount, int nIDListBox)
 
BOOL DlgDirSelectComboBox (LPTSTR lpString, int nCount, int nIDComboBox)
 
void DragAcceptFiles (BOOL bAccept=TRUE)
 
BOOL DrawMenuBar ()
 
BOOL EnableScrollBar (UINT uSBFlags, UINT uArrowFlags=ESB_ENABLE_BOTH)
 
BOOL EnableWindow (BOOL bEnable=TRUE)
 
void EndPaint (LPPAINTSTRUCT lpPaint)
 
BOOL FlashWindow (BOOL bInvert)
 
BOOL GetClientRect (LPRECT lpRect) const
 
HDC GetDC ()
 
HDC GetDCEx (HRGN hRgnClip, DWORD flags)
 
HWND GetDescendantWindow (int nID) const
 
HRESULT GetDlgControl (int nID, REFIID iid, void **ppCtrl)
 
int GetDlgCtrlID () const
 
HRESULT GetDlgHost (int nID, REFIID iid, void **ppHost)
 
HWND GetDlgItem (_In_ int nID) const
 
UINT GetDlgItemInt (_In_ int nID, _Out_opt_ BOOL *lpTrans=NULL, _In_ BOOL bSigned=TRUE) const
 
UINT GetDlgItemText (_In_ int nID, _Out_writes_to_(nMaxCount, return+1) LPTSTR lpStr, _In_ int nMaxCount) const
 
BOOL GetDlgItemText (_In_ int nID, _Inout_ _Outref_result_maybenull_ _Post_z_ BSTR &bstrText) const
 
DWORD GetExStyle () const
 
HFONT GetFont () const
 
DWORD GetHotKey () const
 
HICON GetIcon (BOOL bBigIcon=TRUE) const
 
HWND GetLastActivePopup () const
 
HMENU GetMenu () const
 
HWND GetNextDlgGroupItem (HWND hWndCtl, BOOL bPrevious=FALSE) const
 
HWND GetNextDlgTabItem (HWND hWndCtl, BOOL bPrevious=FALSE) const
 
CWindow GetParent () const
 
BOOL GetScrollInfo (int nBar, LPSCROLLINFO lpScrollInfo)
 
BOOL GetScrollPos (int nBar)
 
BOOL GetScrollRange (int nBar, LPINT lpMinPos, LPINT lpMaxPos) const
 
DWORD GetStyle () const
 
HMENU GetSystemMenu (BOOL bRevert)
 
HWND GetTopLevelParent () const
 
HWND GetTopLevelWindow () const
 
HWND GetTopWindow () const
 
BOOL GetUpdateRect (LPRECT lpRect, BOOL bErase=FALSE)
 
int GetUpdateRgn (HRGN hRgn, BOOL bErase=FALSE)
 
HWND GetWindow (UINT nCmd) const
 
DWORD GetWindowContextHelpId () const
 
HDC GetWindowDC ()
 
LONG GetWindowLong (int nIndex) const
 
LONG_PTR GetWindowLongPtr (int nIndex) const
 
BOOL GetWindowPlacement (WINDOWPLACEMENT *lpwndpl) const
 
DWORD GetWindowProcessID ()
 
BOOL GetWindowRect (LPRECT lpRect) const
 
int GetWindowRgn (HRGN hRgn)
 
int GetWindowText (_Out_writes_to_(nMaxCount, return+1) LPTSTR lpszStringBuf, _In_ int nMaxCount) const
 
BOOL GetWindowText (_Inout_ _Outref_result_maybenull_ _Post_z_ BSTR &bstrText) const
 
int GetWindowTextLength () const
 
DWORD GetWindowThreadID ()
 
WORD GetWindowWord (int nIndex) const
 
void GotoDlgCtrl (HWND hWndCtrl) const
 
BOOL HideCaret ()
 
BOOL HiliteMenuItem (HMENU hMenu, UINT uHiliteItem, UINT uHilite)
 
BOOL Invalidate (BOOL bErase=TRUE)
 
BOOL InvalidateRect (LPCRECT lpRect, BOOL bErase=TRUE)
 
void InvalidateRgn (HRGN hRgn, BOOL bErase=TRUE)
 
BOOL IsChild (const HWND hWnd) const
 
BOOL IsDialogMessage (LPMSG lpMsg)
 
UINT IsDlgButtonChecked (int nIDButton) const
 
BOOL IsIconic () const
 
BOOL IsParentDialog ()
 
BOOL IsWindow () const
 
BOOL IsWindowEnabled () const
 
BOOL IsWindowVisible () const
 
BOOL IsWindowUnicode ()
 
BOOL IsZoomed () const
 
BOOL KillTimer (UINT_PTR nIDEvent)
 
BOOL LockWindowUpdate (BOOL bLock=TRUE)
 
int MapWindowPoints (HWND hWndTo, LPPOINT lpPoint, UINT nCount) const
 
int MapWindowPoints (HWND hWndTo, LPRECT lpRect) const
 
int MessageBox (LPCTSTR lpszText, LPCTSTR lpszCaption=NULL, UINT nType=MB_OK)
 
BOOL ModifyStyle (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 
BOOL ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
 
BOOL MoveWindow (int x, int y, int nWidth, int nHeight, BOOL bRepaint=TRUE)
 
void NextDlgCtrl () const
 
BOOL OpenClipboard ()
 
BOOL PostMessage (UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
void PrevDlgCtrl () const
 
void Print (HDC hDC, DWORD dwFlags) const
 
void PrintClient (HDC hDC, DWORD dwFlags) const
 
BOOL RedrawWindow (LPCRECT lpRectUpdate=NULL, HRGN hRgnUpdate=NULL, UINT flags=RDW_INVALIDATE|RDW_UPDATENOW|RDW_ERASE)
 
int ReleaseDC (HDC hDC)
 
BOOL ResizeClient (int nWidth, int nHeight, BOOL bRedraw=FALSE)
 
BOOL ScreenToClient (LPPOINT lpPoint) const
 
BOOL ScrollWindow (int xAmount, int yAmount, LPCRECT lpRect=NULL, LPCRECT lpClipRect=NULL)
 
int ScrollWindowEx (int dx, int dy, LPCRECT lpRectScroll, LPCRECT lpRectClip, HRGN hRgnUpdate, LPRECT lpRectUpdate, UINT flags)
 
LRESULT SendDlgItemMessage (int nID, UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
LRESULT SendMessage (UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
void SendMessageToDescendants (UINT message, WPARAM wParam=0, LPARAM lParam=0, BOOL bDeep=TRUE)
 
BOOL SendNotifyMessage (UINT message, WPARAM wParam=0, LPARAM lParam=0)
 
HWND SetActiveWindow ()
 
HWND SetCapture ()
 
HWND SetClipboardViewer ()
 
int SetDlgCtrlID (int nID)
 
BOOL SetDlgItemInt (int nID, UINT nValue, BOOL bSigned=TRUE)
 
BOOL SetDlgItemText (int nID, LPCTSTR lpszString)
 
HWND SetFocus ()
 
void SetFont (HFONT hFont, BOOL bRedraw=TRUE)
 
int SetHotKey (WORD wVirtualKeyCode, WORD wModifiers)
 
HICON SetIcon (HICON hIcon, BOOL bBigIcon=TRUE)
 
BOOL SetMenu (HMENU hMenu)
 
HWND SetParent (HWND hWndNewParent)
 
void SetRedraw (BOOL bRedraw=TRUE)
 
int SetScrollInfo (int nBar, LPSCROLLINFO lpScrollInfo, BOOL bRedraw=TRUE)
 
int SetScrollPos (int nBar, int nPos, BOOL bRedraw=TRUE)
 
BOOL SetScrollRange (int nBar, int nMinPos, int nMaxPos, BOOL bRedraw=TRUE)
 
UINT_PTR SetTimer (UINT_PTR nIDEvent, UINT nElapse, void(CALLBACK *lpfnTimer)(HWND, UINT, UINT_PTR, DWORD)=NULL)
 
BOOL SetWindowContextHelpId (DWORD dwContextHelpId)
 
LONG SetWindowLong (int nIndex, LONG dwNewLong)
 
LONG_PTR SetWindowLongPtr (int nIndex, LONG_PTR dwNewLong)
 
BOOL SetWindowPlacement (const WINDOWPLACEMENT *lpwndpl)
 
BOOL SetWindowPos (HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
 
int SetWindowRgn (HRGN hRgn, BOOL bRedraw=FALSE)
 
BOOL SetWindowText (LPCTSTR lpszString)
 
WORD SetWindowWord (int nIndex, WORD wNewWord)
 
BOOL ShowCaret ()
 
BOOL ShowOwnedPopups (BOOL bShow=TRUE)
 
BOOL ShowScrollBar (UINT nBar, BOOL bShow=TRUE)
 
BOOL ShowWindow (int nCmdShow)
 
BOOL ShowWindowAsync (int nCmdShow)
 
BOOL UpdateWindow ()
 
BOOL ValidateRect (LPCRECT lpRect)
 
BOOL ValidateRgn (HRGN hRgn)
 
BOOL WinHelp (LPCTSTR lpszHelp, UINT nCmd=HELP_CONTEXT, DWORD dwData=0)
 
- Public Member Functions inherited from ATL::CMessageMap
virtual BOOL ProcessWindowMessage (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID)=0
 
- Public Member Functions inherited from ATL::CComObjectRootEx< CComMultiThreadModelNoCS >
 ~CComObjectRootEx ()
 
ULONG InternalAddRef ()
 
ULONG InternalRelease ()
 
void Lock ()
 
void Unlock ()
 
HRESULT _AtlInitialConstruct ()
 
- Public Member Functions inherited from ATL::CComObjectRootBase
 CComObjectRootBase ()
 
 ~CComObjectRootBase ()
 
void SetVoid (void *)
 
HRESULT _AtlFinalConstruct ()
 
HRESULT FinalConstruct ()
 
void InternalFinalConstructAddRef ()
 
void InternalFinalConstructRelease ()
 
void FinalRelease ()
 
- Public Member Functions inherited from IShellBrowser
HRESULT InsertMenusSB ([in] HMENU hmenuShared, [in, out] LPOLEMENUGROUPWIDTHS lpMenuWidths)
 
HRESULT SetMenuSB ([in] HMENU hmenuShared, [in] HOLEMENU holemenuReserved, [in] HWND hwndActiveObject)
 
HRESULT RemoveMenusSB ([in] HMENU hmenuShared)
 
HRESULT SetStatusTextSB ([in, unique] LPCOLESTR pszStatusText)
 
HRESULT EnableModelessSB ([in] BOOL fEnable)
 
HRESULT TranslateAcceleratorSB ([in] MSG *pmsg, [in] WORD wID)
 
HRESULT BrowseObject ([in] PCUIDLIST_RELATIVE pidl, [in] UINT wFlags)
 
HRESULT GetViewStateStream ([in] DWORD grfMode, [out] IStream **ppStrm)
 
HRESULT GetControlWindow ([in] UINT id, [out] HWND *phwnd)
 
HRESULT SendControlMsg ([in] UINT id, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [in] LRESULT *pret)
 
HRESULT QueryActiveShellView ([out] IShellView **ppshv)
 
HRESULT OnViewWindowActive ([in] IShellView *pshv)
 
HRESULT SetToolbarItems ([in] LPTBBUTTONSB lpButtons, [in] UINT nButtons, [in] UINT uFlags)
 
HRESULT GetWindow ([out] HWND *phwnd)
 
HRESULT ContextSensitiveHelp ([in] BOOL fEnterMode)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
HRESULT DragEnter ([in, unique] IDataObject *pDataObj, [in] DWORD grfKeyState, [in] POINTL pt, [in, out] DWORD *pdwEffect)
 
HRESULT DragOver ([in] DWORD grfKeyState, [in] POINTL pt, [in, out] DWORD *pdwEffect)
 
HRESULT DragLeave ()
 
HRESULT Drop ([in, unique] IDataObject *pDataObj, [in] DWORD grfKeyState, [in] POINTL pt, [in, out] DWORD *pdwEffect)
 
- Public Member Functions inherited from IServiceProvider
HRESULT QueryService ([in] REFGUID guidService, [in] REFIID riid, [out] void **ppvObject)
 
HRESULT RemoteQueryService ([in] REFGUID guidService, [in] REFIID riid, [out, iid_is(riid)] IUnknown **ppvObject)
 
- Public Member Functions inherited from IProfferServiceImpl< CShellBrowser >
STDMETHODIMP ProfferService (REFGUID rguidService, IServiceProvider *psp, DWORD *pdwCookie)
 
STDMETHODIMP RevokeService (DWORD dwCookie)
 
HRESULT QueryService (REFGUID guidService, REFIID riid, void **ppvObject)
 
HRESULT ProfferService ([in] REFGUID service, [in] IServiceProvider *pService, [out] DWORD *pCookie)
 
HRESULT RevokeService ([in] DWORD cookie)
 
HRESULT FindWindowByIndex ([in] DWORD dwID, [out] IUnknown **ppunk)
 
HRESULT GetWindowData ([in] IStream *pStream, [out] LPWINDOWDATA pWinData)
 
HRESULT LoadHistoryPosition ([in] LPWSTR pszUrlLocation, [in] DWORD dwPosition)
 
HRESULT LoadHistory ([in] IStream *pStream, [in] IBindCtx *pbc)
 
HRESULT SaveHistory ([in] IStream *pStream)
 
HRESULT SetPositionCookie ([in] DWORD dwPositioncookie)
 
HRESULT GetPositionCookie ([out] DWORD *pdwPositioncookie)
 
HRESULT GetClassID ([out] CLSID *pClassID)
 
HRESULT QueryStatus ([in, unique] const GUID *pguidCmdGroup, [in] ULONG cCmds, [in, out, size_is(cCmds)] OLECMD prgCmds[], [in, out, unique] OLECMDTEXT *pCmdText)
 
HRESULT Exec ([in, unique] const GUID *pguidCmdGroup, [in] DWORD nCmdID, [in] DWORD nCmdexecopt, [in, unique] VARIANT *pvaIn, [in, out, unique] VARIANT *pvaOut)
 
- Public Member Functions inherited from IBrowserService2
LRESULT WndProcBS ([in] HWND hwnd, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam)
 
HRESULT SetAsDefFolderSettings ()
 
HRESULT GetViewRect ([in, out] RECT *prc)
 
HRESULT OnSize ([in] WPARAM wParam)
 
HRESULT OnCreate ([in] struct tagCREATESTRUCTW *pcs)
 
LRESULT OnCommand ([in] WPARAM wParam, [in] LPARAM lParam)
 
HRESULT OnDestroy ()
 
LRESULT OnNotify ([in, out] struct tagNMHDR *pnm)
 
HRESULT OnSetFocus ()
 
HRESULT OnFrameWindowActivateBS ([in] BOOL fActive)
 
HRESULT ReleaseShellView ()
 
HRESULT ActivatePendingView ()
 
HRESULT CreateViewWindow ([in] IShellView *psvNew, [in] IShellView *psvOld, [out] LPRECT prcView, [out] HWND *phwnd)
 
HRESULT CreateBrowserPropSheetExt ([in] REFIID riid, [out] void **ppv)
 
HRESULT GetViewWindow ([out] HWND *phwndView)
 
HRESULT GetBaseBrowserData ([in, out] LPCBASEBROWSERDATA *pbbd)
 
LPBASEBROWSERDATA PutBaseBrowserData ()
 
HRESULT InitializeTravelLog ([in] ITravelLog *ptl, [in] DWORD dw)
 
HRESULT SetTopBrowser ()
 
HRESULT Offline ([in] int iCmd)
 
HRESULT AllowViewResize ([in] BOOL f)
 
HRESULT SetActivateState ([in] UINT u)
 
HRESULT UpdateSecureLockIcon ([in] int eSecureLock)
 
HRESULT InitializeDownloadManager ()
 
HRESULT InitializeTransitionSite ()
 
HRESULT _Initialize ([in] HWND hwnd, [in] IUnknown *pauto)
 
HRESULT _CancelPendingNavigationAsync ()
 
HRESULT _CancelPendingView ()
 
HRESULT _MaySaveChanges ()
 
HRESULT _PauseOrResumeView ([in] BOOL fPaused)
 
HRESULT _DisableModeless ()
 
HRESULT _NavigateToPidl ([in] PCIDLIST_ABSOLUTE pidl, [in] DWORD grfHLNF, [in] DWORD dwFlags)
 
HRESULT _TryShell2Rename ([in] IShellView *psv, [in] PCIDLIST_ABSOLUTE pidlNew)
 
HRESULT _SwitchActivationNow ()
 
HRESULT _ExecChildren ([in] IUnknown *punkBar, [in] BOOL fBroadcast, [in] const GUID *pguidCmdGroup, [in] DWORD nCmdID, [in] DWORD nCmdexecopt, [in] VARIANTARG *pvarargIn, [in, out] VARIANTARG *pvarargOut)
 
HRESULT _SendChildren ([in] HWND hwndBar, [in] BOOL fBroadcast, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam)
 
HRESULT GetFolderSetData ([in, out] struct tagFolderSetData *pfsd)
 
HRESULT _OnFocusChange ([in] UINT itb)
 
HRESULT v_ShowHideChildWindows ([in] BOOL fChildOnly)
 
UINT _get_itbLastFocus ()
 
HRESULT _put_itbLastFocus ([in] UINT itbLastFocus)
 
HRESULT _UIActivateView ([in] UINT uState)
 
HRESULT _GetViewBorderRect ([in, out] RECT *prc)
 
HRESULT _UpdateViewRectSize ()
 
HRESULT _ResizeNextBorder ([in] UINT itb)
 
HRESULT _ResizeView ()
 
HRESULT _GetEffectiveClientArea ([in, out] LPRECT lprectBorder, [in] HMONITOR hmon)
 
IStreamv_GetViewStream ([in] PCIDLIST_ABSOLUTE pidl, [in] DWORD grfMode, [in] LPCWSTR pwszName)
 
LRESULT ForwardViewMsg ([in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam)
 
HRESULT SetAcceleratorMenu ([in] HACCEL hacc)
 
int _GetToolbarCount ()
 
LPTOOLBARITEM _GetToolbarItem ([in] int itb)
 
HRESULT _SaveToolbars ([in] IStream *pstm)
 
HRESULT _LoadToolbars ([in] IStream *pstm)
 
HRESULT _CloseAndReleaseToolbars ([in] BOOL fClose)
 
HRESULT v_MayGetNextToolbarFocus ([in] LPMSG lpMsg, [in] UINT itbNext, [in] int citb, [out] LPTOOLBARITEM *pptbi, [out] HWND *phwnd)
 
HRESULT _ResizeNextBorderHelper ([in] UINT itb, [in] BOOL bUseHmonitor)
 
UINT _FindTBar ([in] IUnknown *punkSrc)
 
HRESULT _SetFocus ([in] LPTOOLBARITEM ptbi, [in] HWND hwnd, [in] LPMSG lpMsg)
 
HRESULT v_MayTranslateAccelerator ([in] MSG *pmsg)
 
HRESULT _GetBorderDWHelper ([in] IUnknown *punkSrc, [in] LPRECT lprectBorder, [in] BOOL bUseHmonitor)
 
HRESULT v_CheckZoneCrossing ([in, out] PCIDLIST_ABSOLUTE pidl)
 
- Public Member Functions inherited from IBrowserService
HRESULT GetParentSite ([out] IOleInPlaceSite **ppipsite)
 
HRESULT SetTitle ([in] IShellView *psv, [in] LPCWSTR pszName)
 
HRESULT GetTitle ([in] IShellView *psv, [out, size_is(cchName)] LPWSTR pszName, [in] DWORD cchName)
 
HRESULT GetOleObject ([out] IOleObject **ppobjv)
 
HRESULT GetTravelLog ([out, optional] ITravelLog **pptl)
 
HRESULT ShowControlWindow ([in] UINT id, [in] BOOL fShow)
 
HRESULT IsControlWindowShown ([in] UINT id, [out] BOOL *pfShown)
 
HRESULT IEGetDisplayName ([in] PCIDLIST_ABSOLUTE pidl, [out] LPWSTR pwszName, [in] UINT uFlags)
 
HRESULT IEParseDisplayName ([in] UINT uiCP, [in] LPCWSTR pwszPath, [out] PIDLIST_ABSOLUTE *ppidlOut)
 
HRESULT DisplayParseError ([in] HRESULT hres, [in] LPCWSTR pwszPath)
 
HRESULT NavigateToPidl ([in] PCIDLIST_ABSOLUTE pidl, [in] DWORD grfHLNF)
 
HRESULT SetNavigateState ([in] BNSTATE bnstate)
 
HRESULT GetNavigateState ([out] BNSTATE *pbnstate)
 
HRESULT NotifyRedirect ([in] IShellView *psv, [in] PCIDLIST_ABSOLUTE pidl, [out] BOOL *pfDidBrowse)
 
HRESULT UpdateWindowList ()
 
HRESULT UpdateBackForwardState ()
 
HRESULT SetFlags ([in] DWORD dwFlags, [in] DWORD dwFlagMask)
 
HRESULT GetFlags ([out] DWORD *pdwFlags)
 
HRESULT CanNavigateNow ()
 
HRESULT GetPidl ([out] PIDLIST_ABSOLUTE *ppidl)
 
HRESULT SetReferrer ([in] PCIDLIST_ABSOLUTE pidl)
 
DWORD GetBrowserIndex ()
 
HRESULT GetBrowserByIndex ([in] DWORD dwID, [out] IUnknown **ppunk)
 
HRESULT GetHistoryObject ([out] IOleObject **ppole, [out] IStream **pstm, [out] IBindCtx **ppbc)
 
HRESULT SetHistoryObject ([in] IOleObject *pole, [in] BOOL fIsLocalAnchor)
 
HRESULT CacheOLEServer ([in] IOleObject *pole)
 
HRESULT GetSetCodePage ([in] VARIANT *pvarIn, [out] VARIANT *pvarOut)
 
HRESULT OnHttpEquiv ([in] IShellView *psv, [in] BOOL fDone, [in] VARIANT *pvarargIn, [out] VARIANT *pvarargOut)
 
HRESULT GetPalette ([out] HPALETTE *hpal)
 
HRESULT RegisterWindow ([in] BOOL fForceRegister, [in] int swc)
 
- Public Member Functions inherited from ATL::IConnectionPointContainerImpl< CShellBrowser >
STDMETHOD() EnumConnectionPoints (IEnumConnectionPoints **ppEnum)
 
STDMETHOD() FindConnectionPoint (REFIID riid, IConnectionPoint **ppCP)
 
HRESULT EnumConnectionPoints ([out] IEnumConnectionPoints **ppEnum)
 
HRESULT FindConnectionPoint ([in] REFIID riid, [out] IConnectionPoint **ppCP)
 
- Public Member Functions inherited from MyIConnectionPointImpl< CShellBrowser, &DIID_DWebBrowserEvents2 >
STDMETHODIMP Advise (IUnknown *pUnkSink, DWORD *pdwCookie)
 
- Public Member Functions inherited from MyIConnectionPointImpl< CShellBrowser, &DIID_DWebBrowserEvents >
STDMETHODIMP Advise (IUnknown *pUnkSink, DWORD *pdwCookie)
 

Static Public Member Functions

static LRESULT CALLBACK WindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static ATL::CWndClassInfoGetWndClassInfo ()
 
- Static Public Member Functions inherited from ATL::CWindowImpl< CShellBrowser, CWindow, CFrameWinTraits >
static LPCTSTR GetWndCaption ()
 
- Static Public Member Functions inherited from ATL::CWindowImplBaseT< TBase, TWinTraits >
static DWORD GetWndStyle (DWORD dwStyle)
 
static DWORD GetWndExStyle (DWORD dwExStyle)
 
static LRESULT CALLBACK StartWindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK WindowProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
- Static Public Member Functions inherited from ATL::CWindow
static LPCTSTR GetWndClassName ()
 
static LRESULT SendMessage (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 
- Static Public Member Functions inherited from ATL::CComObjectRootBase
static void WINAPI ObjectMain (bool)
 
static const struct _ATL_CATMAP_ENTRYGetCategoryMap ()
 
static HRESULT WINAPI InternalQueryInterface (void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
 

Public Attributes

UINT uMsg
 
UINT WPARAM wParam
 
UINT WPARAM LPARAM lParam override
 
LPARAM lParam override
 
DWORD grfMode
 
DWORD LPCWSTR pwszName override
 
WPARAM wParam
 
WPARAM LPARAM lParam override
 
- Public Attributes inherited from ATL::CWindowImplBaseT< TBase, TWinTraits >
WNDPROC m_pfnSuperWindowProc
 
- Public Attributes inherited from ATL::CWindowImplRoot< TBase >
CWndProcThunk m_thunk
 
const _ATL_MSGm_pCurrentMsg
 
DWORD m_dwState
 
- Public Attributes inherited from ATL::CWindow
HWND m_hWnd
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 
- Public Attributes inherited from IDropTarget
const DWORD MK_ALT = 0x20
 
const DWORD DROPEFFECT_NONE = 0
 
const DWORD DROPEFFECT_COPY = 1
 
const DWORD DROPEFFECT_MOVE = 2
 
const DWORD DROPEFFECT_LINK = 4
 
const DWORD DROPEFFECT_SCROLL = 0x80000000
 
const DWORD DD_DEFSCROLLINSET = 11
 
const DWORD DD_DEFSCROLLDELAY = 50
 
const DWORD DD_DEFSCROLLINTERVAL = 50
 
const DWORD DD_DEFDRAGDELAY = 200
 
const DWORD DD_DEFDRAGMINDIST = 2
 
- Public Attributes inherited from IProfferServiceImpl< CShellBrowser >
IProfferService IProfferService_iface
 
LONG ref
 

Private Attributes

HWND fCurrentShellViewWindow
 
CComPtr< IShellFolderfCurrentShellFolder
 
CComPtr< IShellViewfCurrentShellView
 
LPITEMIDLIST fCurrentDirectoryPIDL
 
HWND fStatusBar
 
CToolbarProxy fToolbarProxy
 
barInfo fClientBars [3]
 
CComPtr< ITravelLogfTravelLog
 
HMENU fCurrentMenuBar
 
GUID fCurrentVertBar
 
IOleObjectfHistoryObject
 
IStreamfHistoryStream
 
IBindCtxfHistoryBindContext
 
HDSA menuDsa
 
HACCEL m_hAccel
 
ShellSettings m_settings
 

Static Private Attributes

static const int BIInternetToolbar = 0
 
static const int BIVerticalBaseBar = 1
 
static const int BIHorizontalBaseBar = 2
 

Additional Inherited Members

- Public Types inherited from ATL::CWindowImplRoot< TBase >
enum  { WINSTATE_DESTROYED = 0x00000001 }
 
- Public Types inherited from IShellBrowser
typedef IShellBrowserLPSHELLBROWSER
 
typedef LPARAM LPTBBUTTONSB
 
typedef LPTBBUTTON LPTBBUTTONSB
 
- Public Types inherited from IOleWindow
typedef IOleWindowLPOLEWINDOW
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Types inherited from IDropTarget
typedef IDropTargetLPDROPTARGET
 
- Public Types inherited from IServiceProvider
typedef IServiceProviderLPSERVICEPROVIDER
 
- Public Types inherited from IPersistHistory
typedef IPersistHistoryLPPERSISTHISTORY
 
- Public Types inherited from IPersist
typedef IPersistLPPERSIST
 
- 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 IConnectionPointContainer
typedef IConnectionPointContainerPCONNECTIONPOINTCONTAINER
 
typedef IConnectionPointContainerLPCONNECTIONPOINTCONTAINER
 
- Static Public Attributes inherited from ATL::CWindow
static RECT rcDefault
 

Detailed Description

Definition at line 254 of file shellbrowser.cpp.

Constructor & Destructor Documentation

◆ CShellBrowser()

CShellBrowser::CShellBrowser ( )

Definition at line 716 of file shellbrowser.cpp.

717{
727}
HWND fCurrentShellViewWindow
IStream * fHistoryStream
IOleObject * fHistoryObject
ShellSettings m_settings
LPITEMIDLIST fCurrentDirectoryPIDL
IBindCtx * fHistoryBindContext
#define NULL
Definition: types.h:112
CabinetStateSettings gCabinetState
Definition: settings.cpp:10
void Load()
Definition: settings.cpp:24

◆ ~CShellBrowser()

CShellBrowser::~CShellBrowser ( )

Definition at line 729 of file shellbrowser.cpp.

730{
731 if (menuDsa)
733}
BOOL WINAPI DSA_Destroy(HDSA hdsa)
Definition: dsa.c:103

Member Function Documentation

◆ _CancelPendingNavigationAsync()

HRESULT STDMETHODCALLTYPE CShellBrowser::_CancelPendingNavigationAsync ( void  )
override

Implements IBrowserService2.

Definition at line 2738 of file shellbrowser.cpp.

2739{
2740 return E_NOTIMPL;
2741}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ _CancelPendingView()

HRESULT STDMETHODCALLTYPE CShellBrowser::_CancelPendingView ( )
override

Implements IBrowserService2.

Definition at line 2743 of file shellbrowser.cpp.

2744{
2745 return E_NOTIMPL;
2746}

◆ _CloseAndReleaseToolbars()

HRESULT STDMETHODCALLTYPE CShellBrowser::_CloseAndReleaseToolbars ( BOOL  fClose)
override

Implements IBrowserService2.

Definition at line 2880 of file shellbrowser.cpp.

2881{
2882 return E_NOTIMPL;
2883}

◆ _DisableModeless()

HRESULT STDMETHODCALLTYPE CShellBrowser::_DisableModeless ( )
override

Implements IBrowserService2.

Definition at line 2758 of file shellbrowser.cpp.

2759{
2760 return E_NOTIMPL;
2761}

◆ _ExecChildren()

HRESULT STDMETHODCALLTYPE CShellBrowser::_ExecChildren ( IUnknown punkBar,
BOOL  fBroadcast,
const GUID pguidCmdGroup,
DWORD  nCmdID,
DWORD  nCmdexecopt,
VARIANTARG pvarargIn,
VARIANTARG pvarargOut 
)
override

Implements IBrowserService2.

Definition at line 2778 of file shellbrowser.cpp.

2780{
2781 return E_NOTIMPL;
2782}

◆ _GetBorderDWHelper()

HRESULT STDMETHODCALLTYPE CShellBrowser::_GetBorderDWHelper ( IUnknown punkSrc,
LPRECT  lprectBorder,
BOOL  bUseHmonitor 
)
override

Implements IBrowserService2.

Definition at line 2920 of file shellbrowser.cpp.

2921{
2922 return E_NOTIMPL;
2923}

◆ _GetEffectiveClientArea()

HRESULT STDMETHODCALLTYPE CShellBrowser::_GetEffectiveClientArea ( LPRECT  lprectBorder,
HMONITOR  hmon 
)
override

Implements IBrowserService2.

Definition at line 2840 of file shellbrowser.cpp.

2841{
2842 return E_NOTIMPL;
2843}

◆ _GetViewBorderRect()

HRESULT STDMETHODCALLTYPE CShellBrowser::_GetViewBorderRect ( RECT prc)
override

Implements IBrowserService2.

Definition at line 2820 of file shellbrowser.cpp.

2821{
2822 return E_NOTIMPL;
2823}

◆ _Initialize()

HRESULT STDMETHODCALLTYPE CShellBrowser::_Initialize ( HWND  hwnd,
IUnknown pauto 
)
override

Implements IBrowserService2.

Definition at line 2733 of file shellbrowser.cpp.

2734{
2735 return E_NOTIMPL;
2736}

◆ _LoadToolbars()

HRESULT STDMETHODCALLTYPE CShellBrowser::_LoadToolbars ( IStream pstm)
override

Implements IBrowserService2.

Definition at line 2875 of file shellbrowser.cpp.

2876{
2877 return E_NOTIMPL;
2878}

◆ _MaySaveChanges()

HRESULT STDMETHODCALLTYPE CShellBrowser::_MaySaveChanges ( )
override

Implements IBrowserService2.

Definition at line 2748 of file shellbrowser.cpp.

2749{
2750 return E_NOTIMPL;
2751}

◆ _NavigateToPidl()

HRESULT STDMETHODCALLTYPE CShellBrowser::_NavigateToPidl ( LPCITEMIDLIST  pidl,
DWORD  grfHLNF,
DWORD  dwFlags 
)
override

Definition at line 2763 of file shellbrowser.cpp.

2764{
2765 return E_NOTIMPL;
2766}

◆ _OnFocusChange()

HRESULT STDMETHODCALLTYPE CShellBrowser::_OnFocusChange ( UINT  itb)
override

Implements IBrowserService2.

Definition at line 2795 of file shellbrowser.cpp.

2796{
2797 return E_NOTIMPL;
2798}

◆ _PauseOrResumeView()

HRESULT STDMETHODCALLTYPE CShellBrowser::_PauseOrResumeView ( BOOL  fPaused)
override

Implements IBrowserService2.

Definition at line 2753 of file shellbrowser.cpp.

2754{
2755 return E_NOTIMPL;
2756}

◆ _put_itbLastFocus()

HRESULT STDMETHODCALLTYPE CShellBrowser::_put_itbLastFocus ( UINT  itbLastFocus)
override

Implements IBrowserService2.

Definition at line 2810 of file shellbrowser.cpp.

2811{
2812 return E_NOTIMPL;
2813}

◆ _ResizeNextBorder()

HRESULT STDMETHODCALLTYPE CShellBrowser::_ResizeNextBorder ( UINT  itb)
override

Implements IBrowserService2.

Definition at line 2830 of file shellbrowser.cpp.

2831{
2832 return E_NOTIMPL;
2833}

◆ _ResizeNextBorderHelper()

HRESULT STDMETHODCALLTYPE CShellBrowser::_ResizeNextBorderHelper ( UINT  itb,
BOOL  bUseHmonitor 
)
override

Implements IBrowserService2.

Definition at line 2891 of file shellbrowser.cpp.

2892{
2893 return E_NOTIMPL;
2894}

◆ _ResizeView()

HRESULT STDMETHODCALLTYPE CShellBrowser::_ResizeView ( )
override

Implements IBrowserService2.

Definition at line 2835 of file shellbrowser.cpp.

2836{
2837 return E_NOTIMPL;
2838}

◆ _SaveToolbars()

HRESULT STDMETHODCALLTYPE CShellBrowser::_SaveToolbars ( IStream pstm)
override

Implements IBrowserService2.

Definition at line 2870 of file shellbrowser.cpp.

2871{
2872 return E_NOTIMPL;
2873}

◆ _SendChildren()

HRESULT STDMETHODCALLTYPE CShellBrowser::_SendChildren ( HWND  hwndBar,
BOOL  fBroadcast,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
override

Implements IBrowserService2.

Definition at line 2784 of file shellbrowser.cpp.

2786{
2787 return E_NOTIMPL;
2788}

◆ _SetFocus()

HRESULT STDMETHODCALLTYPE CShellBrowser::_SetFocus ( LPTOOLBARITEM  ptbi,
HWND  hwnd,
LPMSG  lpMsg 
)
override

Implements IBrowserService2.

Definition at line 2901 of file shellbrowser.cpp.

2902{
2903 return E_NOTIMPL;
2904}

◆ _SwitchActivationNow()

HRESULT STDMETHODCALLTYPE CShellBrowser::_SwitchActivationNow ( )
override

Implements IBrowserService2.

Definition at line 2773 of file shellbrowser.cpp.

2774{
2775 return E_NOTIMPL;
2776}

◆ _TryShell2Rename()

HRESULT STDMETHODCALLTYPE CShellBrowser::_TryShell2Rename ( IShellView psv,
LPCITEMIDLIST  pidlNew 
)
override

Definition at line 2768 of file shellbrowser.cpp.

2769{
2770 return E_NOTIMPL;
2771}

◆ _UIActivateView()

HRESULT STDMETHODCALLTYPE CShellBrowser::_UIActivateView ( UINT  uState)
override

Implements IBrowserService2.

Definition at line 2815 of file shellbrowser.cpp.

2816{
2817 return E_NOTIMPL;
2818}

◆ _UpdateViewRectSize()

HRESULT STDMETHODCALLTYPE CShellBrowser::_UpdateViewRectSize ( )
override

Implements IBrowserService2.

Definition at line 2825 of file shellbrowser.cpp.

2826{
2827 return E_NOTIMPL;
2828}

◆ ActivatePendingView()

HRESULT STDMETHODCALLTYPE CShellBrowser::ActivatePendingView ( )
override

Implements IBrowserService2.

Definition at line 2662 of file shellbrowser.cpp.

2663{
2664 return E_NOTIMPL;
2665}

◆ AllowViewResize()

HRESULT STDMETHODCALLTYPE CShellBrowser::AllowViewResize ( BOOL  f)
override

Implements IBrowserService2.

Definition at line 2708 of file shellbrowser.cpp.

2709{
2710 return E_NOTIMPL;
2711}

◆ BrowseObject()

HRESULT STDMETHODCALLTYPE CShellBrowser::BrowseObject ( LPCITEMIDLIST  pidl,
UINT  wFlags 
)
override

Definition at line 2243 of file shellbrowser.cpp.

2244{
2245 if ((wFlags & SBSP_EXPLOREMODE) != NULL)
2246 ShowBand(CLSID_ExplorerBand, true);
2247
2249 if (fTravelLog)
2251 return BrowseToPIDL(pidl, flags);
2252}
HRESULT BrowseToPIDL(LPCITEMIDLIST pidl, long flags)
CComPtr< ITravelLog > fTravelLog
HRESULT ShowBand(const CLSID &classID, bool vertical)
static const long BTP_UPDATE_NEXT_HISTORY
static const long BTP_UPDATE_CUR_HISTORY
GLbitfield flags
Definition: glext.h:7161
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:531

Referenced by Navigate().

◆ BrowseToPath()

HRESULT CShellBrowser::BrowseToPath ( IShellFolder newShellFolder,
LPCITEMIDLIST  absolutePIDL,
FOLDERSETTINGS folderSettings,
long  flags 
)

Definition at line 927 of file shellbrowser.cpp.

929{
930 CComPtr<IShellFolder> saveCurrentShellFolder;
931 CComPtr<IShellView> saveCurrentShellView;
932 CComPtr<IShellView> newShellView;
933 CComPtr<ITravelLog> travelLog;
934 HWND newShellViewWindow;
935 BOOL windowUpdateIsLocked;
936 RECT shellViewWindowBounds;
937 HWND previousView;
938 HCURSOR saveCursor;
939 wchar_t newTitle[MAX_PATH];
940 SHGDNF nameFlags;
941 HRESULT hResult;
942
943 if (newShellFolder == NULL)
944 return E_INVALIDARG;
945
946 hResult = GetTravelLog(&travelLog);
947 if (FAILED_UNEXPECTEDLY(hResult))
948 return hResult;
949
950 // update history
952 {
953 if (travelLog->CountEntries(static_cast<IDropTarget *>(this)) > 0)
954 hResult = travelLog->UpdateEntry(static_cast<IDropTarget *>(this), FALSE);
955 // what to do with error? Do we want to halt browse because state save failed?
956 }
957
959 {
960 fCurrentShellView->UIActivate(SVUIA_DEACTIVATE);
961 }
962
963 // create view object
964 hResult = newShellFolder->CreateViewObject(m_hWnd, IID_PPV_ARG(IShellView, &newShellView));
965 if (FAILED_UNEXPECTEDLY(hResult))
966 return hResult;
967 previousView = fCurrentShellViewWindow;
968
969 // enter updating section
970 saveCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));
971 windowUpdateIsLocked = LockWindowUpdate(TRUE);
972 if (fCurrentShellView != NULL)
974
975 // set site
976 hResult = IUnknown_SetSite(newShellView, static_cast<IDropTarget *>(this));
977
978 // update folder and view
979 saveCurrentShellFolder = fCurrentShellFolder;
980 saveCurrentShellView = fCurrentShellView;
981 fCurrentShellFolder = newShellFolder;
982 fCurrentShellView = newShellView;
983
984 // get boundary
985 if (previousView != NULL)
986 ::GetWindowRect(previousView, &shellViewWindowBounds);
987 else
988 ZeroMemory(&shellViewWindowBounds, sizeof(shellViewWindowBounds));
989 ::MapWindowPoints(0, m_hWnd, reinterpret_cast<POINT *>(&shellViewWindowBounds), 2);
990
991 // update current pidl
993 fCurrentDirectoryPIDL = ILClone(absolutePIDL);
994
995 // create view window
996 hResult = newShellView->CreateViewWindow(saveCurrentShellView, folderSettings,
997 this, &shellViewWindowBounds, &newShellViewWindow);
998 if (FAILED_UNEXPECTEDLY(hResult) || newShellViewWindow == NULL)
999 {
1000 fCurrentShellView = saveCurrentShellView;
1001 fCurrentShellFolder = saveCurrentShellFolder;
1003 if (windowUpdateIsLocked)
1005 SetCursor(saveCursor);
1006 return hResult;
1007 }
1008
1009 // update view window
1010 if (saveCurrentShellView != NULL)
1011 saveCurrentShellView->DestroyViewWindow();
1012 fCurrentShellViewWindow = newShellViewWindow;
1013
1014 if (previousView == NULL)
1015 {
1017 }
1018
1019 // no use
1020 saveCurrentShellView.Release();
1021 saveCurrentShellFolder.Release();
1022
1023 hResult = newShellView->UIActivate(SVUIA_ACTIVATE_FOCUS);
1024
1025 // leave updating section
1026 if (windowUpdateIsLocked)
1028 SetCursor(saveCursor);
1029
1030 // update history
1032 {
1033 hResult = travelLog->AddEntry(static_cast<IDropTarget *>(this), FALSE);
1034 hResult = travelLog->UpdateEntry(static_cast<IDropTarget *>(this), FALSE);
1035 }
1036
1037 // completed
1038 nameFlags = SHGDN_FORADDRESSBAR | SHGDN_FORPARSING;
1039 hResult = IEGetNameAndFlags(fCurrentDirectoryPIDL, nameFlags, newTitle,
1040 sizeof(newTitle) / sizeof(wchar_t), NULL);
1041 if (SUCCEEDED(hResult))
1042 {
1043 FireNavigateComplete(newTitle);
1044 }
1045 else
1046 {
1047 FireNavigateComplete(L"ERROR");
1048 }
1049
1051
1052 LPCITEMIDLIST pidlChild;
1053 INT index, indexOpen;
1054 HIMAGELIST himlSmall, himlLarge;
1055
1057 hResult = SHBindToParent(absolutePIDL, IID_PPV_ARG(IShellFolder, &sf), &pidlChild);
1058 if (SUCCEEDED(hResult))
1059 {
1060 index = SHMapPIDLToSystemImageListIndex(sf, pidlChild, &indexOpen);
1061
1062 Shell_GetImageLists(&himlLarge, &himlSmall);
1063
1064 HICON icSmall = ImageList_GetIcon(himlSmall, indexOpen, 0);
1065 HICON icLarge = ImageList_GetIcon(himlLarge, indexOpen, 0);
1066
1067 /* Hack to make it possible to release the old icons */
1068 /* Something seems to go wrong with WM_SETICON */
1069 HICON oldSmall = (HICON)SendMessage(WM_GETICON, ICON_SMALL, 0);
1070 HICON oldLarge = (HICON)SendMessage(WM_GETICON, ICON_BIG, 0);
1071
1072 SendMessage(WM_SETICON, ICON_SMALL, reinterpret_cast<LPARAM>(icSmall));
1073 SendMessage(WM_SETICON, ICON_BIG, reinterpret_cast<LPARAM>(icLarge));
1074
1075 DestroyIcon(oldSmall);
1076 DestroyIcon(oldLarge);
1077 }
1078
1080 hResult = UpdateForwardBackState();
1081 hResult = UpdateUpState();
1082 return S_OK;
1083}
#define index(s, c)
Definition: various.h:29
void Release()
Definition: atlcomcli.h:170
HWND m_hWnd
Definition: atlwin.h:273
HRESULT UpdateUpState()
CComPtr< IShellFolder > fCurrentShellFolder
HRESULT FireNavigateComplete(const wchar_t *newDirectory)
CComPtr< IShellView > fCurrentShellView
void UpdateWindowTitle()
HRESULT UpdateForwardBackState()
STDMETHOD() GetTravelLog(ITravelLog **pptl) override
HRESULT FireCommandStateChangeAll()
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HRESULT IEGetNameAndFlags(LPITEMIDLIST pidl, SHGDNF uFlags, LPWSTR pszBuf, UINT cchBuf, SFGAOF *rgfInOut)
HICON WINAPI ImageList_GetIcon(HIMAGELIST himl, INT i, UINT fStyle)
Definition: imagelist.c:1963
#define MAX_PATH
Definition: compat.h:34
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:121
HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site)
Definition: ordinal.c:1407
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint index
Definition: glext.h:6031
BOOL WINAPI Shell_GetImageLists(HIMAGELIST *lpBigList, HIMAGELIST *lpSmallList)
Definition: iconcache.cpp:683
int WINAPI SHMapPIDLToSystemImageListIndex(IShellFolder *sh, LPCITEMIDLIST pidl, int *pIndex)
Definition: iconcache.cpp:766
HRESULT CreateViewObject([in] HWND hwndOwner, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut)
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
static HICON
Definition: imagelist.c:84
#define L(x)
Definition: ntvdm.h:50
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:228
void WINAPI ILFree(LPITEMIDLIST pidl)
Definition: pidl.c:929
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
Definition: pidl.c:1352
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
#define ICON_BIG
Definition: tnclass.cpp:51
#define ICON_SMALL
Definition: tnclass.cpp:48
int32_t INT
Definition: typedefs.h:58
#define ZeroMemory
Definition: winbase.h:1712
LONG_PTR LPARAM
Definition: windef.h:208
HICON HCURSOR
Definition: windef.h:299
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
BOOL WINAPI LockWindowUpdate(_In_opt_ HWND)
#define SendMessage
Definition: winuser.h:5843
#define LoadCursor
Definition: winuser.h:5812
#define IDC_WAIT
Definition: winuser.h:689
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2053
#define WM_SETREDRAW
Definition: winuser.h:1616
#define IID_PPV_ARG(Itype, ppType)

Referenced by BrowseToPIDL().

◆ BrowseToPIDL()

HRESULT CShellBrowser::BrowseToPIDL ( LPCITEMIDLIST  pidl,
long  flags 
)

Definition at line 805 of file shellbrowser.cpp.

806{
807 CComPtr<IShellFolder> newFolder;
808 FOLDERSETTINGS newFolderSettings;
809 HRESULT hResult;
810 CLSID clsid;
811 BOOL HasIconViewType;
812
813 // called by shell view to browse to new folder
814 // also called by explorer band to navigate to new folder
815 hResult = SHBindToFolder(pidl, &newFolder);
816 if (FAILED_UNEXPECTEDLY(hResult))
817 return hResult;
818 // HACK & FIXME: Get view mode from shellbag when fully implemented.
819 IUnknown_GetClassID(newFolder, &clsid);
820 HasIconViewType = clsid == CLSID_MyComputer || clsid == CLSID_ControlPanel ||
821 clsid == CLSID_ShellDesktop;
822
823 if (HasIconViewType)
824 newFolderSettings.ViewMode = FVM_ICON;
825 else
826 newFolderSettings.ViewMode = FVM_DETAILS;
827 newFolderSettings.fFlags = 0;
828 hResult = BrowseToPath(newFolder, pidl, &newFolderSettings, flags);
829 if (FAILED_UNEXPECTEDLY(hResult))
830 return hResult;
831 return S_OK;
832}
HRESULT BrowseToPath(IShellFolder *newShellFolder, LPCITEMIDLIST absolutePIDL, FOLDERSETTINGS *folderSettings, long flags)
HRESULT WINAPI SHBindToFolder(LPCITEMIDLIST path, IShellFolder **newFolder)
HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *clsid)
Definition: ordinal.c:1453
REFCLSID clsid
Definition: msctf.c:82
@ FVM_ICON
Definition: shobjidl.idl:668
@ FVM_DETAILS
Definition: shobjidl.idl:672

Referenced by BrowseObject(), LoadHistory(), Navigate2(), and NavigateToParent().

◆ BuildExplorerBandCategory()

HRESULT CShellBrowser::BuildExplorerBandCategory ( HMENU  hBandsMenu,
CATID  category,
DWORD  dwPos,
UINT nbFound 
)

Definition at line 1768 of file shellbrowser.cpp.

1769{
1770 HRESULT hr;
1771 CComPtr<IEnumGUID> pEnumGUID;
1772 WCHAR wszBandName[MAX_PATH];
1773 WCHAR wszBandGUID[MAX_PATH];
1774 WCHAR wRegKey[MAX_PATH];
1775 UINT cBands;
1776 DWORD dwRead;
1777 DWORD dwDataSize;
1778 GUID iter;
1779 MenuBandInfo mbi;
1780
1781 mbi.fVertical = IsEqualGUID(category, CATID_InfoBand);
1782 cBands = 0;
1783 hr = SHEnumClassesOfCategories(1, &category, 0, NULL, &pEnumGUID);
1785 {
1786 return hr;
1787 }
1788 do
1789 {
1790 pEnumGUID->Next(1, &iter, &dwRead);
1791 if (dwRead)
1792 {
1793 // Get the band name
1794 if (IsBuiltinBand(iter))
1795 continue;
1796 if (!StringFromGUID2(iter, wszBandGUID, MAX_PATH))
1797 continue;
1798 StringCchPrintfW(wRegKey, MAX_PATH, L"CLSID\\%s", wszBandGUID);
1799 dwDataSize = MAX_PATH;
1800 SHGetValue(HKEY_CLASSES_ROOT, wRegKey, NULL, NULL, wszBandName, &dwDataSize);
1801
1802 mbi.barGuid = iter;
1803 InsertMenu(hBandsMenu, dwPos + cBands, MF_BYPOSITION, IDM_EXPLORERBAND_BEGINCUSTOM + DSA_GetItemCount(menuDsa), wszBandName);
1804 DSA_AppendItem(menuDsa, &mbi);
1805 cBands++;
1806 }
1807 }
1808 while (dwRead > 0);
1809 if (nbFound)
1810 *nbFound = cBands;
1811 return S_OK;
1812}
HRESULT WINAPI SHEnumClassesOfCategories(ULONG cImplemented, CATID *pImplemented, ULONG cRequired, CATID *pRequired, IEnumGUID **out)
BOOL IsBuiltinBand(CLSID &bandID)
#define IDM_EXPLORERBAND_BEGINCUSTOM
Definition: resource.h:78
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
Definition: compobj.c:2434
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned int UINT
Definition: ndis.h:50
#define DSA_AppendItem(hdsa, pitem)
Definition: commctrl.h:4827
#define DSA_GetItemCount(hdsa)
Definition: commctrl.h:4826
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
HRESULT hr
Definition: shlfolder.c:183
#define SHGetValue
Definition: shlwapi.h:70
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
Definition: strsafe.h:530
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10
#define MF_BYPOSITION
Definition: winuser.h:203
#define InsertMenu
Definition: winuser.h:5803
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by BuildExplorerBandMenu().

◆ BuildExplorerBandMenu()

HRESULT CShellBrowser::BuildExplorerBandMenu ( )

Definition at line 1744 of file shellbrowser.cpp.

1745{
1746 HMENU hBandsMenu;
1747 UINT nbFound;
1748
1750 if (!hBandsMenu)
1751 {
1752 OutputDebugString(L"No menu !\n");
1753 return E_FAIL;
1754 }
1756 BuildExplorerBandCategory(hBandsMenu, CATID_InfoBand, 4, NULL);
1757 BuildExplorerBandCategory(hBandsMenu, CATID_CommBand, 20, &nbFound);
1758 if (!nbFound)
1759 {
1760 // Remove separator
1762 }
1763 // Remove media menu since XP does it (according to API Monitor)
1765 return S_OK;
1766}
HRESULT BuildExplorerBandCategory(HMENU hBandsMenu, CATID category, DWORD dwPos, UINT *nbFound)
#define E_FAIL
Definition: ddrawi.h:102
#define IDM_EXPLORERBAR_MEDIA
Definition: resource.h:41
#define IDM_VIEW_EXPLORERBAR
Definition: resource.h:38
#define IDM_EXPLORERBAR_SEPARATOR
Definition: resource.h:44
HMENU WINAPI SHGetMenuFromID(HMENU hMenu, UINT uID)
Definition: ordinal.c:1993
BOOL WINAPI DSA_DeleteAllItems(HDSA hdsa)
Definition: dsa.c:367
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
#define OutputDebugString
Definition: winbase.h:3825
#define MF_BYCOMMAND
Definition: winuser.h:202
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)

Referenced by SetMenuSB().

◆ CacheOLEServer()

HRESULT STDMETHODCALLTYPE CShellBrowser::CacheOLEServer ( IOleObject pole)
override

Implements IBrowserService.

Definition at line 2580 of file shellbrowser.cpp.

2581{
2582 return E_NOTIMPL;
2583}

◆ CanNavigateNow()

HRESULT STDMETHODCALLTYPE CShellBrowser::CanNavigateNow ( void  )
override

Implements IBrowserService.

Definition at line 2525 of file shellbrowser.cpp.

2526{
2527 return E_NOTIMPL;
2528}

◆ ClientToWindow()

HRESULT STDMETHODCALLTYPE CShellBrowser::ClientToWindow ( int pcx,
int pcy 
)
override

Definition at line 3093 of file shellbrowser.cpp.

3094{
3095 return E_NOTIMPL;
3096}

◆ ContextSensitiveHelp()

HRESULT STDMETHODCALLTYPE CShellBrowser::ContextSensitiveHelp ( BOOL  fEnterMode)
override

Implements IOleWindow.

Definition at line 2155 of file shellbrowser.cpp.

2156{
2157 return E_NOTIMPL;
2158}

◆ CreateBrowserPropSheetExt()

HRESULT STDMETHODCALLTYPE CShellBrowser::CreateBrowserPropSheetExt ( REFIID  riid,
void **  ppv 
)
override

Implements IBrowserService2.

Definition at line 2673 of file shellbrowser.cpp.

2674{
2675 return E_NOTIMPL;
2676}

◆ CreateViewWindow()

HRESULT STDMETHODCALLTYPE CShellBrowser::CreateViewWindow ( IShellView psvNew,
IShellView psvOld,
LPRECT  prcView,
HWND phwnd 
)
override

Implements IBrowserService2.

Definition at line 2667 of file shellbrowser.cpp.

2669{
2670 return E_NOTIMPL;
2671}

◆ DisplayParseError()

HRESULT STDMETHODCALLTYPE CShellBrowser::DisplayParseError ( HRESULT  hres,
LPCWSTR  pwszPath 
)
override

Implements IBrowserService.

Definition at line 2480 of file shellbrowser.cpp.

2481{
2482 return E_NOTIMPL;
2483}

◆ DoFolderOptions()

HRESULT CShellBrowser::DoFolderOptions ( )

Definition at line 1322 of file shellbrowser.cpp.

1323{
1324 CComPtr<IShellPropSheetExt> folderOptionsSheet;
1325 PROPSHEETHEADER m_PropSheet;
1327// CComPtr<IGlobalFolderSettings> globalSettings;
1328// SHELLSTATE2 shellState;
1329 HRESULT hResult;
1330
1331 memset(m_psp, 0, sizeof(m_psp));
1332 memset(&m_PropSheet, 0, sizeof(m_PropSheet));
1333
1334 // create sheet object
1335 hResult = CoCreateInstance(CLSID_ShellFldSetExt, NULL, CLSCTX_INPROC_SERVER,
1336 IID_PPV_ARG(IShellPropSheetExt, &folderOptionsSheet));
1337 if (FAILED_UNEXPECTEDLY(hResult))
1338 return E_FAIL;
1339
1340 // must set site in order for Apply to all Folders on Advanced page to be enabled
1341 hResult = IUnknown_SetSite(folderOptionsSheet, static_cast<IDispatch *>(this));
1342 m_PropSheet.phpage = m_psp;
1343
1344#if 0
1345 hResult = CoCreateInstance(CLSID_GlobalFolderSettings, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IGlobalFolderSettings, &globalSettings));
1346 if (FAILED_UNEXPECTEDLY(hResult))
1347 return E_FAIL;
1348 hResult = globalSettings->Get(&shellState, sizeof(shellState));
1349 if (FAILED_UNEXPECTEDLY(hResult))
1350 return E_FAIL;
1351#endif
1352
1353 // add pages
1354 hResult = folderOptionsSheet->AddPages(AddFolderOptionsPage, reinterpret_cast<LPARAM>(&m_PropSheet));
1355 if (FAILED_UNEXPECTEDLY(hResult))
1356 return E_FAIL;
1357
1358// CORE-11140 : Disabled this bit, because it prevents the folder options from showing.
1359// It returns 'E_NOTIMPL'
1360#if 0
1361 if (fCurrentShellView != NULL)
1362 {
1363 hResult = fCurrentShellView->AddPropertySheetPages(
1364 0, AddFolderOptionsPage, reinterpret_cast<LPARAM>(&m_PropSheet));
1365 if (FAILED_UNEXPECTEDLY(hResult))
1366 return E_FAIL;
1367 }
1368#endif
1369
1370 // show sheet
1371 CStringW strFolderOptions(MAKEINTRESOURCEW(IDS_FOLDER_OPTIONS));
1372 m_PropSheet.dwSize = sizeof(PROPSHEETHEADER);
1373 m_PropSheet.dwFlags = 0;
1374 m_PropSheet.hwndParent = m_hWnd;
1375 m_PropSheet.hInstance = _AtlBaseModule.GetResourceInstance();
1376 m_PropSheet.pszCaption = strFolderOptions;
1377 m_PropSheet.nStartPage = 0;
1378 PropertySheet(&m_PropSheet);
1379 return S_OK;
1380}
#define IDS_FOLDER_OPTIONS
Definition: resource.h:133
BOOL CALLBACK AddFolderOptionsPage(HPROPSHEETPAGE thePage, LPARAM lParam)
static const unsigned int folderOptionsPageCountMax
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3325
struct _PSP * HPROPSHEETPAGE
Definition: mstask.idl:90
#define PROPSHEETHEADER
Definition: prsht.h:392
#define PropertySheet
Definition: prsht.h:400
#define memset(x, y, z)
Definition: compat.h:39
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582

Referenced by Exec(), and OnFolderOptions().

◆ DragEnter()

HRESULT STDMETHODCALLTYPE CShellBrowser::DragEnter ( IDataObject pDataObj,
DWORD  grfKeyState,
POINTL  pt,
DWORD pdwEffect 
)
override

Implements IDropTarget.

Definition at line 2326 of file shellbrowser.cpp.

2328{
2329 return E_NOTIMPL;
2330}

◆ DragLeave()

HRESULT STDMETHODCALLTYPE CShellBrowser::DragLeave ( void  )
override

Implements IDropTarget.

Definition at line 2337 of file shellbrowser.cpp.

2338{
2339 return E_NOTIMPL;
2340}

◆ DragOver()

HRESULT STDMETHODCALLTYPE CShellBrowser::DragOver ( DWORD  grfKeyState,
POINTL  pt,
DWORD pdwEffect 
)
override

Implements IDropTarget.

Definition at line 2332 of file shellbrowser.cpp.

2333{
2334 return E_NOTIMPL;
2335}

◆ Drop()

HRESULT STDMETHODCALLTYPE CShellBrowser::Drop ( IDataObject pDataObj,
DWORD  grfKeyState,
POINTL  pt,
DWORD pdwEffect 
)
override

Implements IDropTarget.

Definition at line 2342 of file shellbrowser.cpp.

2344{
2345 return E_NOTIMPL;
2346}

◆ EnableModelessSB()

HRESULT STDMETHODCALLTYPE CShellBrowser::EnableModelessSB ( BOOL  fEnable)
override

Implements IShellBrowser.

Definition at line 2231 of file shellbrowser.cpp.

2232{
2233 return E_NOTIMPL;
2234}

◆ Exec()

HRESULT STDMETHODCALLTYPE CShellBrowser::Exec ( const GUID pguidCmdGroup,
DWORD  nCmdID,
DWORD  nCmdexecopt,
VARIANT pvaIn,
VARIANT pvaOut 
)
override

Implements IOleCommandTarget.

Definition at line 2005 of file shellbrowser.cpp.

2007{
2008 HRESULT hResult;
2009
2010 if (!pguidCmdGroup)
2011 {
2012 TRACE("Unhandled null CGID %d %d %p %p\n", nCmdID, nCmdexecopt, pvaIn, pvaOut);
2013 return E_NOTIMPL;
2014 }
2015 if (IsEqualIID(*pguidCmdGroup, CGID_Explorer))
2016 {
2017 switch (nCmdID)
2018 {
2019 case 0x1c: //Toggle Search
2020 case 0x1d: //Toggle History
2021 case 0x1e: //Toggle Favorites
2022 case 0x23: //Toggle Folders
2023 const GUID* pclsid;
2024 if (nCmdID == 0x1c) pclsid = &CLSID_FileSearchBand;
2025 else if (nCmdID == 0x1d) pclsid = &CLSID_SH_HistBand;
2026 else if (nCmdID == 0x1e) pclsid = &CLSID_SH_FavBand;
2027 else pclsid = &CLSID_ExplorerBand;
2028
2029 if (IsEqualCLSID(*pclsid, fCurrentVertBar))
2030 {
2031 hResult = IUnknown_ShowDW(fClientBars[BIVerticalBaseBar].clientBar.p, FALSE);
2034 }
2035 else
2036 {
2037 hResult = ShowBand(*pclsid, true);
2038 }
2039 return S_OK;
2040 case 0x22:
2041 //Sent when a band closes
2042 if (V_VT(pvaIn) != VT_UNKNOWN)
2043 return E_INVALIDARG;
2044
2045 if (IUnknownIsEqual(V_UNKNOWN(pvaIn), fClientBars[BIVerticalBaseBar].clientBar.p))
2046 {
2049 }
2050 return S_OK;
2051 case 0x27:
2052 if (nCmdexecopt == 1)
2053 {
2054 // pvaIn is a VT_UNKNOWN with a band that is being hidden
2055 }
2056 else
2057 {
2058 // update zones part of the status bar
2059 }
2060 return S_OK;
2061 case 0x35: // don't do this, and the internet toolbar doesn't create a menu band
2062 V_VT(pvaOut) = VT_INT_PTR;
2063 V_INTREF(pvaOut) = reinterpret_cast<INT *>(
2064 LoadMenu(_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDM_CABINET_MAINMENU)));
2065 return S_OK;
2066 case 0x38:
2067 // indicate if this cabinet was opened as a browser
2068 return S_FALSE;
2069 default:
2070 return E_NOTIMPL;
2071 }
2072 }
2073 else if (IsEqualIID(*pguidCmdGroup, CGID_InternetButtons))
2074 {
2075 switch (nCmdID)
2076 {
2077 case 0x23:
2078 // placeholder
2079 return S_OK;
2080 }
2081 }
2082 else if (IsEqualIID(*pguidCmdGroup, CGID_Theater))
2083 {
2084 switch (nCmdID)
2085 {
2086 case 6:
2087 // what is theater mode and why do we receive this?
2088 return E_NOTIMPL;
2089 }
2090 }
2091 else if (IsEqualIID(*pguidCmdGroup, CGID_MenuBand))
2092 {
2093 switch (nCmdID)
2094 {
2095 case 14:
2096 // initialize favorites menu
2097 return S_OK;
2098 }
2099 }
2100 else if (IsEqualIID(*pguidCmdGroup, CGID_ShellDocView))
2101 {
2102 switch (nCmdID)
2103 {
2104 case 0x12:
2105 // refresh on toolbar clicked
2106 return S_OK;
2107 case 0x26:
2108 // called for unknown bands ?
2109 return S_OK;
2110 case 0x4d:
2111 // tell the view if it should hide the task pane or not
2112 return (fClientBars[BIVerticalBaseBar].clientBar.p == NULL) ? S_FALSE : S_OK;
2113 }
2114 }
2115 else if (IsEqualIID(*pguidCmdGroup, CGID_ShellBrowser))
2116 {
2117 switch (nCmdID)
2118 {
2119 case 40994:
2120 return NavigateToParent();
2121 }
2122 }
2123 else if (IsEqualIID(*pguidCmdGroup, CGID_IExplorerToolbar))
2124 {
2125 switch (nCmdID)
2126 {
2127 case 0x7063:
2128 return DoFolderOptions();
2129 }
2130 }
2131 else if (IsEqualIID(*pguidCmdGroup, CGID_DefView))
2132 {
2133 switch (nCmdID)
2134 {
2135 case 1:
2136 // Reset All Folders option in Folder Options
2137 break;
2138 }
2139 }
2140 else
2141 {
2142 return E_NOTIMPL;
2143 }
2144 return E_NOTIMPL;
2145}
static const int BIVerticalBaseBar
HRESULT NavigateToParent()
HRESULT DoFolderOptions()
barInfo fClientBars[3]
#define IDM_CABINET_MAINMENU
Definition: resource.h:88
bool IUnknownIsEqual(IUnknown *int1, IUnknown *int2)
HRESULT IUnknown_ShowDW(IUnknown *punk, BOOL fShow)
@ VT_UNKNOWN
Definition: compat.h:2308
@ VT_INT_PTR
Definition: compat.h:2327
#define V_UNKNOWN(A)
Definition: oleauto.h:281
#define V_VT(A)
Definition: oleauto.h:211
#define V_INTREF(A)
Definition: oleauto.h:252
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96
#define CGID_InternetButtons
Definition: shlguid.h:247
#define CGID_IExplorerToolbar
#define CGID_MenuBand
#define TRACE(s)
Definition: solgame.cpp:4
#define S_FALSE
Definition: winerror.h:2357
#define LoadMenu
Definition: winuser.h:5817
#define MAKEINTRESOURCE
Definition: winuser.h:591

◆ ExecWB()

HRESULT STDMETHODCALLTYPE CShellBrowser::ExecWB ( OLECMDID  cmdID,
OLECMDEXECOPT  cmdexecopt,
VARIANT pvaIn,
VARIANT pvaOut 
)
override

Definition at line 3218 of file shellbrowser.cpp.

3220{
3221 return E_NOTIMPL;
3222}

◆ FindWindowByIndex()

HRESULT STDMETHODCALLTYPE CShellBrowser::FindWindowByIndex ( DWORD  dwID,
IUnknown **  ppunk 
)
override

Implements ITravelLogClient.

Definition at line 3313 of file shellbrowser.cpp.

3314{
3315 return E_NOTIMPL;
3316}

◆ FireCommandStateChange()

HRESULT CShellBrowser::FireCommandStateChange ( bool  newState,
int  commandID 
)

Definition at line 1571 of file shellbrowser.cpp.

1572{
1573 VARIANT varArg[2];
1574
1575 V_VT(&varArg[0]) = VT_BOOL;
1576 V_BOOL(&varArg[0]) = newState ? VARIANT_TRUE : VARIANT_FALSE;
1577 V_VT(&varArg[1]) = VT_I4;
1578 V_I4(&varArg[1]) = commandID;
1579
1580 return FireEvent(DISPID_COMMANDSTATECHANGE, 2, varArg);
1581}
HRESULT FireEvent(DISPID dispIdMember, int argCount, VARIANT *arguments)
@ VT_I4
Definition: compat.h:2298
@ VT_BOOL
Definition: compat.h:2306
#define V_BOOL(A)
Definition: oleauto.h:224
#define V_I4(A)
Definition: oleauto.h:247
#define DISPID_COMMANDSTATECHANGE
Definition: webchild.h:40

Referenced by FireCommandStateChangeAll(), UpdateForwardBackState(), and UpdateUpState().

◆ FireCommandStateChangeAll()

HRESULT CShellBrowser::FireCommandStateChangeAll ( )

Definition at line 1583 of file shellbrowser.cpp.

1584{
1585 return FireCommandStateChange(false, -1);
1586}
HRESULT FireCommandStateChange(bool newState, int commandID)

Referenced by BrowseToPath(), Exec(), and ShowBand().

◆ FireEvent()

HRESULT CShellBrowser::FireEvent ( DISPID  dispIdMember,
int  argCount,
VARIANT arguments 
)

Definition at line 1514 of file shellbrowser.cpp.

1515{
1519 HRESULT hResult;
1520
1521 params.rgvarg = arguments;
1522 params.rgdispidNamedArgs = NULL;
1523 params.cArgs = argCount;
1524 params.cNamedArgs = 0;
1525 IUnknown** pp = vec.begin();
1526 while (pp < vec.end())
1527 {
1528 if (*pp != NULL)
1529 {
1530 CComPtr<IDispatch> theDispatch;
1531
1532 hResult = (*pp)->QueryInterface(IID_PPV_ARG(IDispatch, &theDispatch));
1533 hResult = theDispatch->Invoke(dispIdMember, GUID_NULL, 0, DISPATCH_METHOD, &params, NULL, NULL, NULL);
1534 }
1535 pp++;
1536 }
1537 pp = vec2.begin();
1538 while (pp < vec2.end())
1539 {
1540 if (*pp != NULL)
1541 {
1542 CComPtr<IDispatch> theDispatch;
1543
1544 hResult = (*pp)->QueryInterface(IID_PPV_ARG(IDispatch, &theDispatch));
1545 hResult = theDispatch->Invoke(dispIdMember, GUID_NULL, 0, DISPATCH_METHOD, &params, NULL, NULL, NULL);
1546 }
1547 pp++;
1548 }
1549 return S_OK;
1550}
IUnknown ** end()
Definition: atlcom.h:1128
IUnknown ** begin()
Definition: atlcom.h:1123
FT_Vector * vec
Definition: ftbbox.c:448
GLenum const GLfloat * params
Definition: glext.h:5645
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define GUID_NULL
Definition: ks.h:106
struct stdole::DISPPARAMS DISPPARAMS
#define DISPATCH_METHOD
Definition: oleauto.h:1006

Referenced by FireCommandStateChange(), and FireNavigateComplete().

◆ FireNavigateComplete()

HRESULT CShellBrowser::FireNavigateComplete ( const wchar_t newDirectory)

Definition at line 1552 of file shellbrowser.cpp.

1553{
1554 // these two variants intentionally to do use CComVariant because it would double free/release
1555 // or does not need to dispose at all
1556 VARIANT varArg[2];
1557 VARIANT varArgs;
1558 CComBSTR tempString(newDirectory);
1559
1560 V_VT(&varArgs) = VT_BSTR;
1561 V_BSTR(&varArgs) = tempString.m_str;
1562
1563 V_VT(&varArg[0]) = VT_VARIANT | VT_BYREF;
1564 V_VARIANTREF(&varArg[0]) = &varArgs;
1565 V_VT(&varArg[1]) = VT_DISPATCH;
1566 V_DISPATCH(&varArg[1]) = (IDispatch *)this;
1567
1568 return FireEvent(DISPID_NAVIGATECOMPLETE2, 2, varArg);
1569}
@ VT_BSTR
Definition: compat.h:2303
@ VT_BYREF
Definition: compat.h:2342
@ VT_VARIANT
Definition: compat.h:2307
@ VT_DISPATCH
Definition: compat.h:2304
#define V_VARIANTREF(A)
Definition: oleauto.h:283
#define V_BSTR(A)
Definition: oleauto.h:226
#define V_DISPATCH(A)
Definition: oleauto.h:239
#define DISPID_NAVIGATECOMPLETE2
Definition: webchild.h:54

Referenced by BrowseToPath().

◆ get_AddressBar()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_AddressBar ( VARIANT_BOOL Value)
override

Definition at line 3293 of file shellbrowser.cpp.

3294{
3295 return E_NOTIMPL;
3296}

◆ get_Application()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Application ( IDispatch **  ppDisp)
override

Definition at line 2999 of file shellbrowser.cpp.

3000{
3001 return E_NOTIMPL;
3002}

◆ get_Busy()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Busy ( VARIANT_BOOL pBool)
override

Definition at line 3083 of file shellbrowser.cpp.

3084{
3085 return E_NOTIMPL;
3086}

◆ get_Container()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Container ( IDispatch **  ppDisp)
override

Definition at line 3009 of file shellbrowser.cpp.

3010{
3011 return E_NOTIMPL;
3012}

◆ get_Document()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Document ( IDispatch **  ppDisp)
override

Definition at line 3014 of file shellbrowser.cpp.

3015{
3016 return E_NOTIMPL;
3017}

◆ get_FullName()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_FullName ( BSTR FullName)
override

Definition at line 3118 of file shellbrowser.cpp.

3119{
3120 return E_NOTIMPL;
3121}

◆ get_FullScreen()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_FullScreen ( VARIANT_BOOL pbFullScreen)
override

Definition at line 3178 of file shellbrowser.cpp.

3179{
3180 return E_NOTIMPL;
3181}

◆ get_Height()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Height ( long pl)
override

Definition at line 3061 of file shellbrowser.cpp.

3062{
3063 return E_NOTIMPL;
3064}

◆ get_HWND()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_HWND ( SHANDLE_PTR pHWND)
override

Definition at line 3113 of file shellbrowser.cpp.

3114{
3115 return E_NOTIMPL;
3116}

◆ get_Left()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Left ( long pl)
override

Definition at line 3031 of file shellbrowser.cpp.

3032{
3033 return E_NOTIMPL;
3034}

◆ get_LocationName()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_LocationName ( BSTR LocationName)
override

Definition at line 3073 of file shellbrowser.cpp.

3074{
3075 return E_NOTIMPL;
3076}

◆ get_LocationURL()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_LocationURL ( BSTR LocationURL)
override

Definition at line 3078 of file shellbrowser.cpp.

3079{
3080 return E_NOTIMPL;
3081}

◆ get_MenuBar()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_MenuBar ( VARIANT_BOOL Value)
override

Definition at line 3168 of file shellbrowser.cpp.

3169{
3170 return E_NOTIMPL;
3171}

◆ get_Name()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Name ( BSTR Name)
override

Definition at line 3108 of file shellbrowser.cpp.

3109{
3110 return E_NOTIMPL;
3111}

◆ get_Offline()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Offline ( VARIANT_BOOL pbOffline)
override

Definition at line 3243 of file shellbrowser.cpp.

3244{
3245 return E_NOTIMPL;
3246}

◆ get_Parent()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Parent ( IDispatch **  ppDisp)
override

Definition at line 3004 of file shellbrowser.cpp.

3005{
3006 return E_NOTIMPL;
3007}

◆ get_Path()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Path ( BSTR Path)
override

Definition at line 3123 of file shellbrowser.cpp.

3124{
3125 return E_NOTIMPL;
3126}

◆ get_ReadyState()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_ReadyState ( READYSTATE *  plReadyState)
override

Definition at line 3238 of file shellbrowser.cpp.

3239{
3240 return E_NOTIMPL;
3241}

◆ get_RegisterAsBrowser()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_RegisterAsBrowser ( VARIANT_BOOL pbRegister)
override

Definition at line 3263 of file shellbrowser.cpp.

3264{
3265 return E_NOTIMPL;
3266}

◆ get_RegisterAsDropTarget()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_RegisterAsDropTarget ( VARIANT_BOOL pbRegister)
override

Definition at line 3273 of file shellbrowser.cpp.

3274{
3275 return E_NOTIMPL;
3276}

◆ get_Resizable()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Resizable ( VARIANT_BOOL Value)
override

Definition at line 3303 of file shellbrowser.cpp.

3304{
3305 return E_NOTIMPL;
3306}

◆ get_Silent()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Silent ( VARIANT_BOOL pbSilent)
override

Definition at line 3253 of file shellbrowser.cpp.

3254{
3255 return E_NOTIMPL;
3256}

◆ get_StatusBar()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_StatusBar ( VARIANT_BOOL pBool)
override

Definition at line 3138 of file shellbrowser.cpp.

3139{
3140 return E_NOTIMPL;
3141}

◆ get_StatusText()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_StatusText ( BSTR StatusText)
override

Definition at line 3148 of file shellbrowser.cpp.

3149{
3150 return E_NOTIMPL;
3151}

◆ get_TheaterMode()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_TheaterMode ( VARIANT_BOOL pbRegister)
override

Definition at line 3283 of file shellbrowser.cpp.

3284{
3285 return E_NOTIMPL;
3286}

◆ get_ToolBar()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_ToolBar ( int Value)
override

Definition at line 3158 of file shellbrowser.cpp.

3159{
3160 return E_NOTIMPL;
3161}

◆ get_Top()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Top ( long pl)
override

Definition at line 3041 of file shellbrowser.cpp.

3042{
3043 return E_NOTIMPL;
3044}

◆ get_TopLevelContainer()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_TopLevelContainer ( VARIANT_BOOL pBool)
override

Definition at line 3019 of file shellbrowser.cpp.

3020{
3021 return E_NOTIMPL;
3022}

◆ get_Type()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Type ( BSTR Type)
override

Definition at line 3024 of file shellbrowser.cpp.

3025{
3026 return E_NOTIMPL;
3027}

◆ get_Visible()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Visible ( VARIANT_BOOL pBool)
override

Definition at line 3128 of file shellbrowser.cpp.

3129{
3130 return E_NOTIMPL;
3131}

◆ get_Width()

HRESULT STDMETHODCALLTYPE CShellBrowser::get_Width ( long pl)
override

Definition at line 3051 of file shellbrowser.cpp.

3052{
3053 return E_NOTIMPL;
3054}

◆ GetBaseBar()

HRESULT CShellBrowser::GetBaseBar ( bool  vertical,
REFIID  riid,
void **  theBaseBar 
)

Definition at line 1105 of file shellbrowser.cpp.

1106{
1107 CComPtr<IUnknown> newBaseBar;
1108 CComPtr<IDeskBar> deskBar;
1109 CComPtr<IUnknown> newBaseBarSite;
1110 CComPtr<IDeskBarClient> deskBarClient;
1111 IUnknown **cache;
1112 HRESULT hResult;
1113
1114 if (vertical)
1116 else
1118 if (*cache == NULL)
1119 {
1120 hResult = CBaseBar_CreateInstance(IID_PPV_ARG(IUnknown, &newBaseBar), vertical);
1121 if (FAILED_UNEXPECTEDLY(hResult))
1122 return hResult;
1123 hResult = CBaseBarSite_CreateInstance(IID_PPV_ARG(IUnknown, &newBaseBarSite), vertical);
1124 if (FAILED_UNEXPECTEDLY(hResult))
1125 return hResult;
1126
1127 // we have to store our basebar into cache now
1128 *cache = newBaseBar;
1129 (*cache)->AddRef();
1130
1131 // tell the new base bar about the shell browser
1132 hResult = IUnknown_SetSite(newBaseBar, static_cast<IDropTarget *>(this));
1133 if (FAILED_UNEXPECTEDLY(hResult))
1134 return hResult;
1135
1136 // tell the new base bar about the new base bar site
1137 hResult = newBaseBar->QueryInterface(IID_PPV_ARG(IDeskBar, &deskBar));
1138 if (FAILED_UNEXPECTEDLY(hResult))
1139 return hResult;
1140 hResult = deskBar->SetClient(newBaseBarSite);
1141 if (FAILED_UNEXPECTEDLY(hResult))
1142 return hResult;
1143
1144 // tell the new base bar site about the new base bar
1145 hResult = newBaseBarSite->QueryInterface(IID_PPV_ARG(IDeskBarClient, &deskBarClient));
1146 if (FAILED_UNEXPECTEDLY(hResult))
1147 return hResult;
1148 hResult = deskBarClient->SetDeskBarSite(newBaseBar);
1149 if (FAILED_UNEXPECTEDLY(hResult))
1150 return hResult;
1151
1152 }
1153 return (*cache)->QueryInterface(riid, theBaseBar);
1154}
HRESULT CBaseBarSite_CreateInstance(REFIID riid, void **ppv, BOOL bVertical)
HRESULT CBaseBar_CreateInstance(REFIID riid, void **ppv, BOOL vertical)
Definition: CBaseBar.cpp:564
CComPtr< IUnknown > clientBar
static const int BIHorizontalBaseBar
REFIID riid
Definition: atlbase.h:39
Definition: cache.c:49

Referenced by IsBandLoaded(), and ShowBand().

◆ GetBaseBrowserData()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetBaseBrowserData ( LPCBASEBROWSERDATA pbbd)
override

Implements IBrowserService2.

Definition at line 2683 of file shellbrowser.cpp.

2684{
2685 return E_NOTIMPL;
2686}

◆ GetBorderDW()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetBorderDW ( IUnknown punkObj,
LPRECT  prcBorder 
)
override

Definition at line 1883 of file shellbrowser.cpp.

1884{
1885 static const INT excludeItems[] = { 1, 1, 1, IDC_STATUSBAR, 0, 0 };
1886
1887 RECT availableBounds;
1888
1889 GetEffectiveClientRect(m_hWnd, &availableBounds, excludeItems);
1890 for (INT x = 0; x < 3; x++)
1891 {
1892 if (fClientBars[x].clientBar.p != NULL && !IUnknownIsEqual(fClientBars[x].clientBar, punkObj))
1893 {
1894 availableBounds.top += fClientBars[x].borderSpace.top;
1895 availableBounds.left += fClientBars[x].borderSpace.left;
1896 availableBounds.bottom -= fClientBars[x].borderSpace.bottom;
1897 availableBounds.right -= fClientBars[x].borderSpace.right;
1898 }
1899 }
1900 *prcBorder = availableBounds;
1901 return S_OK;
1902}
#define IDC_STATUSBAR
Definition: resource.h:12
VOID WINAPI GetEffectiveClientRect(HWND hwnd, LPRECT lpRect, const INT *lpInfo)
Definition: commctrl.c:629
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306

◆ GetBrowserByIndex()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetBrowserByIndex ( DWORD  dwID,
IUnknown **  ppunk 
)
override

Implements IBrowserService.

Definition at line 2549 of file shellbrowser.cpp.

2550{
2551 return E_NOTIMPL;
2552}

◆ GetClassID()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetClassID ( CLSID pClassID)
override

Implements IPersist.

Definition at line 3337 of file shellbrowser.cpp.

3338{
3339 return E_NOTIMPL;
3340}

◆ GetControlWindow()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetControlWindow ( UINT  id,
HWND lphwnd 
)
override

Implements IShellBrowser.

Definition at line 2259 of file shellbrowser.cpp.

2260{
2261 if (lphwnd == NULL)
2262 return E_POINTER;
2263 *lphwnd = NULL;
2264 switch (id)
2265 {
2266 case FCW_TOOLBAR:
2267 *lphwnd = fToolbarProxy.m_hWnd;
2268 return S_OK;
2269 case FCW_STATUS:
2270 *lphwnd = fStatusBar;
2271 return S_OK;
2272 case FCW_TREE:
2273 // find the directory browser and return it
2274 // this should be used only to determine if a tree is present
2275 return S_OK;
2276 case FCW_PROGRESS:
2277 // is this a progress dialog?
2278 return S_OK;
2279 }
2280 return S_OK;
2281}
CToolbarProxy fToolbarProxy
#define E_POINTER
Definition: winerror.h:2365

◆ GetFlags()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetFlags ( DWORD pdwFlags)
override

Implements IBrowserService.

Definition at line 2520 of file shellbrowser.cpp.

2521{
2522 return E_NOTIMPL;
2523}

◆ GetFolderSetData()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetFolderSetData ( struct tagFolderSetData pfsd)
override

Implements IBrowserService2.

Definition at line 2790 of file shellbrowser.cpp.

2791{
2792 return E_NOTIMPL;
2793}

◆ GetHistoryObject()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetHistoryObject ( IOleObject **  ppole,
IStream **  pstm,
IBindCtx **  ppbc 
)
override

Implements IBrowserService.

Definition at line 2554 of file shellbrowser.cpp.

2555{
2556 if (ppole == NULL || pstm == NULL || ppbc == NULL)
2557 return E_INVALIDARG;
2558 *ppole = fHistoryObject;
2559 if (fHistoryObject != NULL)
2561 *pstm = fHistoryStream;
2562 if (fHistoryStream != NULL)
2564 *ppbc = fHistoryBindContext;
2570 if (*ppole == NULL)
2571 return E_FAIL;
2572 return S_OK;
2573}
ULONG AddRef()

◆ GetIDsOfNames()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetIDsOfNames ( REFIID  riid,
LPOLESTR rgszNames,
UINT  cNames,
LCID  lcid,
DISPID rgDispId 
)
override

Definition at line 2408 of file shellbrowser.cpp.

2410{
2411 return E_NOTIMPL;
2412}

◆ GetMenuBand()

HRESULT CShellBrowser::GetMenuBand ( REFIID  riid,
void **  shellMenu 
)

Definition at line 1085 of file shellbrowser.cpp.

1086{
1087 CComPtr<IBandSite> bandSite;
1088 CComPtr<IDeskBand> deskBand;
1089 HRESULT hResult;
1090
1091 if (!fClientBars[BIInternetToolbar].clientBar)
1092 return E_FAIL;
1093
1095 if (FAILED_UNEXPECTEDLY(hResult))
1096 return hResult;
1097
1098 hResult = bandSite->QueryBand(1, &deskBand, NULL, NULL, 0);
1099 if (FAILED_UNEXPECTEDLY(hResult))
1100 return hResult;
1101
1102 return deskBand->QueryInterface(riid, shellMenu);
1103}
static const int BIInternetToolbar
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1497
#define SID_IBandSite

Referenced by SetMenuSB(), and WindowProc().

◆ GetNavigateState()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetNavigateState ( BNSTATE pbnstate)
override

Implements IBrowserService.

Definition at line 2495 of file shellbrowser.cpp.

2496{
2497 return E_NOTIMPL;
2498}

◆ GetOleObject()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetOleObject ( IOleObject **  ppobjv)
override

Implements IBrowserService.

Definition at line 2435 of file shellbrowser.cpp.

2436{
2437 return E_NOTIMPL;
2438}

◆ GetPalette()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetPalette ( HPALETTE *  hpal)
override

Implements IBrowserService.

Definition at line 2596 of file shellbrowser.cpp.

2597{
2598 return E_NOTIMPL;
2599}

◆ GetParentSite()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetParentSite ( IOleInPlaceSite **  ppipsite)
override

Implements IBrowserService.

Definition at line 2420 of file shellbrowser.cpp.

2421{
2422 return E_NOTIMPL;
2423}

◆ GetPidl()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetPidl ( LPITEMIDLIST ppidl)
override

Definition at line 2530 of file shellbrowser.cpp.

2531{
2532 // called by explorer bar to get current pidl
2533 if (ppidl == NULL)
2534 return E_POINTER;
2536 return S_OK;
2537}

Referenced by GetPropertyBag().

◆ GetPositionCookie()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetPositionCookie ( DWORD pdwPositioncookie)
override

Implements IPersistHistory.

Definition at line 3426 of file shellbrowser.cpp.

3427{
3428 return E_NOTIMPL;
3429}

◆ GetProperty()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetProperty ( BSTR  Property,
VARIANT pvtValue 
)
override

Definition at line 3103 of file shellbrowser.cpp.

3104{
3105 return E_NOTIMPL;
3106}

◆ GetPropertyBag()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetPropertyBag ( long  flags,
REFIID  riid,
void **  ppvObject 
)
override

Definition at line 2375 of file shellbrowser.cpp.

2376{
2377 if (ppvObject == NULL)
2378 return E_POINTER;
2379
2380 *ppvObject = NULL;
2381
2382 LPITEMIDLIST pidl;
2383 HRESULT hr = GetPidl(&pidl);
2385 return E_FAIL;
2386
2387 // FIXME: pidl for Internet etc.
2388
2389 if (_ILIsNetworkPlace(pidl))
2390 flags |= SHGVSPB_ROAM;
2391
2392 hr = SHGetViewStatePropertyBag(pidl, L"Shell", flags, riid, ppvObject);
2393
2394 ILFree(pidl);
2395 return hr;
2396}
STDMETHOD() GetPidl(LPITEMIDLIST *ppidl) override
static BOOL _ILIsNetworkPlace(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetViewStatePropertyBag(LPCITEMIDLIST pidl, LPWSTR bag_name, DWORD flags, REFIID riid, void **ppv)
Definition: ordinal.c:5206
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082

◆ GetSetCodePage()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetSetCodePage ( VARIANT pvarIn,
VARIANT pvarOut 
)
override

Implements IBrowserService.

Definition at line 2585 of file shellbrowser.cpp.

2586{
2587 return E_NOTIMPL;
2588}

◆ GetTitle()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetTitle ( IShellView psv,
LPWSTR  pszName,
DWORD  cchName 
)
override

Implements IBrowserService.

Definition at line 2430 of file shellbrowser.cpp.

2431{
2432 return E_NOTIMPL;
2433}

◆ GetTravelLog()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetTravelLog ( ITravelLog **  pptl)
override

Implements IBrowserService.

Definition at line 2440 of file shellbrowser.cpp.

2441{
2442 HRESULT hResult;
2443
2444 // called by toolbar when displaying tooltips
2445 if (pptl == NULL)
2446 return E_FAIL;
2447
2448 *pptl = NULL;
2449 if (fTravelLog.p == NULL)
2450 {
2452 if (FAILED_UNEXPECTEDLY(hResult))
2453 return hResult;
2454 }
2455 *pptl = fTravelLog.p;
2456 fTravelLog.p->AddRef();
2457 return S_OK;
2458}
HRESULT CTravelLog_CreateInstance(REFIID riid, void **ppv)
Definition: travellog.cpp:626
_In_ POINTL * pptl
Definition: winddi.h:3741

Referenced by BrowseToPath(), GoBack(), GoForward(), UpdateForwardBackState(), and UpdateGotoMenu().

◆ GetTypeInfo()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetTypeInfo ( UINT  iTInfo,
LCID  lcid,
ITypeInfo **  ppTInfo 
)
override

Definition at line 2403 of file shellbrowser.cpp.

2404{
2405 return E_NOTIMPL;
2406}

◆ GetTypeInfoCount()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetTypeInfoCount ( UINT pctinfo)
override

Definition at line 2398 of file shellbrowser.cpp.

2399{
2400 return E_NOTIMPL;
2401}

◆ GetViewRect()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetViewRect ( RECT prc)
override

Implements IBrowserService2.

Definition at line 2616 of file shellbrowser.cpp.

2617{
2618 return E_NOTIMPL;
2619}

◆ GetViewStateStream()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetViewStateStream ( DWORD  grfMode,
IStream **  ppStrm 
)
override

Implements IShellBrowser.

Definition at line 2254 of file shellbrowser.cpp.

2255{
2256 return E_NOTIMPL;
2257}

◆ GetViewWindow()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetViewWindow ( HWND phwndView)
override

Implements IBrowserService2.

Definition at line 2678 of file shellbrowser.cpp.

2679{
2680 return E_NOTIMPL;
2681}

◆ GetWindow()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetWindow ( HWND lphwnd)
override

Implements IOleWindow.

Definition at line 2147 of file shellbrowser.cpp.

2148{
2149 if (lphwnd == NULL)
2150 return E_POINTER;
2151 *lphwnd = m_hWnd;
2152 return S_OK;
2153}

◆ GetWindowData()

HRESULT STDMETHODCALLTYPE CShellBrowser::GetWindowData ( IStream pStream,
LPWINDOWDATA  pWinData 
)
override

Implements ITravelLogClient.

Definition at line 3318 of file shellbrowser.cpp.

3319{
3320 if (pWinData == NULL)
3321 return E_POINTER;
3322
3323 pWinData->dwWindowID = -1;
3324 pWinData->uiCP = 0;
3325 pWinData->pidl = ILClone(fCurrentDirectoryPIDL);
3326 pWinData->lpszUrl = NULL;
3327 pWinData->lpszUrlLocation = NULL;
3328 pWinData->lpszTitle = NULL;
3329 return S_OK;
3330}
DWORD dwWindowID
Definition: tlogstg.idl:24
LPWSTR lpszTitle
Definition: tlogstg.idl:29
LPWSTR lpszUrlLocation
Definition: tlogstg.idl:28
UINT uiCP
Definition: tlogstg.idl:25
PIDLIST_ABSOLUTE pidl
Definition: tlogstg.idl:26
LPWSTR lpszUrl
Definition: tlogstg.idl:27

◆ GetWindowProc()

virtual WNDPROC CShellBrowser::GetWindowProc ( )
inlinevirtual

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

Definition at line 340 of file shellbrowser.cpp.

341 {
342 return WindowProc;
343 }
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

◆ GetWndClassInfo()

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

Definition at line 633 of file shellbrowser.cpp.

634 {
635 static ATL::CWndClassInfo wc =
636 {
638 0, 0, NULL, LoadIcon(_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDI_CABINET)),
640 NULL, NULL, IDC_ARROW, TRUE, 0, _T("")
641 };
642 return wc;
643 }
#define IDI_CABINET
Definition: resource.h:10
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: atlwin.h:1619
static const TCHAR szCabinetWndClass[]
#define _T(x)
Definition: vfdio.h:22
#define COLOR_WINDOW
Definition: winuser.h:918
#define IDC_ARROW
Definition: winuser.h:687
#define CS_DBLCLKS
Definition: winuser.h:651
#define LoadIcon
Definition: winuser.h:5813
WNDCLASSEXA WNDCLASSEX
Definition: winuser.h:5719

◆ GoBack()

HRESULT STDMETHODCALLTYPE CShellBrowser::GoBack ( )
override

Definition at line 2930 of file shellbrowser.cpp.

2931{
2932 CComPtr<ITravelLog> travelLog;
2933 HRESULT hResult = GetTravelLog(&travelLog);
2934 if (FAILED_UNEXPECTEDLY(hResult))
2935 return hResult;
2936 return travelLog->Travel(static_cast<IDropTarget *>(this), TLOG_BACK);
2937}
#define TLOG_BACK
Definition: shlobj.h:2722

Referenced by OnAppCommand(), and OnGoBack().

◆ GoForward()

HRESULT STDMETHODCALLTYPE CShellBrowser::GoForward ( )
override

Definition at line 2939 of file shellbrowser.cpp.

2940{
2941 CComPtr<ITravelLog> travelLog;
2942 HRESULT hResult = GetTravelLog(&travelLog);
2943 if (FAILED_UNEXPECTEDLY(hResult))
2944 return hResult;
2945 return travelLog->Travel(static_cast<IDropTarget *>(this), TLOG_FORE);
2946}
#define TLOG_FORE
Definition: shlobj.h:2723

Referenced by OnAppCommand(), and OnGoForward().

◆ GoHome()

HRESULT STDMETHODCALLTYPE CShellBrowser::GoHome ( )
override

Definition at line 2948 of file shellbrowser.cpp.

2949{
2950 return E_NOTIMPL;
2951}

Referenced by OnGoHome().

◆ GoSearch()

HRESULT STDMETHODCALLTYPE CShellBrowser::GoSearch ( )
override

Definition at line 2953 of file shellbrowser.cpp.

2954{
2955 return E_NOTIMPL;
2956}

◆ IEGetDisplayName()

HRESULT STDMETHODCALLTYPE CShellBrowser::IEGetDisplayName ( LPCITEMIDLIST  pidl,
LPWSTR  pwszName,
UINT  uFlags 
)
override

Definition at line 2470 of file shellbrowser.cpp.

2471{
2472 return E_NOTIMPL;
2473}

◆ IEParseDisplayName()

HRESULT STDMETHODCALLTYPE CShellBrowser::IEParseDisplayName ( UINT  uiCP,
LPCWSTR  pwszPath,
LPITEMIDLIST ppidlOut 
)
override

Definition at line 2475 of file shellbrowser.cpp.

2476{
2477 return E_NOTIMPL;
2478}

◆ Initialize()

HRESULT CShellBrowser::Initialize ( )

Definition at line 735 of file shellbrowser.cpp.

736{
737 CComPtr<IPersistStreamInit> persistStreamInit;
738 HRESULT hResult;
739 CComPtr<IUnknown> clientBar;
740
742
743 menuDsa = DSA_Create(sizeof(MenuBandInfo), 5);
744 if (!menuDsa)
745 return E_OUTOFMEMORY;
746
747 // create window
749 if (m_hWnd == NULL)
750 return E_FAIL;
751
753 if (FAILED_UNEXPECTEDLY(hResult))
754 return hResult;
755
757
758 // create interfaces
759 hResult = clientBar->QueryInterface(IID_PPV_ARG(IPersistStreamInit, &persistStreamInit));
760 if (FAILED_UNEXPECTEDLY(hResult))
761 return hResult;
762
763 hResult = IUnknown_SetSite(clientBar, static_cast<IShellBrowser *>(this));
764 if (FAILED_UNEXPECTEDLY(hResult))
765 return hResult;
766
767 hResult = IUnknown_Exec(clientBar, CGID_PrivCITCommands, 1, 1 /* or 0 */, NULL, NULL);
768 if (FAILED_UNEXPECTEDLY(hResult))
769 return hResult;
770
771 // TODO: create settingsStream from registry entry
772 //if (settingsStream.p)
773 //{
774 // hResult = persistStreamInit->Load(settingsStream);
775 // if (FAILED_UNEXPECTEDLY(hResult))
776 // return hResult;
777 //}
778 //else
779 {
780 hResult = persistStreamInit->InitNew();
781 if (FAILED_UNEXPECTEDLY(hResult))
782 return hResult;
783 }
784
785 hResult = IUnknown_ShowDW(clientBar, TRUE);
786 if (FAILED_UNEXPECTEDLY(hResult))
787 return hResult;
788
789 fToolbarProxy.Initialize(m_hWnd, clientBar);
790
791 // create status bar
794 dwStatusStyle |= WS_VISIBLE;
796 0, 0, 500, 20, m_hWnd, (HMENU)IDC_STATUSBAR,
797 _AtlBaseModule.GetModuleInstance(), 0);
798
800 UpdateWindow();
801
802 return S_OK;
803}
@ Create
Definition: registry.c:563
HRESULT CInternetToolbar_CreateInstance(REFIID riid, void **ppv)
Definition: browseui.cpp:78
BOOL UpdateWindow()
Definition: atlwin.h:1345
void Initialize(HWND parent, IUnknown *explorerToolbar)
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
HRESULT WINAPI IUnknown_Exec(IUnknown *lpUnknown, REFGUID pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
Definition: ordinal.c:1083
HDSA WINAPI DSA_Create(INT nSize, INT nGrow)
Definition: dsa.c:71
#define WS_CHILD
Definition: pedump.c:617
#define WS_VISIBLE
Definition: pedump.c:620
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
#define SBARS_TOOLTIPS
Definition: commctrl.h:1924
#define STATUSCLASSNAMEW
Definition: commctrl.h:1936
#define SBARS_SIZEGRIP
Definition: commctrl.h:1923
BOOL fStatusBarVisible
Definition: settings.h:17
#define SW_SHOWNORMAL
Definition: winuser.h:770
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define HWND_DESKTOP
Definition: winuser.h:1209
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)

◆ InitializeDownloadManager()

HRESULT STDMETHODCALLTYPE CShellBrowser::InitializeDownloadManager ( )
override

Implements IBrowserService2.

Definition at line 2723 of file shellbrowser.cpp.

2724{
2725 return E_NOTIMPL;
2726}

◆ InitializeTransitionSite()

HRESULT STDMETHODCALLTYPE CShellBrowser::InitializeTransitionSite ( )
override

Implements IBrowserService2.

Definition at line 2728 of file shellbrowser.cpp.

2729{
2730 return E_NOTIMPL;
2731}

◆ InitializeTravelLog()

HRESULT STDMETHODCALLTYPE CShellBrowser::InitializeTravelLog ( ITravelLog ptl,
DWORD  dw 
)
override

Implements IBrowserService2.

Definition at line 2693 of file shellbrowser.cpp.

2694{
2695 return E_NOTIMPL;
2696}

◆ InsertMenusSB()

HRESULT STDMETHODCALLTYPE CShellBrowser::InsertMenusSB ( HMENU  hmenuShared,
LPOLEMENUGROUPWIDTHS  lpMenuWidths 
)
override

Implements IShellBrowser.

Definition at line 2160 of file shellbrowser.cpp.

2161{
2162 HMENU mainMenu = LoadMenu(_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDM_CABINET_MAINMENU));
2163
2164 Shell_MergeMenus(hmenuShared, mainMenu, 0, 0, FCIDM_BROWSERLAST, MM_SUBMENUSHAVEIDS);
2165
2166 int GCCU(itemCount3) = GetMenuItemCount(hmenuShared);
2167 Unused(itemCount3);
2168
2169 DestroyMenu(mainMenu);
2170
2171 lpMenuWidths->width[0] = 2;
2172 lpMenuWidths->width[2] = 3;
2173 lpMenuWidths->width[4] = 1;
2174 return S_OK;
2175}
#define GCCU(x)
Definition: atlwin.h:27
#define Unused(x)
Definition: atlwin.h:28
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:856
#define FCIDM_BROWSERLAST
Definition: shlobj.h:616
#define MM_SUBMENUSHAVEIDS
Definition: shlobj.h:2514
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
BOOL WINAPI DestroyMenu(_In_ HMENU)

◆ Invoke()

HRESULT STDMETHODCALLTYPE CShellBrowser::Invoke ( DISPID  dispIdMember,
REFIID  riid,
LCID  lcid,
WORD  wFlags,
DISPPARAMS *  pDispParams,
VARIANT pVarResult,
EXCEPINFO *  pExcepInfo,
UINT puArgErr 
)
override

Definition at line 2414 of file shellbrowser.cpp.

2416{
2417 return E_NOTIMPL;
2418}

◆ IsBandLoaded()

BOOL CShellBrowser::IsBandLoaded ( const CLSID  clsidBand,
bool  vertical,
DWORD pdwBandID 
)

Definition at line 1156 of file shellbrowser.cpp.

1157{
1158 HRESULT hResult;
1159 CComPtr<IDeskBar> deskBar;
1160 CComPtr<IUnknown> baseBarSite;
1161 CComPtr<IBandSite> bandSite;
1162 CLSID clsidTmp;
1163 DWORD numBands;
1164 DWORD dwBandID;
1165 DWORD i;
1166
1167 /* Get our basebarsite to be able to enumerate bands */
1168 hResult = GetBaseBar(vertical, IID_PPV_ARG(IDeskBar, &deskBar));
1169 if (FAILED_UNEXPECTEDLY(hResult))
1170 return FALSE;
1171 hResult = deskBar->GetClient(&baseBarSite);
1172 if (FAILED_UNEXPECTEDLY(hResult))
1173 return FALSE;
1174 hResult = baseBarSite->QueryInterface(IID_PPV_ARG(IBandSite, &bandSite));
1175 if (FAILED_UNEXPECTEDLY(hResult))
1176 return FALSE;
1177
1178 hResult = bandSite->EnumBands(-1, &numBands);
1179 if (FAILED_UNEXPECTEDLY(hResult))
1180 return FALSE;
1181
1182 for(i = 0; i < numBands; i++)
1183 {
1184 CComPtr<IPersist> bandPersist;
1185
1186 hResult = bandSite->EnumBands(i, &dwBandID);
1187 if (FAILED_UNEXPECTEDLY(hResult))
1188 return FALSE;
1189
1190 hResult = bandSite->GetBandObject(dwBandID, IID_PPV_ARG(IPersist, &bandPersist));
1191 if (FAILED_UNEXPECTEDLY(hResult))
1192 return FALSE;
1193 hResult = bandPersist->GetClassID(&clsidTmp);
1194 if (FAILED_UNEXPECTEDLY(hResult))
1195 return FALSE;
1196 if (IsEqualGUID(clsidBand, clsidTmp))
1197 {
1198 if (pdwBandID) *pdwBandID = dwBandID;
1199 return TRUE;
1200 }
1201 }
1202 return FALSE;
1203}
HRESULT GetBaseBar(bool vertical, REFIID riid, void **theBaseBar)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248

Referenced by ShowBand().

◆ IsBuiltinBand()

BOOL CShellBrowser::IsBuiltinBand ( CLSID bandID)

Definition at line 1814 of file shellbrowser.cpp.

1815{
1816 if (IsEqualCLSID(bandID, CLSID_ExplorerBand))
1817 return TRUE;
1818 if (IsEqualCLSID(bandID, CLSID_SH_SearchBand) || IsEqualCLSID(bandID, CLSID_SearchBand))
1819 return TRUE;
1820 if (IsEqualCLSID(bandID, CLSID_IE_SearchBand) || IsEqualCLSID(bandID, CLSID_FileSearchBand))
1821 return TRUE;
1822 if (IsEqualCLSID(bandID, CLSID_SH_HistBand))
1823 return TRUE;
1824 if (IsEqualCLSID(bandID, CLSID_SH_FavBand))
1825 return TRUE;
1826 if (IsEqualCLSID(bandID, CLSID_ChannelsBand))
1827 return TRUE;
1828 return FALSE;
1829}

Referenced by BuildExplorerBandCategory().

◆ IsControlWindowShown()

HRESULT STDMETHODCALLTYPE CShellBrowser::IsControlWindowShown ( UINT  id,
BOOL pfShown 
)
override

Implements IBrowserService.

Definition at line 2465 of file shellbrowser.cpp.

2466{
2467 return E_NOTIMPL;
2468}

◆ LoadHistory()

HRESULT STDMETHODCALLTYPE CShellBrowser::LoadHistory ( IStream pStream,
IBindCtx pbc 
)
override

Implements IPersistHistory.

Definition at line 3342 of file shellbrowser.cpp.

3343{
3344 CComPtr<IPersistHistory> viewPersistHistory;
3345 CComPtr<IOleObject> viewHistoryObject;
3346 persistState oldState;
3347 ULONG numRead;
3348 LPITEMIDLIST pidl;
3349 HRESULT hResult;
3350
3351 hResult = pStream->Read(&oldState, sizeof(oldState), &numRead);
3352 if (FAILED_UNEXPECTEDLY(hResult))
3353 return hResult;
3354 if (numRead != sizeof(oldState) || oldState.dwSize != sizeof(oldState))
3355 return E_FAIL;
3356 if (oldState.browseType != 2)
3357 return E_FAIL;
3358 pidl = static_cast<LPITEMIDLIST>(CoTaskMemAlloc(oldState.pidlSize));
3359 if (pidl == NULL)
3360 return E_OUTOFMEMORY;
3361 hResult = pStream->Read(pidl, oldState.pidlSize, &numRead);
3362 if (FAILED_UNEXPECTEDLY(hResult))
3363 {
3364 ILFree(pidl);
3365 return hResult;
3366 }
3367 if (numRead != oldState.pidlSize)
3368 {
3369 ILFree(pidl);
3370 return E_FAIL;
3371 }
3372 hResult = CoCreateInstance(oldState.persistClass, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER,
3373 IID_PPV_ARG(IOleObject, &viewHistoryObject));
3374 fHistoryObject = viewHistoryObject;
3375 fHistoryStream = pStream;
3376 fHistoryBindContext = pbc;
3377 hResult = BrowseToPIDL(pidl, BTP_DONT_UPDATE_HISTORY);
3381 ILFree(pidl);
3382 if (FAILED_UNEXPECTEDLY(hResult))
3383 return hResult;
3384 return S_OK;
3385}
static const long BTP_DONT_UPDATE_HISTORY
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:426
HRESULT Read([out, size_is(cb), length_is(*pcbRead)] void *pv, [in] ULONG cb, [out] ULONG *pcbRead)
CLSID persistClass
Definition: shlobj_undoc.h:57
ULONG pidlSize
Definition: shlobj_undoc.h:58
uint32_t ULONG
Definition: typedefs.h:59

◆ LoadHistoryPosition()

HRESULT STDMETHODCALLTYPE CShellBrowser::LoadHistoryPosition ( LPWSTR  pszUrlLocation,
DWORD  dwPosition 
)
override

Implements ITravelLogClient.

Definition at line 3332 of file shellbrowser.cpp.

3333{
3334 return E_NOTIMPL;
3335}

◆ Navigate()

HRESULT STDMETHODCALLTYPE CShellBrowser::Navigate ( BSTR  URL,
VARIANT Flags,
VARIANT TargetFrameName,
VARIANT PostData,
VARIANT Headers 
)
override

Definition at line 2958 of file shellbrowser.cpp.

2960{
2962 HRESULT hResult;
2963 CComPtr<IShellFolder> pDesktop;
2964
2965 hResult = SHGetDesktopFolder(&pDesktop);
2966 if (FAILED_UNEXPECTEDLY(hResult))
2967 return hResult;
2968 hResult = pDesktop->ParseDisplayName(NULL, NULL, URL, NULL, &pidl, NULL);
2969 if (FAILED_UNEXPECTEDLY(hResult))
2970 return hResult;
2971 return BrowseObject(pidl, 1);
2972}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
STDMETHOD() BrowseObject(LPCITEMIDLIST pidl, UINT wFlags) override

Referenced by Navigate2().

◆ Navigate2()

HRESULT STDMETHODCALLTYPE CShellBrowser::Navigate2 ( VARIANT URL,
VARIANT Flags,
VARIANT TargetFrameName,
VARIANT PostData,
VARIANT Headers 
)
override

Definition at line 3188 of file shellbrowser.cpp.

3190{
3191 LPITEMIDLIST pidl = NULL;
3192 HRESULT hResult;
3193 // called from drive combo box to navigate to a directory
3194 // Also called by search band to display shell results folder view
3195
3196 if (V_VT(URL) == VT_BSTR)
3197 {
3198 return this->Navigate(V_BSTR(URL), Flags, TargetFrameName, PostData, Headers);
3199 }
3200 if (V_VT(URL) == (VT_ARRAY | VT_UI1))
3201 {
3202 if (V_ARRAY(URL)->cDims != 1 || V_ARRAY(URL)->cbElements != 1)
3203 return E_INVALIDARG;
3204
3205 pidl = static_cast<LPITEMIDLIST>(V_ARRAY(URL)->pvData);
3206 }
3208 if (FAILED_UNEXPECTEDLY(hResult))
3209 return hResult;
3210 return S_OK;
3211}
STDMETHOD() Navigate(BSTR URL, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers) override
@ VT_ARRAY
Definition: compat.h:2341
@ VT_UI1
Definition: compat.h:2311
#define V_ARRAY(A)
Definition: oleauto.h:222
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170

◆ NavigateToParent()

HRESULT CShellBrowser::NavigateToParent ( )

Definition at line 1294 of file shellbrowser.cpp.

1295{
1297 if (newDirectory == NULL)
1298 return E_OUTOFMEMORY;
1299 if (_ILIsDesktop(newDirectory))
1300 {
1301 ILFree(newDirectory);
1302 return E_INVALIDARG;
1303 }
1304 ILRemoveLastID(newDirectory);
1306 ILFree(newDirectory);
1307 if (FAILED_UNEXPECTEDLY(hResult))
1308 return hResult;
1309 return S_OK;
1310}
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
Definition: CBandSite.h:24
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
Definition: pidl.c:212

Referenced by Exec(), OnBackspace(), and OnGoUpLevel().

◆ NavigateToPidl()

HRESULT STDMETHODCALLTYPE CShellBrowser::NavigateToPidl ( LPCITEMIDLIST  pidl,
DWORD  grfHLNF 
)
override

Definition at line 2485 of file shellbrowser.cpp.

2486{
2487 return E_NOTIMPL;
2488}

◆ NotifyRedirect()

HRESULT STDMETHODCALLTYPE CShellBrowser::NotifyRedirect ( IShellView psv,
LPCITEMIDLIST  pidl,
BOOL pfDidBrowse 
)
override

Definition at line 2500 of file shellbrowser.cpp.

2501{
2502 return E_NOTIMPL;
2503}

◆ Offline()

HRESULT STDMETHODCALLTYPE CShellBrowser::Offline ( int  iCmd)
override

Implements IBrowserService2.

Definition at line 2703 of file shellbrowser.cpp.

2704{
2705 return E_NOTIMPL;
2706}

◆ OnAboutReactOS()

LRESULT CShellBrowser::OnAboutReactOS ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3614 of file shellbrowser.cpp.

3615{
3616 ShellAbout(m_hWnd, _T("ReactOS"), NULL, NULL);
3617 return 0;
3618}
#define ShellAbout
Definition: shellapi.h:692

◆ OnAddToFavorites()

LRESULT CShellBrowser::OnAddToFavorites ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3705 of file shellbrowser.cpp.

3706{
3707 LPITEMIDLIST pidlFavs;
3708 HRESULT hr = GetFavsLocation(m_hWnd, &pidlFavs);
3710 return 0;
3711
3712 SHFILEINFOW fileInfo = { NULL };
3713 if (!SHGetFileInfoW((LPCWSTR)fCurrentDirectoryPIDL, 0, &fileInfo, sizeof(fileInfo),
3715 {
3716 return 0;
3717 }
3718
3720 SHGetPathFromIDListW(pidlFavs, szPath);
3721 PathAppendW(szPath, fileInfo.szDisplayName);
3722 PathAddExtensionW(szPath, L".lnk");
3723
3725 return 0;
3726}
HRESULT GetFavsLocation(HWND hWnd, LPITEMIDLIST *pPidl)
static BOOL CreateShortcut(IN LPCWSTR pszLnkFileName, IN LPCITEMIDLIST pidl, IN LPCWSTR pszDescription OPTIONAL)
LPCWSTR szPath
Definition: env.c:37
#define PathAddExtensionW
Definition: pathcch.h:305
#define PathAppendW
Definition: pathcch.h:309
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
Definition: pidl.c:1344
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
Definition: shell32_main.c:415
#define SHGFI_DISPLAYNAME
Definition: shellapi.h:166
#define SHGFI_PIDL
Definition: shellapi.h:180
WCHAR szDisplayName[MAX_PATH]
Definition: shellapi.h:375
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

◆ OnAppCommand()

LRESULT CShellBrowser::OnAppCommand ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3885 of file shellbrowser.cpp.

3886{
3887 UINT uCmd = GET_APPCOMMAND_LPARAM(lParam);
3888 switch (uCmd)
3889 {
3890 case APPCOMMAND_BROWSER_BACKWARD:
3891 GoBack();
3892 break;
3893
3894 case APPCOMMAND_BROWSER_FORWARD:
3895 GoForward();
3896 break;
3897
3898 default:
3899 FIXME("uCmd: %u\n", uCmd);
3900 break;
3901 }
3902 return 0;
3903}
#define FIXME(fmt,...)
Definition: debug.h:111
STDMETHOD() GoBack() override
STDMETHOD() GoForward() override
LPARAM lParam
Definition: combotst.c:139

◆ OnBackspace()

LRESULT CShellBrowser::OnBackspace ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3652 of file shellbrowser.cpp.

3653{
3654 // FIXME: This does not appear to be what windows does.
3655 HRESULT hResult = NavigateToParent();
3656 if (FAILED(hResult))
3657 TRACE("NavigateToParent failed with hResult=%08lx\n", hResult);
3658 return 0;
3659}
#define FAILED(hr)
Definition: intsafe.h:51

◆ OnClose()

LRESULT CShellBrowser::OnClose ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3587 of file shellbrowser.cpp.

3588{
3589 return SendMessage(WM_CLOSE);
3590}
#define WM_CLOSE
Definition: winuser.h:1621

◆ OnCreate() [1/2]

HRESULT STDMETHODCALLTYPE CShellBrowser::OnCreate ( struct tagCREATESTRUCTW pcs)
override

Implements IBrowserService2.

Definition at line 2626 of file shellbrowser.cpp.

2627{
2629 return S_OK;
2630}
#define GetModuleHandle
Definition: winbase.h:3762
HACCEL WINAPI LoadAcceleratorsW(_In_opt_ HINSTANCE, _In_ LPCWSTR)

Referenced by OnCreate().

◆ OnCreate() [2/2]

LRESULT CShellBrowser::OnCreate ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3431 of file shellbrowser.cpp.

3432{
3433 OnCreate(reinterpret_cast<LPCREATESTRUCT> (lParam));
3434 return 0;
3435}
STDMETHOD() OnCreate(struct tagCREATESTRUCTW *pcs) override

◆ OnDestroy() [1/2]

HRESULT STDMETHODCALLTYPE CShellBrowser::OnDestroy ( )
override

Implements IBrowserService2.

Definition at line 2637 of file shellbrowser.cpp.

2638{
2639 return E_NOTIMPL;
2640}

◆ OnDestroy() [2/2]

LRESULT CShellBrowser::OnDestroy ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3437 of file shellbrowser.cpp.

3438{
3439 HRESULT hr;
3440
3441 /* The current thread is about to go down so render any IDataObject that may be left in the clipboard */
3443
3444 // TODO: rip down everything
3445 {
3447
3448 fCurrentShellView->DestroyViewWindow();
3449 fCurrentShellView->UIActivate(SVUIA_DEACTIVATE);
3450
3451 for (int i = 0; i < 3; i++)
3452 {
3455 CComPtr<IUnknown> pBarSite;
3457
3458 if (fClientBars[i].clientBar == NULL)
3459 continue;
3460
3461 hr = fClientBars[i].clientBar->QueryInterface(IID_PPV_ARG(IDockingWindow, &pdw));
3463 continue;
3464
3465 /* We should destroy our basebarsite too */
3466 hr = pdw->QueryInterface(IID_PPV_ARG(IDeskBar, &bar));
3467 if (SUCCEEDED(hr))
3468 {
3469 hr = bar->GetClient(&pBarSite);
3470 if (SUCCEEDED(hr) && pBarSite)
3471 {
3472 hr = pBarSite->QueryInterface(IID_PPV_ARG(IDeskBarClient, &pClient));
3473 if (SUCCEEDED(hr))
3474 pClient->SetDeskBarSite(NULL);
3475 }
3476 }
3477 pdw->CloseDW(0);
3478
3479 pClient = NULL;
3480 pBarSite = NULL;
3481 pdw = NULL;
3482 bar = NULL;
3483 ReleaseCComPtrExpectZero(fClientBars[i].clientBar);
3484 }
3485 ReleaseCComPtrExpectZero(fCurrentShellView);
3486 ReleaseCComPtrExpectZero(fTravelLog);
3487
3492 }
3493 PostQuitMessage(0);
3494 return 0;
3495}
BOOL DestroyWindow()
Definition: atlwin.h:462
HRESULT WINAPI OleFlushClipboard(void)
Definition: clipboard.c:2293
void bar()
Definition: ehthrow.cxx:142
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)

◆ OnDisconnectNetworkDrive()

LRESULT CShellBrowser::OnDisconnectNetworkDrive ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3608 of file shellbrowser.cpp.

3609{
3611 return 0;
3612}
#define RESOURCETYPE_DISK
Definition: winnetwk.h:64
DWORD WINAPI WNetDisconnectDialog(HWND hwnd, DWORD dwType)
Definition: wnet.c:2952

◆ OnExplorerBar()

LRESULT CShellBrowser::OnExplorerBar ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3819 of file shellbrowser.cpp.

3820{
3821 // TODO: HACK ! use the proper mechanism to show the band (i.e. pass the BSTR to basebar)
3823 {
3824 MenuBandInfo *mbi;
3826 if (!mbi)
3827 return 0;
3828 ShowBand(mbi->barGuid, mbi->fVertical);
3829 bHandled = TRUE;
3830 return 1;
3831 }
3832 switch (wID)
3833 {
3835 ShowBand(CLSID_FileSearchBand, true);
3836 break;
3838 ShowBand(CLSID_ExplorerBand, true);
3839 break;
3841 ShowBand(CLSID_SH_HistBand, true);
3842 break;
3844 ShowBand(CLSID_SH_FavBand, true);
3845 break;
3846 default:
3847 WARN("Unknown id %x\n", wID);
3848 }
3849 bHandled = TRUE;
3850 return 1;
3851}
#define WARN(fmt,...)
Definition: debug.h:112
#define IDM_EXPLORERBAR_FOLDERS
Definition: resource.h:43
#define IDM_EXPLORERBAR_FAVORITES
Definition: resource.h:40
#define IDM_EXPLORERBAR_HISTORY
Definition: resource.h:42
#define IDM_EXPLORERBAND_ENDCUSTOM
Definition: resource.h:79
#define IDM_EXPLORERBAR_SEARCH
Definition: resource.h:39
LPVOID WINAPI DSA_GetItemPtr(HDSA hdsa, INT nIndex)
Definition: dsa.c:162

◆ OnFolderOptions()

LRESULT CShellBrowser::OnFolderOptions ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3592 of file shellbrowser.cpp.

3593{
3594 HRESULT hResult = DoFolderOptions();
3595 if (FAILED(hResult))
3596 TRACE("DoFolderOptions failed with hResult=%08lx\n", hResult);
3597 return 0;
3598}

◆ OnFrameWindowActivateBS()

HRESULT STDMETHODCALLTYPE CShellBrowser::OnFrameWindowActivateBS ( BOOL  fActive)
override

Implements IBrowserService2.

Definition at line 2652 of file shellbrowser.cpp.

2653{
2654 return E_NOTIMPL;
2655}

◆ OnGetSettingsPtr()

LRESULT CShellBrowser::OnGetSettingsPtr ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3875 of file shellbrowser.cpp.

3876{
3877 if (!lParam)
3879
3881 return NO_ERROR;
3882}
#define NO_ERROR
Definition: dderror.h:5
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101

◆ OnGoBack()

LRESULT CShellBrowser::OnGoBack ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3620 of file shellbrowser.cpp.

3621{
3622 HRESULT hResult = GoBack();
3623 if (FAILED(hResult))
3624 TRACE("GoBack failed with hResult=%08lx\n", hResult);
3625 return 0;
3626}

◆ OnGoForward()

LRESULT CShellBrowser::OnGoForward ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3628 of file shellbrowser.cpp.

3629{
3630 HRESULT hResult = GoForward();
3631 if (FAILED(hResult))
3632 TRACE("GoForward failed with hResult=%08lx\n", hResult);
3633 return 0;
3634}

◆ OnGoHome()

LRESULT CShellBrowser::OnGoHome ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3644 of file shellbrowser.cpp.

3645{
3646 HRESULT hResult = GoHome();
3647 if (FAILED(hResult))
3648 TRACE("GoHome failed with hResult=%08lx\n", hResult);
3649 return 0;
3650}
STDMETHOD() GoHome() override

◆ OnGoTravel()

LRESULT CShellBrowser::OnGoTravel ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3814 of file shellbrowser.cpp.

3815{
3816 return 0;
3817}

◆ OnGoUpLevel()

LRESULT CShellBrowser::OnGoUpLevel ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3636 of file shellbrowser.cpp.

3637{
3638 HRESULT hResult = NavigateToParent();
3639 if (FAILED(hResult))
3640 TRACE("NavigateToParent failed with hResult=%08lx\n", hResult);
3641 return 0;
3642}

◆ OnHttpEquiv()

HRESULT STDMETHODCALLTYPE CShellBrowser::OnHttpEquiv ( IShellView psv,
BOOL  fDone,
VARIANT pvarargIn,
VARIANT pvarargOut 
)
override

Implements IBrowserService.

Definition at line 2590 of file shellbrowser.cpp.

2592{
2593 return E_NOTIMPL;
2594}

◆ OnInitMenuPopup()

LRESULT CShellBrowser::OnInitMenuPopup ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3526 of file shellbrowser.cpp.

3527{
3528 HMENU theMenu;
3529 LPARAM menuIndex = lParam;
3530
3531 theMenu = reinterpret_cast<HMENU>(wParam);
3532
3534 {
3535 menuIndex = 0;
3536 }
3537 else if (theMenu == SHGetMenuFromID(fCurrentMenuBar, FCIDM_MENU_EDIT))
3538 {
3539 menuIndex = 1;
3540 }
3541 else if (theMenu == SHGetMenuFromID(fCurrentMenuBar, FCIDM_MENU_VIEW))
3542 {
3543 UpdateViewMenu(theMenu);
3544 menuIndex = 2;
3545 }
3547 {
3548 menuIndex = 3;
3549 }
3550 else if (theMenu == SHGetMenuFromID(fCurrentMenuBar, FCIDM_MENU_TOOLS))
3551 {
3552 // FIXME: Remove once implemented
3555 menuIndex = 4;
3556 }
3557 else if (theMenu == SHGetMenuFromID(fCurrentMenuBar, FCIDM_MENU_HELP))
3558 {
3559 menuIndex = 5;
3560 }
3561
3562 LRESULT ret = RelayMsgToShellView(uMsg, wParam, menuIndex, bHandled);
3563
3564 return ret;
3565}
LRESULT RelayMsgToShellView(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
UINT WPARAM wParam
void UpdateViewMenu(HMENU theMenu)
#define IDM_TOOLS_MAPNETWORKDRIVE
Definition: resource.h:53
#define IDM_TOOLS_SYNCHRONIZE
Definition: resource.h:55
UINT WINAPI SHEnableMenuItem(HMENU hMenu, UINT wItemID, BOOL bEnable)
Definition: ordinal.c:1777
#define FCIDM_MENU_FAVORITES
Definition: shlobj.h:632
#define FCIDM_MENU_HELP
Definition: shlobj.h:629
#define FCIDM_MENU_FILE
Definition: shlobj.h:623
#define FCIDM_MENU_TOOLS
Definition: shlobj.h:627
#define FCIDM_MENU_VIEW
Definition: shlobj.h:625
#define FCIDM_MENU_EDIT
Definition: shlobj.h:624
int ret
LONG_PTR LRESULT
Definition: windef.h:209

◆ OnMapNetworkDrive()

LRESULT CShellBrowser::OnMapNetworkDrive ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3600 of file shellbrowser.cpp.

3601{
3602#ifndef __REACTOS__
3604#endif /* __REACTOS__ */
3605 return 0;
3606}
DWORD WINAPI WNetConnectionDialog(HWND hwnd, DWORD dwType)
Definition: wnet.c:2911

◆ OnOrganizeFavorites()

LRESULT CShellBrowser::OnOrganizeFavorites ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3728 of file shellbrowser.cpp.

3729{
3730 CComPtr<IShellFolder> psfDesktop;
3731 LPITEMIDLIST pidlFavs;
3732 HRESULT hr = GetFavsLocation(m_hWnd, &pidlFavs);
3734 return 0;
3735
3736 hr = SHGetDesktopFolder(&psfDesktop);
3738 {
3739 ILFree(pidlFavs);
3740 return 0;
3741 }
3742
3743 hr = SHInvokeDefaultCommand(m_hWnd, psfDesktop, pidlFavs);
3744 ILFree(pidlFavs);
3746 return 0;
3747
3748 return 0;
3749}
HRESULT WINAPI SHInvokeDefaultCommand(HWND hWnd, IShellFolder *lpFolder, LPCITEMIDLIST lpApidl)
Definition: ordinal.c:3056

◆ OnRefresh()

LRESULT CShellBrowser::OnRefresh ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3807 of file shellbrowser.cpp.

3808{
3810 fCurrentShellView->Refresh();
3811 return 0;
3812}

◆ OnSearch()

HRESULT CShellBrowser::OnSearch ( )

Definition at line 1831 of file shellbrowser.cpp.

1832{
1833 CComPtr<IObjectWithSite> objectWithSite;
1834 CComPtr<IContextMenu> contextMenu;
1835 CMINVOKECOMMANDINFO commandInfo;
1836 const char *searchGUID = "{169A0691-8DF9-11d1-A1C4-00C04FD75D13}";
1837 HRESULT hResult;
1838
1839 // TODO: Query shell if this command is enabled first
1840
1841 memset(&commandInfo, 0, sizeof(commandInfo));
1842 commandInfo.cbSize = sizeof(commandInfo);
1843 commandInfo.hwnd = m_hWnd;
1844 commandInfo.lpParameters = searchGUID;
1845 commandInfo.nShow = SW_SHOWNORMAL;
1846
1847 hResult = CoCreateInstance(CLSID_ShellSearchExt, NULL, CLSCTX_INPROC_SERVER,
1848 IID_PPV_ARG(IContextMenu, &contextMenu));
1849 if (FAILED_UNEXPECTEDLY(hResult))
1850 return 0;
1851 hResult = contextMenu->QueryInterface(IID_PPV_ARG(IObjectWithSite, &objectWithSite));
1852 if (FAILED_UNEXPECTEDLY(hResult))
1853 return 0;
1854 hResult = objectWithSite->SetSite(dynamic_cast<IShellBrowser*>(this));
1855 if (FAILED_UNEXPECTEDLY(hResult))
1856 return 0;
1857 hResult = contextMenu->InvokeCommand(&commandInfo);
1858 hResult = objectWithSite->SetSite(NULL);
1859 return hResult;
1860}

◆ OnSetFocus() [1/2]

HRESULT STDMETHODCALLTYPE CShellBrowser::OnSetFocus ( )
override

Implements IBrowserService2.

Definition at line 2647 of file shellbrowser.cpp.

2648{
2649 return E_NOTIMPL;
2650}

◆ OnSetFocus() [2/2]

LRESULT CShellBrowser::OnSetFocus ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3567 of file shellbrowser.cpp.

3568{
3570 return 0;
3571}
HWND SetFocus()
Definition: atlwin.h:1198

◆ OnSettingChange()

LRESULT CShellBrowser::OnSettingChange ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3580 of file shellbrowser.cpp.

3581{
3584 return 0;
3585}
void RefreshCabinetState()
void WINAPI SHPropagateMessage(HWND hWnd, UINT uiMsgId, WPARAM wParam, LPARAM lParam, BOOL bSend)
Definition: ordinal.c:1715

◆ OnSettingsChange()

LRESULT CShellBrowser::OnSettingsChange ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3860 of file shellbrowser.cpp.

3861{
3862 /* Refresh child windows */
3864
3865 /* Refresh status bar */
3866 if (fStatusBar)
3867 {
3870 }
3871
3872 return 0;
3873}
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define SW_HIDE
Definition: winuser.h:768
#define SW_SHOW
Definition: winuser.h:775
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

◆ OnSize() [1/2]

LRESULT CShellBrowser::OnSize ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3497 of file shellbrowser.cpp.

3498{
3499 CComPtr<IDockingWindow> dockingWindow;
3500 RECT availableBounds;
3501 static const INT excludeItems[] = {1, 1, 1, IDC_STATUSBAR, 0, 0};
3502 HRESULT hResult;
3503
3504 if (wParam != SIZE_MINIMIZED)
3505 {
3506 GetEffectiveClientRect(m_hWnd, &availableBounds, excludeItems);
3507 for (INT x = 0; x < 3; x++)
3508 {
3509 if (fClientBars[x].clientBar != NULL)
3510 {
3511 hResult = fClientBars[x].clientBar->QueryInterface(
3512 IID_PPV_ARG(IDockingWindow, &dockingWindow));
3513 if (SUCCEEDED(hResult) && dockingWindow != NULL)
3514 {
3515 hResult = dockingWindow->ResizeBorderDW(
3516 &availableBounds, static_cast<IDropTarget *>(this), TRUE);
3517 break;
3518 }
3519 }
3520 }
3522 }
3523 return 1;
3524}
#define SIZE_MINIMIZED
Definition: winuser.h:2506

◆ OnSize() [2/2]

HRESULT STDMETHODCALLTYPE CShellBrowser::OnSize ( WPARAM  wParam)
override

Implements IBrowserService2.

Definition at line 2621 of file shellbrowser.cpp.

2622{
2623 return E_NOTIMPL;
2624}

◆ OnToggleAddressBandVisible()

LRESULT CShellBrowser::OnToggleAddressBandVisible ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3775 of file shellbrowser.cpp.

3776{
3777 HRESULT hResult;
3778 hResult = IUnknown_Exec(fClientBars[BIInternetToolbar].clientBar,
3779 CGID_PrivCITCommands, ITID_ADDRESSBANDSHOWN, 0, NULL, NULL);
3780 return 0;
3781}
#define ITID_ADDRESSBANDSHOWN
Definition: undocshell.h:806

◆ OnToggleLinksBandVisible()

LRESULT CShellBrowser::OnToggleLinksBandVisible ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3783 of file shellbrowser.cpp.

3784{
3785 HRESULT hResult;
3786 hResult = IUnknown_Exec(fClientBars[BIInternetToolbar].clientBar,
3787 CGID_PrivCITCommands, ITID_LINKSBANDSHOWN, 0, NULL, NULL);
3788 return 0;
3789}
#define ITID_LINKSBANDSHOWN
Definition: undocshell.h:807

◆ OnToggleStatusBarVisible()

LRESULT CShellBrowser::OnToggleStatusBarVisible ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3751 of file shellbrowser.cpp.

3752{
3754 m_settings.Save();
3756 return 0;
3757}
#define BWM_SETTINGCHANGE
Definition: settings.h:10
void Save()
Definition: settings.cpp:12

◆ OnToggleTextLabels()

LRESULT CShellBrowser::OnToggleTextLabels ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3791 of file shellbrowser.cpp.

3792{
3793 HRESULT hResult;
3794 hResult = IUnknown_Exec(fClientBars[BIInternetToolbar].clientBar,
3795 CGID_PrivCITCommands, ITID_TEXTLABELS, 0, NULL, NULL);
3796 return 0;
3797}
#define ITID_TEXTLABELS
Definition: undocshell.h:804

◆ OnToggleToolbarBandVisible()

LRESULT CShellBrowser::OnToggleToolbarBandVisible ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3767 of file shellbrowser.cpp.

3768{
3769 HRESULT hResult;
3770 hResult = IUnknown_Exec(fClientBars[BIInternetToolbar].clientBar,
3771 CGID_PrivCITCommands, ITID_TOOLBARBANDSHOWN, 0, NULL, NULL);
3772 return 0;
3773}
#define ITID_TOOLBARBANDSHOWN
Definition: undocshell.h:805

◆ OnToggleToolbarLock()

LRESULT CShellBrowser::OnToggleToolbarLock ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3759 of file shellbrowser.cpp.

3760{
3761 HRESULT hResult;
3762 hResult = IUnknown_Exec(fClientBars[BIInternetToolbar].clientBar,
3763 CGID_PrivCITCommands, ITID_TOOLBARLOCKED, 0, NULL, NULL);
3764 return 0;
3765}
#define ITID_TOOLBARLOCKED
Definition: undocshell.h:811

◆ OnToolbarCustomize()

LRESULT CShellBrowser::OnToolbarCustomize ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL bHandled 
)

Definition at line 3799 of file shellbrowser.cpp.

3800{
3801 HRESULT hResult;
3802 hResult = IUnknown_Exec(fClientBars[BIInternetToolbar].clientBar,
3803 CGID_PrivCITCommands, ITID_CUSTOMIZEENABLED, 0, NULL, NULL);
3804 return 0;
3805}
#define ITID_CUSTOMIZEENABLED
Definition: undocshell.h:810

◆ OnViewWindowActive()

HRESULT STDMETHODCALLTYPE CShellBrowser::OnViewWindowActive ( IShellView ppshv)
override

Implements IShellBrowser.

Definition at line 2316 of file shellbrowser.cpp.

2317{
2318 return E_NOTIMPL;
2319}

◆ put_AddressBar()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_AddressBar ( VARIANT_BOOL  Value)
override

Definition at line 3298 of file shellbrowser.cpp.

3299{
3300 return E_NOTIMPL;
3301}

◆ put_FullScreen()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_FullScreen ( VARIANT_BOOL  bFullScreen)
override

Definition at line 3183 of file shellbrowser.cpp.

3184{
3185 return E_NOTIMPL;
3186}

◆ put_Height()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_Height ( long  Height)
override

Definition at line 3066 of file shellbrowser.cpp.

3067{
3068 return E_NOTIMPL;
3069}

◆ put_Left()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_Left ( long  Left)
override

Definition at line 3036 of file shellbrowser.cpp.

3037{
3038 return E_NOTIMPL;
3039}

◆ put_MenuBar()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_MenuBar ( VARIANT_BOOL  Value)
override

Definition at line 3173 of file shellbrowser.cpp.

3174{
3175 return E_NOTIMPL;
3176}

◆ put_Offline()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_Offline ( VARIANT_BOOL  bOffline)
override

Definition at line 3248 of file shellbrowser.cpp.

3249{
3250 return E_NOTIMPL;
3251}

◆ put_RegisterAsBrowser()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_RegisterAsBrowser ( VARIANT_BOOL  bRegister)
override

Definition at line 3268 of file shellbrowser.cpp.

3269{
3270 return E_NOTIMPL;
3271}

◆ put_RegisterAsDropTarget()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_RegisterAsDropTarget ( VARIANT_BOOL  bRegister)
override

Definition at line 3278 of file shellbrowser.cpp.

3279{
3280 return E_NOTIMPL;
3281}

◆ put_Resizable()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_Resizable ( VARIANT_BOOL  Value)
override

Definition at line 3308 of file shellbrowser.cpp.

3309{
3310 return E_NOTIMPL;
3311}

◆ put_Silent()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_Silent ( VARIANT_BOOL  bSilent)
override

Definition at line 3258 of file shellbrowser.cpp.

3259{
3260 return E_NOTIMPL;
3261}

◆ put_StatusBar()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_StatusBar ( VARIANT_BOOL  Value)
override

Definition at line 3143 of file shellbrowser.cpp.

3144{
3145 return E_NOTIMPL;
3146}

◆ put_StatusText()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_StatusText ( BSTR  StatusText)
override

Definition at line 3153 of file shellbrowser.cpp.

3154{
3155 return E_NOTIMPL;
3156}

◆ put_TheaterMode()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_TheaterMode ( VARIANT_BOOL  bRegister)
override

Definition at line 3288 of file shellbrowser.cpp.

3289{
3290 return E_NOTIMPL;
3291}

◆ put_ToolBar()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_ToolBar ( int  Value)
override

Definition at line 3163 of file shellbrowser.cpp.

3164{
3165 return E_NOTIMPL;
3166}

◆ put_Top()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_Top ( long  Top)
override

Definition at line 3046 of file shellbrowser.cpp.

3047{
3048 return E_NOTIMPL;
3049}

◆ put_Visible()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_Visible ( VARIANT_BOOL  Value)
override

Definition at line 3133 of file shellbrowser.cpp.

3134{
3135 return E_NOTIMPL;
3136}

◆ put_Width()

HRESULT STDMETHODCALLTYPE CShellBrowser::put_Width ( long  Width)
override

Definition at line 3056 of file shellbrowser.cpp.

3057{
3058 return E_NOTIMPL;
3059}

◆ PutProperty()

HRESULT STDMETHODCALLTYPE CShellBrowser::PutProperty ( BSTR  Property,
VARIANT  vtValue 
)
override

Definition at line 3098 of file shellbrowser.cpp.

3099{
3100 return E_NOTIMPL;
3101}

◆ QueryActiveShellView()

HRESULT STDMETHODCALLTYPE CShellBrowser::QueryActiveShellView ( IShellView **  ppshv)
override

Implements IShellBrowser.

Definition at line 2306 of file shellbrowser.cpp.

2307{
2308 if (ppshv == NULL)
2309 return E_POINTER;
2310 *ppshv = fCurrentShellView;
2311 if (fCurrentShellView.p != NULL)
2313 return S_OK;
2314}

◆ QueryService()

HRESULT STDMETHODCALLTYPE CShellBrowser::QueryService ( REFGUID  guidService,
REFIID  riid,
void **  ppvObject 
)
override

Implements IServiceProvider.

Definition at line 2348 of file shellbrowser.cpp.

2349{
2350 // view does a query for SID_STopLevelBrowser, IID_IShellBrowserService
2351 // the returned interface has a method GetPropertyBag on it
2352 if (IsEqualIID(guidService, SID_STopLevelBrowser))
2353 return this->QueryInterface(riid, ppvObject);
2354 if (IsEqualIID(guidService, SID_SShellBrowser))
2355 return this->QueryInterface(riid, ppvObject);
2356 if (IsEqualIID(guidService, SID_ITargetFrame2))
2357 return this->QueryInterface(riid, ppvObject);
2358 if (IsEqualIID(guidService, SID_IWebBrowserApp)) // without this, the internet toolbar won't reflect notifications
2359 return this->QueryInterface(riid, ppvObject);
2360 if (IsEqualIID(guidService, SID_SProxyBrowser))
2361 return this->QueryInterface(riid, ppvObject);
2362 if (IsEqualIID(guidService, SID_IExplorerToolbar))
2363 return fClientBars[BIInternetToolbar].clientBar->QueryInterface(riid, ppvObject);
2364 if (IsEqualIID(riid, IID_IShellBrowser))
2365 return this->QueryInterface(riid, ppvObject);
2366 return E_NOINTERFACE;
2367}
#define SID_SShellBrowser
Definition: shlguid.h:128
#define SID_IExplorerToolbar
#define SID_ITargetFrame2
#define SID_IWebBrowserApp
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ QueryStatus()

HRESULT STDMETHODCALLTYPE CShellBrowser::QueryStatus ( const GUID pguidCmdGroup,
ULONG  cCmds,
OLECMD  prgCmds[],
OLECMDTEXT pCmdText 
)
override

Implements IOleCommandTarget.

Definition at line 1924 of file shellbrowser.cpp.

1926{
1927 CComPtr<IOleCommandTarget> commandTarget;
1928 HRESULT hResult;
1929
1930 if (prgCmds == NULL)
1931 return E_INVALIDARG;
1932 if (pguidCmdGroup == NULL)
1933 {
1934 if (fCurrentShellView.p != NULL)
1935 {
1936 hResult = fCurrentShellView->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &commandTarget));
1937 if (SUCCEEDED(hResult) && commandTarget.p != NULL)
1938 return commandTarget->QueryStatus(NULL, 1, prgCmds, pCmdText);
1939 }
1940 while (cCmds != 0)
1941 {
1942 prgCmds->cmdf = 0;
1943 prgCmds++;
1944 cCmds--;
1945 }
1946 }
1947 else if (IsEqualIID(*pguidCmdGroup, CGID_Explorer))
1948 {
1949 while (cCmds != 0)
1950 {
1951 switch (prgCmds->cmdID)
1952 {
1953 case 0x1c: // search
1954 prgCmds->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED;
1955 if (IsEqualCLSID(CLSID_SH_SearchBand, fCurrentVertBar) ||
1956 IsEqualCLSID(CLSID_SearchBand, fCurrentVertBar) ||
1957 IsEqualCLSID(CLSID_IE_SearchBand, fCurrentVertBar) ||
1958 IsEqualCLSID(CLSID_FileSearchBand, fCurrentVertBar))
1959 {
1960 prgCmds->cmdf |= OLECMDF_LATCHED;
1961 }
1962 break;
1963 case 0x1d: // history
1964 prgCmds->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED;
1965 if (IsEqualCLSID(CLSID_SH_HistBand, fCurrentVertBar))
1966 prgCmds->cmdf |= OLECMDF_LATCHED;
1967 break;
1968 case 0x1e: // favorites
1969 prgCmds->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED;
1970 if (IsEqualCLSID(CLSID_SH_FavBand, fCurrentVertBar))
1971 prgCmds->cmdf |= OLECMDF_LATCHED;
1972 break;
1973 case 0x23: // folders
1974 prgCmds->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED;
1975 if (IsEqualCLSID(CLSID_ExplorerBand, fCurrentVertBar))
1976 prgCmds->cmdf |= OLECMDF_LATCHED;
1977 break;
1978 default:
1979 prgCmds->cmdf = 0;
1980 break;
1981 }
1982 prgCmds++;
1983 cCmds--;
1984 }
1985 }
1986 else if (IsEqualIID(*pguidCmdGroup, CGID_ShellBrowser))
1987 {
1988 while (cCmds != 0)
1989 {
1990 switch (prgCmds->cmdID)
1991 {
1993 prgCmds->cmdf = OLECMDF_SUPPORTED;
1994 if (fCurrentDirectoryPIDL->mkid.cb != 0)
1995 prgCmds->cmdf |= OLECMDF_ENABLED;
1996 break;
1997 }
1998 prgCmds++;
1999 cCmds--;
2000 }
2001 }
2002 return S_OK;
2003}
#define IDM_GOTO_UPONELEVEL
Definition: resource.h:47

◆ QueryStatusWB()

HRESULT STDMETHODCALLTYPE CShellBrowser::QueryStatusWB ( OLECMDID  cmdID,
OLECMDF pcmdf 
)
override

Definition at line 3213 of file shellbrowser.cpp.

3214{
3215 return E_NOTIMPL;
3216}

◆ Quit()

HRESULT STDMETHODCALLTYPE CShellBrowser::Quit ( )
override

Definition at line 3088 of file shellbrowser.cpp.

3089{
3090 return E_NOTIMPL;
3091}

◆ Refresh()

HRESULT STDMETHODCALLTYPE CShellBrowser::Refresh ( )
override

Definition at line 2974 of file shellbrowser.cpp.

2975{
2976 VARIANT level;
2977
2978 V_VT(&level) = VT_I4;
2979 V_I4(&level) = 4;
2980 return Refresh2(&level);
2981}
STDMETHOD() Refresh2(VARIANT *Level) override
GLint level
Definition: gl.h:1546

◆ Refresh2()

HRESULT STDMETHODCALLTYPE CShellBrowser::Refresh2 ( VARIANT Level)
override

Definition at line 2983 of file shellbrowser.cpp.

2984{
2985 CComPtr<IOleCommandTarget> oleCommandTarget;
2986 HRESULT hResult;
2987
2988 hResult = fCurrentShellView->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &oleCommandTarget));
2989 if (FAILED_UNEXPECTEDLY(hResult))
2990 return hResult;
2991 return oleCommandTarget->Exec(NULL, 22, 1, Level, NULL);
2992}
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:56

Referenced by Refresh().

◆ RefreshCabinetState()

void CShellBrowser::RefreshCabinetState ( )

Definition at line 3910 of file shellbrowser.cpp.

3911{
3914}

Referenced by OnSettingChange().

◆ RegisterWindow()

HRESULT STDMETHODCALLTYPE CShellBrowser::RegisterWindow ( BOOL  fForceRegister,
int  swc 
)
override

Implements IBrowserService.

Definition at line 2601 of file shellbrowser.cpp.

2602{
2603 return E_NOTIMPL;
2604}

◆ RelayCommands()

LRESULT CShellBrowser::RelayCommands ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3853 of file shellbrowser.cpp.

3854{
3857 return 0;
3858}
#define LOWORD(l)
Definition: pedump.c:82
#define FCIDM_SHVIEWLAST
Definition: shlobj.h:607
#define HIWORD(l)
Definition: typedefs.h:247

◆ RelayMsgToShellView()

LRESULT CShellBrowser::RelayMsgToShellView ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 3573 of file shellbrowser.cpp.

3574{
3577 return 0;
3578}

Referenced by OnInitMenuPopup().

◆ ReleaseShellView()

HRESULT STDMETHODCALLTYPE CShellBrowser::ReleaseShellView ( )
override

Implements IBrowserService2.

Definition at line 2657 of file shellbrowser.cpp.

2658{
2659 return E_NOTIMPL;
2660}

◆ RemoveMenusSB()

HRESULT STDMETHODCALLTYPE CShellBrowser::RemoveMenusSB ( HMENU  hmenuShared)
override

Implements IShellBrowser.

Definition at line 2207 of file shellbrowser.cpp.

2208{
2209 if (hmenuShared == fCurrentMenuBar)
2210 {
2211 //DestroyMenu(fCurrentMenuBar);
2213 }
2214 return S_OK;
2215}
STDMETHOD() SetMenuSB(HMENU hmenuShared, HOLEMENU holemenuRes, HWND hwndActiveObject) override

◆ RepositionBars()

void CShellBrowser::RepositionBars ( )

Definition at line 1438 of file shellbrowser.cpp.

1439{
1440 RECT clientRect;
1441 RECT statusRect;
1442 int x;
1443
1444 GetClientRect(&clientRect);
1445
1447 {
1448 ::GetWindowRect(fStatusBar, &statusRect);
1449 ::SetWindowPos(fStatusBar, NULL, clientRect.left, clientRect.bottom - (statusRect.bottom - statusRect.top),
1450 clientRect.right - clientRect.left,
1451 statusRect.bottom - statusRect.top, SWP_NOOWNERZORDER | SWP_NOZORDER);
1452 clientRect.bottom -= statusRect.bottom - statusRect.top;
1453 }
1454
1455 for (x = 0; x < 3; x++)
1456 {
1458 RECT borderSpace = fClientBars[x].borderSpace;
1459 if (hwnd == NULL && fClientBars[x].clientBar != NULL)
1460 {
1461 IUnknown_GetWindow(fClientBars[x].clientBar, &hwnd);
1463 }
1464 if (hwnd != NULL)
1465 {
1466 RECT toolbarRect = clientRect;
1467 if (borderSpace.top != 0)
1468 {
1469 toolbarRect.bottom = toolbarRect.top + borderSpace.top;
1470 }
1471 else if (borderSpace.bottom != 0)
1472 {
1473 toolbarRect.top = toolbarRect.bottom - borderSpace.bottom;
1474 }
1475 else if (borderSpace.left != 0)
1476 {
1477 toolbarRect.right = toolbarRect.left + borderSpace.left;
1478 }
1479 else if (borderSpace.right != 0)
1480 {
1481 toolbarRect.left = toolbarRect.right - borderSpace.right;
1482 }
1483
1485 toolbarRect.left,
1486 toolbarRect.top,
1487 toolbarRect.right - toolbarRect.left,
1488 toolbarRect.bottom - toolbarRect.top,
1490
1491 if (borderSpace.top != 0)
1492 {
1493 clientRect.top = toolbarRect.bottom;
1494 }
1495 else if (borderSpace.bottom != 0)
1496 {
1497 clientRect.bottom = toolbarRect.top;
1498 }
1499 else if (borderSpace.left != 0)
1500 {
1501 clientRect.left = toolbarRect.right;
1502 }
1503 else if (borderSpace.right != 0)
1504 {
1505 clientRect.right = toolbarRect.left;
1506 }
1507 }
1508 }
1509 ::SetWindowPos(fCurrentShellViewWindow, NULL, clientRect.left, clientRect.top,
1510 clientRect.right - clientRect.left,
1511 clientRect.bottom - clientRect.top, SWP_NOOWNERZORDER | SWP_NOZORDER);
1512}
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd)
Definition: ordinal.c:1332
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define SWP_NOOWNERZORDER
Definition: winuser.h:1249
#define SWP_NOZORDER
Definition: winuser.h:1247

Referenced by BrowseToPath(), OnSettingsChange(), OnSize(), and SetBorderSpaceDW().

◆ RequestBorderSpaceDW()

HRESULT STDMETHODCALLTYPE CShellBrowser::RequestBorderSpaceDW ( IUnknown punkObj,
LPCBORDERWIDTHS  pbw 
)
override

Definition at line 1904 of file shellbrowser.cpp.

1905{
1906 return S_OK;
1907}

◆ SaveHistory()

HRESULT STDMETHODCALLTYPE CShellBrowser::SaveHistory ( IStream pStream)
override

Implements IPersistHistory.

Definition at line 3387 of file shellbrowser.cpp.

3388{
3389 CComPtr<IPersistHistory> viewPersistHistory;
3390 persistState newState;
3391 HRESULT hResult;
3392
3393 hResult = fCurrentShellView->GetItemObject(
3394 SVGIO_BACKGROUND, IID_PPV_ARG(IPersistHistory, &viewPersistHistory));
3395 memset(&newState, 0, sizeof(newState));
3396 newState.dwSize = sizeof(newState);
3397 newState.browseType = 2;
3398 newState.browserIndex = GetBrowserIndex();
3399 if (viewPersistHistory.p != NULL)
3400 {
3401 hResult = viewPersistHistory->GetClassID(&newState.persistClass);
3402 if (FAILED_UNEXPECTEDLY(hResult))
3403 return hResult;
3404 }
3406 hResult = pStream->Write(&newState, sizeof(newState), NULL);
3407 if (FAILED_UNEXPECTEDLY(hResult))
3408 return hResult;
3409 hResult = pStream->Write(fCurrentDirectoryPIDL, newState.pidlSize, NULL);
3410 if (FAILED_UNEXPECTEDLY(hResult))
3411 return hResult;
3412 if (viewPersistHistory.p != NULL)
3413 {
3414 hResult = viewPersistHistory->SaveHistory(pStream);
3415 if (FAILED_UNEXPECTEDLY(hResult))
3416 return hResult;
3417 }
3418 return S_OK;
3419}
DWORD GetBrowserIndex()
HRESULT Write([in, size_is(cb)] const void *pv, [in] ULONG cb, [out] ULONG *pcbWritten)
#define ILGetSize
Definition: shellclasses.h:638
long browserIndex
Definition: shlobj_undoc.h:56

◆ SendControlMsg()

HRESULT STDMETHODCALLTYPE CShellBrowser::SendControlMsg ( UINT  id,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
LRESULT pret 
)
override

Implements IShellBrowser.

Definition at line 2283 of file shellbrowser.cpp.

2285{
2286 LPARAM result;
2287
2288 if (pret != NULL)
2289 *pret = 0;
2290 switch (id)
2291 {
2292 case FCW_TOOLBAR:
2294 if (pret != NULL)
2295 *pret = result;
2296 break;
2297 case FCW_STATUS:
2299 if (pret != NULL)
2300 *pret = result;
2301 break;
2302 }
2303 return S_OK;
2304}
LRESULT SendMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
Definition: atlwin.h:1116
GLuint64EXT * result
Definition: glext.h:11304

◆ SetAcceleratorMenu()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetAcceleratorMenu ( HACCEL  hacc)
override

Implements IBrowserService2.

Definition at line 2855 of file shellbrowser.cpp.

2856{
2857 return E_NOTIMPL;
2858}

◆ SetActivateState()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetActivateState ( UINT  u)
override

Implements IBrowserService2.

Definition at line 2713 of file shellbrowser.cpp.

2714{
2715 return E_NOTIMPL;
2716}

◆ SetAsDefFolderSettings()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetAsDefFolderSettings ( )
override

Implements IBrowserService2.

Definition at line 2611 of file shellbrowser.cpp.

2612{
2613 return E_NOTIMPL;
2614}

◆ SetBorderSpaceDW()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetBorderSpaceDW ( IUnknown punkObj,
LPCBORDERWIDTHS  pbw 
)
override

Definition at line 1909 of file shellbrowser.cpp.

1910{
1911 for (INT x = 0; x < 3; x++)
1912 {
1913 if (IUnknownIsEqual(fClientBars[x].clientBar, punkObj))
1914 {
1915 fClientBars[x].borderSpace = *pbw;
1916 // if this bar changed size, it cascades and forces all subsequent bars to resize
1918 return S_OK;
1919 }
1920 }
1921 return E_INVALIDARG;
1922}

◆ SetFlags()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetFlags ( DWORD  dwFlags,
DWORD  dwFlagMask 
)
override

Implements IBrowserService.

Definition at line 2515 of file shellbrowser.cpp.

2516{
2517 return E_NOTIMPL;
2518}

◆ SetHistoryObject()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetHistoryObject ( IOleObject pole,
BOOL  fIsLocalAnchor 
)
override

Implements IBrowserService.

Definition at line 2575 of file shellbrowser.cpp.

2576{
2577 return E_NOTIMPL;
2578}

◆ SetMenuSB()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetMenuSB ( HMENU  hmenuShared,
HOLEMENU  holemenuRes,
HWND  hwndActiveObject 
)
override

Implements IShellBrowser.

Definition at line 2177 of file shellbrowser.cpp.

2178{
2179 CComPtr<IShellMenu> shellMenu;
2180 HRESULT hResult;
2181
2182 if (hmenuShared && IsMenu(hmenuShared) == FALSE)
2183 return E_FAIL;
2184 hResult = GetMenuBand(IID_PPV_ARG(IShellMenu, &shellMenu));
2185 if (FAILED_UNEXPECTEDLY(hResult))
2186 return hResult;
2187
2188 if (!hmenuShared)
2189 {
2190 hmenuShared = LoadMenu(_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDM_CABINET_MAINMENU));
2191 }
2192 // FIXME: Figure out the proper way to do this.
2193 HMENU hMenuFavs = GetSubMenu(hmenuShared, 3);
2194 if (hMenuFavs)
2195 {
2197 }
2198
2199 hResult = shellMenu->SetMenu(hmenuShared, m_hWnd, SMSET_DONTOWN);
2200 if (FAILED_UNEXPECTEDLY(hResult))
2201 return hResult;
2202 fCurrentMenuBar = hmenuShared;
2204 return S_OK;
2205}
HRESULT BuildExplorerBandMenu()
HRESULT GetMenuBand(REFIID riid, void **shellMenu)
#define IDM_FAVORITES_EMPTY
Definition: resource.h:52
BOOL WINAPI IsMenu(_In_ HMENU)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)

Referenced by RemoveMenusSB().

◆ SetNavigateState()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetNavigateState ( BNSTATE  bnstate)
override

Implements IBrowserService.

Definition at line 2490 of file shellbrowser.cpp.

2491{
2492 return E_NOTIMPL;
2493}

◆ SetPositionCookie()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetPositionCookie ( DWORD  dwPositioncookie)
override

Implements IPersistHistory.

Definition at line 3421 of file shellbrowser.cpp.

3422{
3423 return E_NOTIMPL;
3424}

◆ SetReferrer()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetReferrer ( LPCITEMIDLIST  pidl)
override

Definition at line 2539 of file shellbrowser.cpp.

2540{
2541 return E_NOTIMPL;
2542}

◆ SetStatusTextSB()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetStatusTextSB ( LPCOLESTR  pszStatusText)
override

Implements IShellBrowser.

Definition at line 2217 of file shellbrowser.cpp.

2218{
2219 //
2220 if (pszStatusText)
2221 {
2222 ::SetWindowText(fStatusBar, pszStatusText);
2223 }
2224 else
2225 {
2226
2227 }
2228 return S_OK;
2229}
#define SetWindowText
Definition: winuser.h:5857

◆ SetTitle()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetTitle ( IShellView psv,
LPCWSTR  pszName 
)
override

Implements IBrowserService.

Definition at line 2425 of file shellbrowser.cpp.

2426{
2427 return E_NOTIMPL;
2428}

◆ SetToolbarItems()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetToolbarItems ( LPTBBUTTON  lpButtons,
UINT  nButtons,
UINT  uFlags 
)
override

Definition at line 2321 of file shellbrowser.cpp.

2322{
2323 return E_NOTIMPL;
2324}

◆ SetTopBrowser()

HRESULT STDMETHODCALLTYPE CShellBrowser::SetTopBrowser ( )
override

Implements IBrowserService2.

Definition at line 2698 of file shellbrowser.cpp.

2699{
2700 return E_NOTIMPL;
2701}

◆ ShowBand()

HRESULT CShellBrowser::ShowBand ( const CLSID classID,
bool  vertical 
)

Definition at line 1205 of file shellbrowser.cpp.

1206{
1207 CComPtr<IDockingWindow> dockingWindow;
1208 CComPtr<IUnknown> baseBarSite;
1209 CComPtr<IUnknown> newBand;
1210 CComPtr<IDeskBar> deskBar;
1211 VARIANT vaIn;
1212 HRESULT hResult;
1213 DWORD dwBandID;
1214
1215 hResult = GetBaseBar(vertical, IID_PPV_ARG(IDeskBar, &deskBar));
1216 if (FAILED_UNEXPECTEDLY(hResult))
1217 return hResult;
1218
1219 hResult = deskBar->GetClient(&baseBarSite);
1220 if (FAILED_UNEXPECTEDLY(hResult))
1221 return hResult;
1222
1223 hResult = deskBar->QueryInterface(IID_PPV_ARG(IDockingWindow, &dockingWindow));
1224 if (FAILED_UNEXPECTEDLY(hResult))
1225 return hResult;
1226
1227 if (!IsBandLoaded(classID, vertical, &dwBandID))
1228 {
1229 TRACE("ShowBand called for CLSID %s, vertical=%d...\n", wine_dbgstr_guid(&classID), vertical);
1230 if (IsEqualCLSID(CLSID_ExplorerBand, classID))
1231 {
1232 TRACE("CLSID_ExplorerBand requested, building internal band.\n");
1234 if (FAILED_UNEXPECTEDLY(hResult))
1235 return hResult;
1236 }
1237 else if (IsEqualCLSID(classID, CLSID_FileSearchBand))
1238 {
1239 TRACE("CLSID_FileSearchBand requested, building internal band.\n");
1240 hResult = CSearchBar_CreateInstance(IID_PPV_ARG(IUnknown, &newBand));
1241 if (FAILED_UNEXPECTEDLY(hResult))
1242 return hResult;
1243 }
1244 else
1245 {
1246 TRACE("A different CLSID requested, using CoCreateInstance.\n");
1247 hResult = CoCreateInstance(classID, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IUnknown, &newBand));
1248 if (FAILED_UNEXPECTEDLY(hResult))
1249 return hResult;
1250 }
1251 }
1252 else
1253 {
1254 CComPtr<IBandSite> pBandSite;
1255
1256 hResult = baseBarSite->QueryInterface(IID_PPV_ARG(IBandSite, &pBandSite));
1257 if (!SUCCEEDED(hResult))
1258 {
1259 ERR("Can't get IBandSite interface\n");
1260 return E_FAIL;
1261 }
1262 hResult = pBandSite->GetBandObject(dwBandID, IID_PPV_ARG(IUnknown, &newBand));
1263 if (!SUCCEEDED(hResult))
1264 {
1265 ERR("Can't find band object\n");
1266 return E_FAIL;
1267 }
1268
1269 // It's hackish, but we should be able to show the wanted band until we
1270 // find the proper way to do this (but it seems to work to add a new band)
1271 // Here we'll just re-add the existing band to the site, causing it to display.
1272 }
1273 V_VT(&vaIn) = VT_UNKNOWN;
1274 V_UNKNOWN(&vaIn) = newBand.p;
1275 hResult = IUnknown_Exec(baseBarSite, CGID_IDeskBand, 1, 1, &vaIn, NULL);
1276 if (FAILED_UNEXPECTEDLY(hResult))
1277 {
1278 return hResult;
1279 }
1280
1281 hResult = dockingWindow->ShowDW(TRUE);
1282 if (FAILED_UNEXPECTEDLY(hResult))
1283 return hResult;
1284
1285 if (vertical)
1286 {
1287 fCurrentVertBar = classID;
1289 }
1290
1291 return S_OK;
1292}
#define ERR(fmt,...)
Definition: debug.h:110
HRESULT CExplorerBand_CreateInstance(REFIID riid, LPVOID *ppv)
Definition: browseui.cpp:69
HRESULT CSearchBar_CreateInstance(REFIID riid, LPVOID *ppv)
Definition: browseui.cpp:60
BOOL IsBandLoaded(const CLSID clsidBand, bool vertical, DWORD *pdwBandID)
static __inline const char * wine_dbgstr_guid(const GUID *id)
Definition: debug.h:197
#define CGID_IDeskBand

Referenced by BrowseObject(), Exec(), OnExplorerBar(), and ShowBrowserBar().

◆ ShowBrowserBar()

HRESULT STDMETHODCALLTYPE CShellBrowser::ShowBrowserBar ( VARIANT pvaClsid,
VARIANT pvarShow,
VARIANT pvarSize 
)
override

Definition at line 3224 of file shellbrowser.cpp.

3225{
3226 CLSID classID;
3227 bool vertical;
3228
3229 // called to show search bar
3230 if (V_VT(pvaClsid) != VT_BSTR)
3231 return E_INVALIDARG;
3232 CLSIDFromString(V_BSTR(pvaClsid), &classID);
3233 // TODO: properly compute the value of vertical
3234 vertical = true;
3235 return ShowBand(classID, vertical);
3236}
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
Definition: compobj.c:2338

◆ ShowControlWindow()

HRESULT STDMETHODCALLTYPE CShellBrowser::ShowControlWindow ( UINT  id,
BOOL  fShow 
)
override

Implements IBrowserService.

Definition at line 2460 of file shellbrowser.cpp.

2461{
2462 return E_NOTIMPL;
2463}

◆ STDMETHOD_() [1/11]

CShellBrowser::STDMETHOD_ ( DWORD  ,
GetBrowserIndex   
)
override

◆ STDMETHOD_() [2/11]

CShellBrowser::STDMETHOD_ ( int  ,
_GetToolbarCount   
)
override

◆ STDMETHOD_() [3/11]

CShellBrowser::STDMETHOD_ ( IStream ,
v_GetViewStream   
)

◆ STDMETHOD_() [4/11]

CShellBrowser::STDMETHOD_ ( LPBASEBROWSERDATA  ,
PutBaseBrowserData   
)
override

◆ STDMETHOD_() [5/11]

CShellBrowser::STDMETHOD_ ( LPTOOLBARITEM  ,
_GetToolbarItem   
)
override

◆ STDMETHOD_() [6/11]

CShellBrowser::STDMETHOD_ ( LRESULT  ,
ForwardViewMsg   
)

◆ STDMETHOD_() [7/11]

CShellBrowser::STDMETHOD_ ( LRESULT  ,
OnCommand   
)

◆ STDMETHOD_() [8/11]

CShellBrowser::STDMETHOD_ ( LRESULT  ,
OnNotify   
)
override

◆ STDMETHOD_() [9/11]

CShellBrowser::STDMETHOD_ ( LRESULT  ,
WndProcBS   
)

◆ STDMETHOD_() [10/11]

CShellBrowser::STDMETHOD_ ( UINT  ,
_FindTBar   
)
override

◆ STDMETHOD_() [11/11]

CShellBrowser::STDMETHOD_ ( UINT  ,
_get_itbLastFocus   
)
override

◆ Stop()

HRESULT STDMETHODCALLTYPE CShellBrowser::Stop ( )
override

Definition at line 2994 of file shellbrowser.cpp.

2995{
2996 return E_NOTIMPL;
2997}

◆ TranslateAcceleratorSB()

HRESULT STDMETHODCALLTYPE CShellBrowser::TranslateAcceleratorSB ( MSG pmsg,
WORD  wID 
)
override

Implements IShellBrowser.

Definition at line 2236 of file shellbrowser.cpp.

2237{
2239 return S_FALSE;
2240 return S_OK;
2241}
int WINAPI TranslateAcceleratorW(_In_ HWND, _In_ HACCEL, _In_ LPMSG)

◆ UpdateBackForwardState()

HRESULT STDMETHODCALLTYPE CShellBrowser::UpdateBackForwardState ( )
override

Implements IBrowserService.

Definition at line 2510 of file shellbrowser.cpp.

2511{
2512 return E_NOTIMPL;
2513}

◆ UpdateForwardBackState()

HRESULT CShellBrowser::UpdateForwardBackState ( )

Definition at line 1588 of file shellbrowser.cpp.

1589{
1590 CComPtr<ITravelLog> travelLog;
1591 CComPtr<ITravelEntry> unusedEntry;
1592 bool canGoBack;
1593 bool canGoForward;
1594 HRESULT hResult;
1595
1596 canGoBack = false;
1597 canGoForward = false;
1598 hResult = GetTravelLog(&travelLog);
1599 if (FAILED_UNEXPECTEDLY(hResult))
1600 return hResult;
1601 hResult = travelLog->GetTravelEntry(static_cast<IDropTarget *>(this), TLOG_BACK, &unusedEntry);
1602 if (SUCCEEDED(hResult))
1603 {
1604 canGoBack = true;
1605 unusedEntry.Release();
1606 }
1607 hResult = travelLog->GetTravelEntry(static_cast<IDropTarget *>(this), TLOG_FORE, &unusedEntry);
1608 if (SUCCEEDED(hResult))
1609 {
1610 canGoForward = true;
1611 unusedEntry.Release();
1612 }
1613 hResult = FireCommandStateChange(canGoBack, 2);
1614 hResult = FireCommandStateChange(canGoForward, 1);
1615 return S_OK;
1616}

Referenced by BrowseToPath().

◆ UpdateGotoMenu()

void CShellBrowser::UpdateGotoMenu ( HMENU  theMenu)

Definition at line 1630 of file shellbrowser.cpp.

1631{
1632 CComPtr<ITravelLog> travelLog;
1633 CComPtr<ITravelEntry> unusedEntry;
1634 int position;
1635 MENUITEMINFO menuItemInfo;
1636 HRESULT hResult;
1637
1639
1640 position = GetMenuItemCount(theMenu);
1641 hResult = GetTravelLog(&travelLog);
1642 if (FAILED_UNEXPECTEDLY(hResult))
1643 return;
1644
1645 hResult = travelLog->GetTravelEntry(static_cast<IDropTarget *>(this),
1646 TLOG_BACK,
1647 &unusedEntry);
1648
1649 if (SUCCEEDED(hResult))
1650 {
1652 unusedEntry.Release();
1653 }
1654 else
1656
1657 hResult = travelLog->GetTravelEntry(static_cast<IDropTarget *>(this),
1658 TLOG_FORE,
1659 &unusedEntry);
1660
1661 if (SUCCEEDED(hResult))
1662 {
1664 unusedEntry.Release();
1665 }
1666 else
1668
1669 SHEnableMenuItem(theMenu,
1672
1673 hResult = travelLog->InsertMenuEntries(static_cast<IDropTarget *>(this), theMenu, position,
1675 if (SUCCEEDED(hResult))
1676 {
1677 menuItemInfo.cbSize = sizeof(menuItemInfo);
1678 menuItemInfo.fMask = MIIM_TYPE | MIIM_ID;
1679 menuItemInfo.fType = MF_SEPARATOR;
1680 menuItemInfo.wID = IDM_GOTO_TRAVEL_SEP;
1681 InsertMenuItem(theMenu, position, TRUE, &menuItemInfo);
1682 }
1683}
#define IDM_GOTO_TRAVEL_SEP
Definition: resource.h:83
#define IDM_GOTO_TRAVEL_FIRST
Definition: resource.h:81
#define IDM_GOTO_FORWARD
Definition: resource.h:46
#define IDM_GOTO_TRAVEL_LAST
Definition: resource.h:82
#define IDM_GOTO_TRAVEL_LASTTARGET
Definition: resource.h:85
#define IDM_GOTO_BACK
Definition: resource.h:45
#define IDM_GOTO_TRAVEL_FIRSTTARGET
Definition: resource.h:84
void DeleteMenuItems(HMENU theMenu, unsigned int firstIDToDelete, unsigned int lastIDToDelete)
#define TLMENUF_BACKANDFORTH
Definition: shlobj.h:2729
#define TLMENUF_CHECKCURRENT
Definition: shlobj.h:2726
#define MIIM_ID
Definition: winuser.h:722
#define InsertMenuItem
Definition: winuser.h:5804
#define MF_SEPARATOR
Definition: winuser.h:137
#define MIIM_TYPE
Definition: winuser.h:725

Referenced by UpdateViewMenu().

◆ UpdateSecureLockIcon()

HRESULT STDMETHODCALLTYPE CShellBrowser::UpdateSecureLockIcon ( int  eSecureLock)
override

Implements IBrowserService2.

Definition at line 2718 of file shellbrowser.cpp.

2719{
2720 return E_NOTIMPL;
2721}

◆ UpdateUpState()

HRESULT CShellBrowser::UpdateUpState ( )

Definition at line 1618 of file shellbrowser.cpp.

1619{
1620 bool canGoUp;
1621 HRESULT hResult;
1622
1623 canGoUp = true;
1625 canGoUp = false;
1626 hResult = FireCommandStateChange(canGoUp, 3);
1627 return S_OK;
1628}

Referenced by BrowseToPath().

◆ UpdateViewMenu()

void CShellBrowser::UpdateViewMenu ( HMENU  theMenu)

Definition at line 1685 of file shellbrowser.cpp.

1686{
1687 CComPtr<ITravelLog> travelLog;
1688 HMENU gotoMenu;
1689 OLECMD commandList[5];
1690 HMENU toolbarMenuBar;
1691 HMENU toolbarMenu;
1692 MENUITEMINFO menuItemInfo;
1693 HRESULT hResult;
1694
1695 gotoMenu = SHGetMenuFromID(theMenu, FCIDM_MENU_EXPLORE);
1696 if (gotoMenu != NULL)
1697 UpdateGotoMenu(gotoMenu);
1698
1699 commandList[0].cmdID = ITID_TOOLBARBANDSHOWN;
1700 commandList[1].cmdID = ITID_ADDRESSBANDSHOWN;
1701 commandList[2].cmdID = ITID_LINKSBANDSHOWN;
1702 commandList[3].cmdID = ITID_TOOLBARLOCKED;
1703 commandList[4].cmdID = ITID_CUSTOMIZEENABLED;
1704
1706 CGID_PrivCITCommands, 5, commandList, NULL);
1707 if (FAILED_UNEXPECTEDLY(hResult))
1709 else
1710 {
1711 menuItemInfo.cbSize = sizeof(menuItemInfo);
1712 menuItemInfo.fMask = MIIM_SUBMENU;
1713 GetMenuItemInfo(theMenu, IDM_VIEW_TOOLBARS, FALSE, &menuItemInfo);
1714 DestroyMenu(menuItemInfo.hSubMenu);
1715
1716 toolbarMenuBar = LoadMenu(_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDM_CABINET_CONTEXTMENU));
1717 toolbarMenu = GetSubMenu(toolbarMenuBar, 0);
1718 RemoveMenu(toolbarMenuBar, 0, MF_BYPOSITION);
1719 DestroyMenu(toolbarMenuBar);
1720
1721 // TODO: Implement
1722 SHEnableMenuItem(toolbarMenu, IDM_TOOLBARS_STANDARDBUTTONS, commandList[0].cmdf & OLECMDF_ENABLED);
1723 SHEnableMenuItem(toolbarMenu, IDM_TOOLBARS_ADDRESSBAR, commandList[1].cmdf & OLECMDF_ENABLED);
1724 SHEnableMenuItem(toolbarMenu, IDM_TOOLBARS_LINKSBAR, commandList[2].cmdf & OLECMDF_ENABLED);
1725 SHEnableMenuItem(toolbarMenu, IDM_TOOLBARS_CUSTOMIZE, commandList[4].cmdf & OLECMDF_ENABLED);
1726
1727 SHCheckMenuItem(toolbarMenu, IDM_TOOLBARS_STANDARDBUTTONS, commandList[0].cmdf & OLECMDF_LATCHED);
1728 SHCheckMenuItem(toolbarMenu, IDM_TOOLBARS_ADDRESSBAR, commandList[1].cmdf & OLECMDF_LATCHED);
1729 SHCheckMenuItem(toolbarMenu, IDM_TOOLBARS_LINKSBAR, commandList[2].cmdf & OLECMDF_LATCHED);
1730 SHCheckMenuItem(toolbarMenu, IDM_TOOLBARS_LOCKTOOLBARS, commandList[3].cmdf & OLECMDF_LATCHED);
1731 if ((commandList[4].cmdf & OLECMDF_ENABLED) == 0)
1735
1736 menuItemInfo.cbSize = sizeof(menuItemInfo);
1737 menuItemInfo.fMask = MIIM_SUBMENU;
1738 menuItemInfo.hSubMenu = toolbarMenu;
1739 SetMenuItemInfo(theMenu, IDM_VIEW_TOOLBARS, FALSE, &menuItemInfo);
1740 }
1742}
void UpdateGotoMenu(HMENU theMenu)
#define IDM_VIEW_TOOLBARS
Definition: resource.h:29
#define IDM_TOOLBARS_LOCKTOOLBARS
Definition: resource.h:33
#define IDM_TOOLBARS_TEXTLABELS
Definition: resource.h:35
#define IDM_TOOLBARS_STANDARDBUTTONS
Definition: resource.h:30
#define IDM_CABINET_CONTEXTMENU
Definition: resource.h:87
#define IDM_TOOLBARS_GOBUTTON
Definition: resource.h:36
#define IDM_TOOLBARS_CUSTOMIZE
Definition: resource.h:34
#define IDM_VIEW_STATUSBAR
Definition: resource.h:37
#define IDM_TOOLBARS_ADDRESSBAR
Definition: resource.h:31
#define IDM_TOOLBARS_LINKSBAR
Definition: resource.h:32
HRESULT WINAPI IUnknown_QueryStatus(IUnknown *lpUnknown, REFGUID pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT *pCmdText)
Definition: ordinal.c:1044
DWORD WINAPI SHCheckMenuItem(HMENU hMenu, UINT uID, BOOL bCheck)
Definition: ordinal.c:1796
struct IOleCommandTarget::_tagOLECMD OLECMD
OLECMDF cmdf
Definition: olecmd.c:716
#define FCIDM_MENU_EXPLORE
Definition: shlobj.h:631
#define SetMenuItemInfo
Definition: winuser.h:5850
#define MIIM_SUBMENU
Definition: winuser.h:723
BOOL WINAPI RemoveMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
#define GetMenuItemInfo
Definition: winuser.h:5788

Referenced by OnInitMenuPopup().

◆ UpdateWindowList()

HRESULT STDMETHODCALLTYPE CShellBrowser::UpdateWindowList ( )
override

Implements IBrowserService.

Definition at line 2505 of file shellbrowser.cpp.

2506{
2507 return E_NOTIMPL;
2508}

◆ UpdateWindowTitle()

void CShellBrowser::UpdateWindowTitle ( )

Definition at line 3916 of file shellbrowser.cpp.

3917{
3919 SHGDNF flags = SHGDN_FORADDRESSBAR;
3920
3922 flags |= SHGDN_FORPARSING;
3923
3926}
static char title[]
Definition: ps.c:92
#define _countof(array)
Definition: sndvol32.h:68
BOOL fFullPathTitle
Definition: shlobj.h:2372

Referenced by BrowseToPath(), and RefreshCabinetState().

◆ v_CheckZoneCrossing()

HRESULT STDMETHODCALLTYPE CShellBrowser::v_CheckZoneCrossing ( LPCITEMIDLIST  pidl)
override

Definition at line 2925 of file shellbrowser.cpp.

2926{
2927 return E_NOTIMPL;
2928}

◆ v_MayGetNextToolbarFocus()

HRESULT STDMETHODCALLTYPE CShellBrowser::v_MayGetNextToolbarFocus ( LPMSG  lpMsg,
UINT  itbNext,
int  citb,
LPTOOLBARITEM pptbi,
HWND phwnd 
)
override

Implements IBrowserService2.

Definition at line 2885 of file shellbrowser.cpp.

2887{
2888 return E_NOTIMPL;
2889}

◆ v_MayTranslateAccelerator()

HRESULT STDMETHODCALLTYPE CShellBrowser::v_MayTranslateAccelerator ( MSG pmsg)
override

Implements IBrowserService2.

Definition at line 2906 of file shellbrowser.cpp.

2907{
2908 for (int i = 0; i < 3; i++)
2909 {
2910 if (IUnknown_TranslateAcceleratorIO(fClientBars[i].clientBar, pmsg) == S_OK)
2911 return S_OK;
2912 }
2913
2914 if (!fCurrentShellView)
2915 return S_FALSE;
2916
2917 return fCurrentShellView->TranslateAcceleratorW(pmsg);
2918}
HRESULT WINAPI IUnknown_TranslateAcceleratorIO(IUnknown *lpUnknown, LPMSG lpMsg)
Definition: ordinal.c:4263

◆ v_ShowHideChildWindows()

HRESULT STDMETHODCALLTYPE CShellBrowser::v_ShowHideChildWindows ( BOOL  fChildOnly)
override

Implements IBrowserService2.

Definition at line 2800 of file shellbrowser.cpp.

2801{
2802 return E_NOTIMPL;
2803}

◆ WindowProc()

LRESULT CALLBACK CShellBrowser::WindowProc ( HWND  hWnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 1382 of file shellbrowser.cpp.

1383{
1384 CShellBrowser *pThis = reinterpret_cast<CShellBrowser *>(hWnd);
1385 _ATL_MSG msg(pThis->m_hWnd, uMsg, wParam, lParam);
1386 LRESULT lResult;
1387 const _ATL_MSG *previousMessage;
1388 BOOL handled;
1389 WNDPROC saveWindowProc;
1390 HRESULT hResult;
1391
1392 hWnd = pThis->m_hWnd;
1393 previousMessage = pThis->m_pCurrentMsg;
1394 pThis->m_pCurrentMsg = &msg;
1395
1396 /* If the shell browser is initialized, let the menu band preprocess the messages */
1397 if (pThis->fCurrentDirectoryPIDL)
1398 {
1399 CComPtr<IMenuBand> menuBand;
1400 hResult = pThis->GetMenuBand(IID_PPV_ARG(IMenuBand, &menuBand));
1401 if (SUCCEEDED(hResult) && menuBand.p != NULL)
1402 {
1403 hResult = menuBand->TranslateMenuMessage(&msg, &lResult);
1404 if (hResult == S_OK)
1405 return lResult;
1406 uMsg = msg.message;
1407 wParam = msg.wParam;
1408 lParam = msg.lParam;
1409 }
1410 menuBand.Release();
1411 }
1412
1413 handled = pThis->ProcessWindowMessage(hWnd, uMsg, wParam, lParam, lResult, 0);
1414 ATLASSERT(pThis->m_pCurrentMsg == &msg);
1415 if (handled == FALSE)
1416 {
1417 if (uMsg == WM_NCDESTROY)
1418 {
1419 saveWindowProc = reinterpret_cast<WNDPROC>(::GetWindowLongPtr(hWnd, GWLP_WNDPROC));
1420 lResult = pThis->DefWindowProc(uMsg, wParam, lParam);
1421 if (saveWindowProc == reinterpret_cast<WNDPROC>(::GetWindowLongPtr(hWnd, GWLP_WNDPROC)))
1423 pThis->m_dwState |= WINSTATE_DESTROYED;
1424 }
1425 else
1426 lResult = pThis->DefWindowProc(uMsg, wParam, lParam);
1427 }
1428 pThis->m_pCurrentMsg = previousMessage;
1429 if (previousMessage == NULL && (pThis->m_dwState & WINSTATE_DESTROYED) != 0)
1430 {
1431 pThis->m_dwState &= ~WINSTATE_DESTROYED;
1432 pThis->m_hWnd = NULL;
1433 pThis->OnFinalMessage(hWnd);
1434 }
1435 return lResult;
1436}
#define ATLASSERT(x)
Definition: CComVariant.cpp:10
#define msg(x)
Definition: auth_time.c:54
HWND hWnd
Definition: settings.c:17
virtual BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID)=0
virtual void OnFinalMessage(HWND)
Definition: atlwin.h:1548
LRESULT DefWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: atlwin.h:1612
WNDPROC m_pfnSuperWindowProc
Definition: atlwin.h:1540
const _ATL_MSG * m_pCurrentMsg
Definition: atlwin.h:1380
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
#define GWLP_WNDPROC
Definition: treelist.c:66
#define WM_NCDESTROY
Definition: winuser.h:1684
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition: winuser.h:2906

Referenced by GetWindowProc().

Member Data Documentation

◆ BIHorizontalBaseBar

const int CShellBrowser::BIHorizontalBaseBar = 2
staticprivate

Definition at line 288 of file shellbrowser.cpp.

Referenced by GetBaseBar().

◆ BIInternetToolbar

◆ BIVerticalBaseBar

const int CShellBrowser::BIVerticalBaseBar = 1
staticprivate

Definition at line 287 of file shellbrowser.cpp.

Referenced by Exec(), and GetBaseBar().

◆ fClientBars

◆ fCurrentDirectoryPIDL

◆ fCurrentMenuBar

HMENU CShellBrowser::fCurrentMenuBar
private

◆ fCurrentShellFolder

CComPtr<IShellFolder> CShellBrowser::fCurrentShellFolder
private

Definition at line 291 of file shellbrowser.cpp.

Referenced by BrowseToPath(), and OnDestroy().

◆ fCurrentShellView

◆ fCurrentShellViewWindow

HWND CShellBrowser::fCurrentShellViewWindow
private

◆ fCurrentVertBar

GUID CShellBrowser::fCurrentVertBar
private

Definition at line 299 of file shellbrowser.cpp.

Referenced by Exec(), QueryStatus(), and ShowBand().

◆ fHistoryBindContext

IBindCtx* CShellBrowser::fHistoryBindContext
private

Definition at line 304 of file shellbrowser.cpp.

Referenced by CShellBrowser(), GetHistoryObject(), and LoadHistory().

◆ fHistoryObject

IOleObject* CShellBrowser::fHistoryObject
private

Definition at line 302 of file shellbrowser.cpp.

Referenced by CShellBrowser(), GetHistoryObject(), and LoadHistory().

◆ fHistoryStream

IStream* CShellBrowser::fHistoryStream
private

Definition at line 303 of file shellbrowser.cpp.

Referenced by CShellBrowser(), GetHistoryObject(), and LoadHistory().

◆ fStatusBar

HWND CShellBrowser::fStatusBar
private

◆ fToolbarProxy

CToolbarProxy CShellBrowser::fToolbarProxy
private

Definition at line 295 of file shellbrowser.cpp.

Referenced by GetControlWindow(), Initialize(), OnDestroy(), and SendControlMsg().

◆ fTravelLog

CComPtr<ITravelLog> CShellBrowser::fTravelLog
private

Definition at line 297 of file shellbrowser.cpp.

Referenced by BrowseObject(), GetTravelLog(), and OnDestroy().

◆ grfMode

DWORD CShellBrowser::grfMode

Definition at line 493 of file shellbrowser.cpp.

◆ m_hAccel

HACCEL CShellBrowser::m_hAccel
private

Definition at line 306 of file shellbrowser.cpp.

Referenced by OnCreate(), and TranslateAcceleratorSB().

◆ m_settings

◆ menuDsa

HDSA CShellBrowser::menuDsa
private

◆ override [1/4]

UINT WPARAM LPARAM lParam CShellBrowser::override

Definition at line 444 of file shellbrowser.cpp.

◆ override [2/4]

LPARAM lParam CShellBrowser::override

Definition at line 449 of file shellbrowser.cpp.

◆ override [3/4]

DWORD LPCWSTR pwszName CShellBrowser::override

Definition at line 493 of file shellbrowser.cpp.

◆ override [4/4]

WPARAM LPARAM lParam CShellBrowser::override

Definition at line 494 of file shellbrowser.cpp.

◆ uMsg

◆ wParam [1/2]

◆ wParam [2/2]

WPARAM CShellBrowser::wParam

Definition at line 494 of file shellbrowser.cpp.


The documentation for this class was generated from the following file: