You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
506 lines
23 KiB
506 lines
23 KiB
#ifndef _SHBROWS2_H
|
|
#define _SHBROWS2_H
|
|
|
|
#include "iface.h"
|
|
#include "commonsb.h"
|
|
#include "browmenu.h"
|
|
#include "bsmenu.h"
|
|
#include "fldset.h"
|
|
#include <iethread.h>
|
|
|
|
#define MAX_SB_TEXT_LEN 256
|
|
|
|
class CIEFrameAuto;
|
|
|
|
|
|
// Define structure to be used at head of state stream that is
|
|
// not dependent on 16 or 32 bits...
|
|
typedef struct _CABSHOLD // Cabinet Stream header
|
|
{
|
|
DWORD dwSize; // Offset to where the View streamed additional info
|
|
|
|
// First stuff from the window placement
|
|
DWORD flags;
|
|
DWORD showCmd;
|
|
POINTL ptMinPosition;
|
|
POINTL ptMaxPosition;
|
|
RECTL rcNormalPosition;
|
|
|
|
// Stuff from Folder Settings;
|
|
DWORD ViewMode; // View mode (FOLDERVIEWMODE values)
|
|
DWORD fFlags; // View options (FOLDERFLAGS bits)
|
|
DWORD TreeSplit; // Position of split in pixels
|
|
|
|
// Hot Key
|
|
DWORD dwHotkey; // Hotkey
|
|
|
|
WINVIEW wv;
|
|
} CABSHOLD;
|
|
|
|
typedef struct _CABSH // Cabinet Stream header
|
|
{
|
|
DWORD dwSize; // Offset to where the View streamed additional info
|
|
|
|
// First stuff from the window placement
|
|
DWORD flags;
|
|
DWORD showCmd;
|
|
POINTL ptMinPosition;
|
|
POINTL ptMaxPosition;
|
|
RECTL rcNormalPosition;
|
|
|
|
// Stuff from Folder Settings;
|
|
DWORD ViewMode; // View mode (FOLDERVIEWMODE values)
|
|
DWORD fFlags; // View options (FOLDERFLAGS bits)
|
|
DWORD TreeSplit; // Position of split in pixels
|
|
|
|
// Hot Key
|
|
DWORD dwHotkey; // Hotkey
|
|
|
|
WINVIEW wv;
|
|
|
|
DWORD fMask; // Flags specifying which fields are valid
|
|
SHELLVIEWID vid; // extended view id
|
|
DWORD dwVersionId; // CABSH_VER below
|
|
DWORD dwRevCount; // rev count of default settings when the folder was saved to the stream
|
|
} CABSH;
|
|
|
|
#define CABSHM_VIEWID 0x00000001
|
|
#define CABSHM_VERSION 0x00000002
|
|
#define CABSHM_REVCOUNT 0x00000004
|
|
|
|
#define CABSH_VER 1 // change this version whenever we want to change defaults
|
|
#define CABSH_WIN95_VER 0 // this was the pre-ie4 version number
|
|
|
|
class CTheater;
|
|
|
|
#define CSBSUPERCLASS CCommonBrowser
|
|
|
|
#define CSHELLBROWSER CShellBrowser2
|
|
class CShellBrowser2 :
|
|
public CSBSUPERCLASS
|
|
{
|
|
public:
|
|
// *** IUnknown methods ***
|
|
virtual STDMETHODIMP_(ULONG) AddRef(void) { return CSBSUPERCLASS::AddRef(); };
|
|
virtual STDMETHODIMP_(ULONG) Release(void) { return CSBSUPERCLASS::Release(); };
|
|
|
|
// IShellBrowser (same as IOleInPlaceFrame)
|
|
virtual STDMETHODIMP InsertMenusSB(HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths);
|
|
virtual STDMETHODIMP SetMenuSB(HMENU hmenuShared, HOLEMENU holemenuReserved, HWND hwnd);
|
|
virtual STDMETHODIMP RemoveMenusSB(HMENU hmenuShared);
|
|
virtual STDMETHODIMP EnableModelessSB(BOOL fEnable);
|
|
virtual STDMETHODIMP GetViewStateStream(DWORD grfMode, IStream **ppstm);
|
|
virtual STDMETHODIMP GetControlWindow(UINT id, HWND * lphwnd);
|
|
virtual STDMETHODIMP SendControlMsg(UINT id, UINT uMsg, WPARAM wParam,
|
|
LPARAM lParam, LRESULT *pret);
|
|
virtual STDMETHODIMP SetToolbarItems(LPTBBUTTON lpButtons, UINT nButtons, UINT uFlags);
|
|
virtual STDMETHODIMP BrowseObject(LPCITEMIDLIST pidl, UINT wFlags);
|
|
virtual STDMETHODIMP OnViewWindowActive(IShellView * psv);
|
|
|
|
// IServiceProvider
|
|
virtual STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void ** ppvObj);
|
|
|
|
// IOleCommandTarget
|
|
virtual STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD rgCmds[], OLECMDTEXT *pcmdtext);
|
|
virtual STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvarargIn, VARIANTARG *pvarargOut);
|
|
|
|
// IBrowserService
|
|
virtual STDMETHODIMP ShowControlWindow(UINT id, BOOL fShow);
|
|
virtual STDMETHODIMP IsControlWindowShown(UINT id, BOOL *pfShown);
|
|
virtual STDMETHODIMP SetTitle(IShellView* psv, LPCWSTR pszName);
|
|
virtual STDMETHODIMP UpdateWindowList(void);
|
|
virtual STDMETHODIMP SetFlags(DWORD dwFlags, DWORD dwFlagMask);
|
|
virtual STDMETHODIMP GetFlags(DWORD *pdwFlags);
|
|
virtual STDMETHODIMP RegisterWindow(BOOL fUnregister, int swc);
|
|
virtual STDMETHODIMP Offline(int iCmd);
|
|
virtual STDMETHODIMP SetReferrer ( LPITEMIDLIST pidl) ;
|
|
virtual STDMETHODIMP_(LRESULT) WndProcBS(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
virtual STDMETHODIMP OnCreate(LPCREATESTRUCT pcs);
|
|
virtual STDMETHODIMP_(LRESULT) OnCommand(WPARAM wParam, LPARAM lParam);
|
|
virtual STDMETHODIMP OnDestroy();
|
|
virtual STDMETHODIMP_(LRESULT) OnNotify(NMHDR * pnm);
|
|
virtual STDMETHODIMP OnSetFocus();
|
|
virtual STDMETHODIMP ReleaseShellView();
|
|
virtual STDMETHODIMP ActivatePendingView();
|
|
virtual STDMETHODIMP CreateViewWindow(IShellView* psvNew, IShellView* psvOld, LPRECT prcView, HWND* phwnd);
|
|
virtual STDMETHODIMP UpdateBackForwardState () ;
|
|
virtual STDMETHODIMP CreateBrowserPropSheetExt(REFIID, LPVOID *);
|
|
virtual STDMETHODIMP SetAsDefFolderSettings();
|
|
|
|
virtual STDMETHODIMP _TryShell2Rename( IShellView* psv, LPCITEMIDLIST pidlNew);
|
|
virtual STDMETHODIMP _NavigateToPidl( LPCITEMIDLIST pidl, DWORD grfHLNF, DWORD dwFlags);
|
|
virtual STDMETHODIMP v_MayTranslateAccelerator( MSG* pmsg);
|
|
virtual STDMETHODIMP _SwitchActivationNow( );
|
|
virtual STDMETHODIMP _Initialize(HWND hwnd, IUnknown *pauto);
|
|
virtual STDMETHODIMP _GetEffectiveClientArea(LPRECT lprectBorder, HMONITOR hmon);
|
|
|
|
virtual STDMETHODIMP_(LPSTREAM) v_GetViewStream(LPCITEMIDLIST pidl, DWORD grfMode, LPCWSTR pwszName);
|
|
|
|
// IDockingWindowSite
|
|
virtual STDMETHODIMP SetBorderSpaceDW(IUnknown* punkSrc, LPCBORDERWIDTHS pborderwidths);
|
|
|
|
// IInputSite
|
|
virtual STDMETHODIMP OnFocusChangeIS(IUnknown* punkSrc, BOOL fSetFocus);
|
|
virtual STDMETHODIMP ShowToolbar(IUnknown* punkSrc, BOOL fShow);
|
|
|
|
//IShellBrowserService
|
|
virtual STDMETHODIMP GetPropertyBag(DWORD dwFlags, REFIID riid, void** ppv);
|
|
|
|
|
|
BOOL IsCShellBrowser2() { return !_fSubclassed; };
|
|
|
|
protected:
|
|
CShellBrowser2();
|
|
virtual ~CShellBrowser2();
|
|
|
|
friend HRESULT CShellBrowser2_CreateInstance(HWND hwnd, void ** ppsb);
|
|
|
|
// topmost CBaseBrowser2 in a frameset (IE3/AOL/CIS/VB)
|
|
virtual STDMETHODIMP v_CheckZoneCrossing(LPCITEMIDLIST pidl){return _CheckZoneCrossing(pidl);};
|
|
virtual HRESULT _CheckZoneCrossing(LPCITEMIDLIST pidl);
|
|
|
|
// CShellBrowser2 virtuals
|
|
virtual LRESULT v_ForwardMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
virtual DWORD v_ShowControl(UINT iControl, int iCmd);
|
|
virtual STDMETHODIMP v_ShowHideChildWindows(BOOL fChildOnly = FALSE);
|
|
virtual void v_InitMembers();
|
|
virtual void v_SetIcon();
|
|
virtual void v_GetAppTitleTemplate(LPTSTR pszBuffer, size_t cchBuffer, LPTSTR pszTitle);
|
|
virtual LRESULT v_OnInitMenuPopup(HMENU hmenuPopup, int nIndex, BOOL fSystemMenu);
|
|
virtual void v_HandleFileSysChange(LONG lEvent, LPITEMIDLIST pidl1, LPITEMIDLIST pidl2);
|
|
virtual DWORD v_RestartFlags();
|
|
virtual void v_FillCabStateHeader(CABSH* pcabsh, FOLDERSETTINGS *pfs);
|
|
virtual void v_ParentFolder();
|
|
virtual BOOL v_OnContextMenu(WPARAM wParam, LPARAM lParam);
|
|
virtual BOOL v_IsIEModeBrowser();
|
|
virtual BOOL _CreateToolbar();
|
|
virtual STDMETHODIMP _PositionViewWindow(HWND hwnd, LPRECT prc);
|
|
virtual IStream * _GetITBarStream(BOOL fWebBrowser, DWORD grfMode);
|
|
|
|
//ViewStateStream related
|
|
virtual void v_GetDefaultSettings(IETHREADPARAM *pcv);
|
|
|
|
void _FillIEThreadParam(LPCITEMIDLIST pidl, IETHREADPARAM *piei);
|
|
virtual void _UpdateFolderSettings(LPCITEMIDLIST pidl);
|
|
|
|
BOOL _ShouldAllowNavigateParent();
|
|
BOOL _ShouldSaveWindowPlacement();
|
|
HRESULT _GetBSForBar(LPCWSTR pwszItem, IBandSite **ppbs);
|
|
void _UpdateBackForwardStateNow();
|
|
void _ExecAllBands(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvarargIn, VARIANTARG *pvarargOut);
|
|
void _HideToolbar(IUnknown *punk);
|
|
void _BandClosed(IUnknown *punk, DWORD dwBandID);
|
|
void _ShowHideProgress();
|
|
void _CloseAllParents();
|
|
void _OnConfirmedClose();
|
|
void _OnClose(BOOL fPushed);
|
|
void _AfterWindowCreated(IETHREADPARAM *piei);
|
|
BOOL _ValidTargetPidl(LPCITEMIDLIST pidl, BOOL *pfTranslateRoot);
|
|
LPITEMIDLIST _TranslateRoot(LPCITEMIDLIST pidl);
|
|
BOOL _GetVID(SHELLVIEWID *pvid);
|
|
void _UpdateRegFlags();
|
|
|
|
void _SaveState();
|
|
void _PropertyBagSaveState();
|
|
void _OldSaveState();
|
|
HRESULT _FillCabinetStateHeader(IStream *pstm, CABSH *cabsh);
|
|
BOOL _ReadSettingsFromStream(IStream *pstm, IETHREADPARAM *piei);
|
|
BOOL _ReadSettingsFromPropertyBag(IPropertyBag* ppb, IETHREADPARAM *piei);
|
|
BOOL _FillIEThreadParamFromCabsh(CABSH* pcabsh, IETHREADPARAM *piei);
|
|
HRESULT _CreateFakeNilPidl(LPITEMIDLIST *ppidl);
|
|
BOOL _IsPageInternet(LPCITEMIDLIST pidl);
|
|
HRESULT _GetPropertyBag(LPCITEMIDLIST pidl, DWORD dwFlags, REFIID riid, void** ppv);
|
|
LPCITEMIDLIST _GetPidl();
|
|
BOOL _DoesPidlRoam(LPCITEMIDLIST pidl);
|
|
void _LoadBrowserWindowSettings(IETHREADPARAM *piei, LPCITEMIDLIST pidl);
|
|
IDockingWindow* _GetITBar() { return _GetToolbarItem(ITB_ITBAR)->ptbar; }
|
|
HMENU _GetMenuFromID(UINT uID);
|
|
void _UpdateChildWindowSize(void);
|
|
void _GetAppTitle(LPTSTR pszBuffer, DWORD dwSize);
|
|
IMenuBand* _GetMenuBand(BOOL bDestroy);
|
|
BOOL _TranslateMenuMessage(HWND hwnd, UINT uMsg, WPARAM * pwParam, LPARAM * plParam, LRESULT * plRet);
|
|
void _ReloadTitle();
|
|
void _ReloadStatusbarIcon();
|
|
|
|
BOOL _OnTimer(UINT_PTR idTimer);
|
|
LRESULT _ToolbarOnNotify(LPNMHDR pnm);
|
|
LRESULT _OnInitMenuPopup(HMENU hmenuPopup, int nIndex, BOOL fSystemMenu);
|
|
BOOL _OnSysMenuClick(BOOL bLeftButton, WPARAM wParam, LPARAM lParam);
|
|
LRESULT _OnMenuSelect(WPARAM wParam, LPARAM lParam, UINT uHelpFlags);
|
|
void _SetMenuHelp(HMENU hmenu, UINT wID, LPCTSTR pszHelp);
|
|
void _SetBrowserBarMenuHelp(HMENU hmenu, UINT wID);
|
|
void _SetExternalBandMenuHelp(HMENU hmenu, UINT wID);
|
|
void _PruneMailNewsItems(HMENU hmenu);
|
|
void _SetTitle( LPCWSTR pwszName);
|
|
HRESULT _CreateFrameServices(void);
|
|
|
|
void _FavoriteOnCommand(HMENU hmenu, UINT idCmd);
|
|
|
|
void _CommonHandleFileSysChange(LONG lEvent, LPITEMIDLIST pidl1, LPITEMIDLIST pidl2);
|
|
void _FSChangeCheckClose(LPCITEMIDLIST pidl, BOOL fDisconnect);
|
|
void _OnFSNotify(WPARAM, LPARAM);
|
|
// replaced by CBaseBrowser2::NavigateToTLItem()
|
|
// void _RecentOnCommand(UINT idCmd);
|
|
LRESULT _FwdTBNotify(LPTBNOTIFY ptbn);
|
|
void _ToolTipFromCmd(LPTOOLTIPTEXT pnm);
|
|
void _AddFolderOptionsPage(PROPSHEETHEADER *ppsh);
|
|
void _AddAdvancedOptionsPage(PROPSHEETHEADER *ppsh);
|
|
|
|
void _IncrNetSessionCount();
|
|
void _DecrNetSessionCount();
|
|
|
|
friend LRESULT CALLBACK IEFrameWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
friend void CALLBACK BrowserThreadProc(IETHREADPARAM* piei);
|
|
|
|
void _ExecFileContext(UINT idCmd);
|
|
void _EnableFileContext(HMENU hmenuPopup);
|
|
LPITEMIDLIST _GetSubscriptionPidl();
|
|
HRESULT _GetBrowserBar(int idBar, BOOL fShow, IBandSite** ppbs, const CLSID* pclsid);
|
|
|
|
BANDCLASSINFO* _BandClassInfoFromCmdID(UINT idCmd);
|
|
|
|
void _AddBrowserBarMenuItems(HMENU hmenu);
|
|
HMENU _GetBrowserBarMenu();
|
|
int _IdBarFromCmdID(UINT idCmd);
|
|
int _eOnOffNotMunge(int eOnOffNot, UINT idCmd, UINT idBar);
|
|
void _SetBrowserBarState(UINT idCmd, const CLSID *pclsid, int eOnOffNot, LPCITEMIDLIST pidl = NULL);
|
|
const CLSID * _ShowHideBrowserBar(int idBar, const CLSID *pclsid, int eOnOff, LPCITEMIDLIST pidl);
|
|
HRESULT _GetBandSite(int idBar, IBandSite** ppbsSite, const CLSID *pclsid, int eOnOff);
|
|
HRESULT _EnsureAndNavigateBand(IBandSite* pbsSite, const CLSID* pclsid, LPCITEMIDLIST pidl = NULL);
|
|
const CLSID * _InfoShowClsid(int idBar, const CLSID *pclsid, int eOnOff, LPCITEMIDLIST pidl = NULL);
|
|
const CLSID * _InfoIdmToCLSID(UINT idCmd);
|
|
const CATID * _InfoIdmToCATID(UINT idCmd);
|
|
UINT _InfoCLSIDToIdm(const CLSID *pguid);
|
|
BOOL _IsSameToolbar(LPWSTR wszBarName, IUnknown *punkBar);
|
|
HRESULT _AddInfoBands(IBandSite *punkBandSite);
|
|
HRESULT _AddSearchBand(IBandSite *punkBandSite);
|
|
HRESULT DoCopyData(COPYDATASTRUCT *pCDS);
|
|
HRESULT DoRemoteNavigate();
|
|
void _OrganizeFavorites();
|
|
BOOL _ShouldForwardMenu(UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
void _TheaterMode(BOOL fShow, BOOL fRestorePrevious);
|
|
#ifdef DEBUG
|
|
void _DumpMenus(LPCTSTR pszMsg, BOOL bMsg);
|
|
#endif
|
|
BOOL _LoadBrowserHelperObjects(void);
|
|
|
|
void _CreateBrowserBarClose(HWND hwndParent);
|
|
void _SetTheaterBrowserBar();
|
|
void _SetMenu(HMENU hmenu);
|
|
HWND _GetCaptionWindow();
|
|
LRESULT _ThunkTTNotify(LPTOOLTIPTEXTA pnmTTTA);
|
|
BOOL _PrepareInternetToolbar(IETHREADPARAM* piei);
|
|
HRESULT _SaveITbarLayout(void);
|
|
static LRESULT CALLBACK DummyTBWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
DWORD _GetTempZone();
|
|
void _UpdateZonesPane(VARIANT *pvar);
|
|
void _DisplayFavoriteStatus(LPCITEMIDLIST pidl);
|
|
void _SendCurrentPage(DWORD dwSendAs);
|
|
void _OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
HRESULT _FreshenComponentCategoriesCache( BOOL bForceUpdate ) ;
|
|
void _QueryHKCRChanged() ;
|
|
|
|
void _PruneGoSubmenu(HMENU hmenu);
|
|
HMENU _MenuTemplate(int id, BOOL fShell);
|
|
|
|
void _MungeGoMyComputer(HMENU hmenuPopup);
|
|
void _OnGoMenuPopup(HMENU hmenuPopup);
|
|
void _OnViewMenuPopup(HMENU hmenuPopup);
|
|
void _OnToolsMenuPopup(HMENU hmenuPopup);
|
|
void _OnFileMenuPopup(HMENU hmenuPopup);
|
|
void _OnSearchMenuPopup(HMENU hmenuPopup);
|
|
void _OnHelpMenuPopup(HMENU hmenuPopup);
|
|
void _OnMailMenuPopup(HMENU hmenuPopup);
|
|
void _OnEditMenuPopup(HMENU hmenuPopup);
|
|
void _OnFindMenuPopup(HMENU hmenuPopup);
|
|
void _OnExplorerBarMenuPopup(HMENU hmenuPopup);
|
|
void _InsertTravelLogItems(HMENU hmenu, int nPos);
|
|
|
|
// methods and members for monitoring the current status bar code page and font
|
|
HRESULT _GetCodePage(UINT * puiCodePage, DWORD dwCharSet);
|
|
|
|
int _GetIconIndex(void);
|
|
HRESULT _QIExplorerBand(REFIID riid, void ** ppvObj);
|
|
virtual BOOL _CanHandleAcceleratorNow(void) {return _fActivated;}
|
|
|
|
bool _IsExplorerBandVisible (void);
|
|
|
|
#ifdef UNIX
|
|
BOOL _HandleActivation( WPARAM wParam );
|
|
#endif
|
|
|
|
void _GetDefaultWindowPlacement(HWND hwnd, HMONITOR hmon, WINDOWPLACEMENT* pwp);
|
|
|
|
// NT5 specific message handling:
|
|
BOOL _OnAppCommand(WPARAM wParam, LPARAM lParam);
|
|
LPARAM _WndProcBSNT5(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
|
|
// Menus: see dochost.h for an explanation from the dochost perspective.
|
|
// REARCHITECT (scotth): difference b/t _hmenuTemplate and _hmenuFull?
|
|
//
|
|
|
|
HMENU _hmenuTemplate;
|
|
HMENU _hmenuFull;
|
|
HMENU _hmenuBrowser; // Provided from dochost, used for _menulist
|
|
HMENU _hmenuCur; // Used to keep track. Needed when in Kiosk mode...
|
|
HMENU _hmenuPreMerged;
|
|
#ifdef DEBUG
|
|
HMENU _hmenuHelp; // Our help menu
|
|
#endif
|
|
|
|
HICON _hZoneIcon;
|
|
HANDLE _hEventComCat;
|
|
|
|
CMenuList _menulist; // Menu list for dispatching
|
|
|
|
IContextMenu2 *_pcmNsc; // iff we've popped up File Menu w/ NSC context item
|
|
IOleCommandTarget *_poctNsc; // iff we have visible name space control band
|
|
int _idMenuBand;
|
|
HWND _hwndStatus;
|
|
HWND _hwndProgress;
|
|
int _iTBOffset[3];
|
|
|
|
CBandSiteMenu *_pbsmInfo;
|
|
UINT _idmInfo; // selected View.BrowserBar submenu
|
|
|
|
IMenuBand* _pmb; // Use _GetMenuBand to access this
|
|
|
|
LPITEMIDLIST _pidlReferrer;
|
|
|
|
WINDOWPLACEMENT _wndpl; // Used to go into and out of full screen mode.
|
|
CLSID _clsidThis; // browser class ID
|
|
|
|
BITBOOL _fStatusBar : 1;
|
|
BITBOOL _fAutomation : 1; // was it launched from automation?
|
|
BITBOOL _fShowMenu : 1; // should we show menus?
|
|
BITBOOL _fForwardMenu : 1; // should we be forwarding menu messages?
|
|
BITBOOL _fNoLocalFileWarning: 1; // Do we directly execute local files without warning?
|
|
BITBOOL _fDispatchMenuMsgs:1; // TRUE: forward menu messages as appropriate
|
|
BITBOOL _fUISetByAutomation: 1; // has ui (things that go in view options) been set by automation?
|
|
BITBOOL _fDontSaveViewOptions:1; // Set if we should not save the view options on exit
|
|
BITBOOL _fSBWSaved :1; // single browser window saved yet?
|
|
BITBOOL _fInternetStart :1; // did we start on a net site?
|
|
BITBOOL _fWin95ViewState:1;
|
|
BITBOOL _fSubclassed :1; // are we subclassed?
|
|
BITBOOL _fVisitedNet :1; // did we ever hit the net in this session?
|
|
BITBOOL _fUnicode :1; // is our view window unicode?
|
|
BITBOOL _fKioskMode : 1; // Are we in full screen kiosk mode? (not the same as fullscreen/theater mode)
|
|
BITBOOL _fTitleSet :1; // has our content changed our title?
|
|
BITBOOL _fMarshalledDispatch:1; // have we marshalled dispatch?
|
|
BITBOOL _fMinimized :1; // Minimized or not.
|
|
BITBOOL _fReceivedDestroy: 1; // Received WM_DESTROY message
|
|
BITBOOL _fDisallowSizing: 1;
|
|
BITBOOL _fShowNetworkButtons:1; // Based off the registry, we display the network connect button
|
|
BITBOOL _fIgnoreNextMenuDeselect:1; // TRUE: Ignore the next deselection WM_MENUSELECT (hack)
|
|
|
|
BITBOOL _fActivated:1; // TRUE: the frame is set active, FALSE: the frame is inactive
|
|
BITBOOL _fClosingWindow:1; // TRUE: while closing, to avoid double-save and fault
|
|
|
|
BITBOOL _fDidRegisterWindow:1; // called RegisterWindow() which registers the window with the winlist
|
|
#ifdef UNIX
|
|
BITBOOL _fSetAddressBarFocus:1;
|
|
#endif
|
|
#ifdef NO_MARSHALLING
|
|
BITBOOL _fDelayedClose:1; // Used to mark windows for delay close.
|
|
BITBOOL _fOnIEThread:1; // used to flag if we are not running on the main thread
|
|
#endif
|
|
BITBOOL _fUpdateBackForwardPosted:1; // have we posted to update the back/forward state?
|
|
BITBOOL _fValidComCatCache ; // Have we ensured that the component cache is valid
|
|
|
|
BITBOOL _fShowFortezza : 1; // status of the Fortezza menu
|
|
BITBOOL _fRunningInIexploreExe:1; // are we running in iexplore.exe
|
|
BITBOOL _fShowSynchronize : 1; // should we show Tools|Synchronize?
|
|
BITBOOL _fNilViewStream : 1; // CabView settings were loaded for unknown pidl.
|
|
|
|
BITBOOL _fAppendIEToCaptionBar : 1; // Does the NSE want Append " - IE" to the captionbar display name? See IBrowserFrameOptions
|
|
BITBOOL _fAddDialUpRef : 1; // Does the NSE want a ref on the modem connection while browsed to this folder? See IBrowserFrameOptions
|
|
BITBOOL _fUseIEToolbar : 1; // Does the NSE want to use the IE style toolbar? See IBrowserFrameOptions
|
|
BITBOOL _fEnableOfflineFeature : 1; // Does the NSE want to enable the IE Offline feature? See IBrowserFrameOptions
|
|
BITBOOL _fUseIEPersistence : 1; // Does the NSE want to use IE type persistence? Window pos, size, icon layout. See IBrowserFrameOptions
|
|
BITBOOL _fInRefresh : 1; // Ignore refresh messages (FCIDM_REFRESH) if we are currently processing a refresh. (Prevents recursion death)
|
|
|
|
UINT _idmComm; // selected View.BrowserBar submenu
|
|
UINT _iCommOffset; // Start position in dynamically loaded comp categories
|
|
|
|
ULONG _uFSNotify;
|
|
|
|
int _iSynchronizePos;
|
|
TCHAR *_pszSynchronizeText; // What is Tools|Synchronize in your language?
|
|
|
|
// Window list related (also _fMarshalledDispatch above)
|
|
IShellWindows* _psw;
|
|
int _swcRegistered; // the SWC_* that this window is in the winlist as
|
|
|
|
// Item ContextMenu
|
|
IContextMenu3 * _pcm;
|
|
long _dwRegisterWinList; // Have we registered with the windows list
|
|
|
|
HWND _hwndDummyTB;
|
|
IExplorerToolbar* _pxtb;
|
|
int _nTBTextRows;
|
|
|
|
// For the two members below, see notes above CShellBrowser2::_SwitchActivationNow
|
|
TBBUTTON * _lpButtons;
|
|
int _nButtons;
|
|
|
|
TBBUTTON * _lpPendingButtons;
|
|
int _nButtonsPending;
|
|
|
|
IContextMenu3* _pcmSearch;// new style
|
|
IContextMenu* _pcmFind; // old style find context menu
|
|
|
|
CTheater *_ptheater;
|
|
|
|
LPITEMIDLIST _pidlLastHist;
|
|
LPITEMIDLIST _pidlMenuSelect;
|
|
|
|
UINT _uiZonePane;
|
|
IInternetSecurityManager * _pism;
|
|
HMENU _hfm;
|
|
|
|
DWORD _dwRevCount; // rev count of the global window settings
|
|
UINT _nMBIgnoreNextDeselect;
|
|
IUnknown *_punkMsgLoop;
|
|
|
|
#ifdef NO_MARSHALLING
|
|
BOOL _fReallyClosed;
|
|
#endif
|
|
|
|
// _PositionViewWindow
|
|
HWND _hwndDelayedSize;
|
|
RECT _rcDelayedSize;
|
|
BOOL _fHaveDelayedSize;
|
|
|
|
private:
|
|
HRESULT _SetBrowserFrameOptions(LPCITEMIDLIST pidl);
|
|
HRESULT _ReplaceCmdLine(LPTSTR pszCmdLine, DWORD cchSize);
|
|
};
|
|
|
|
BOOL FindBrowserWindow(void);
|
|
|
|
//
|
|
// Useful functions.
|
|
//
|
|
|
|
STDAPI_(BOOL) AddToRestartList(UINT flags, LPCITEMIDLIST pidl);
|
|
STDAPI_(BOOL) OpenFolderWindow(IETHREADPARAM* pieiIn);
|
|
HMENU _MenuTemplate(int id, BOOL bNukeTools);
|
|
|
|
#define INFOBAR_TBNAME L"BrowserBar"
|
|
#ifndef UNIX
|
|
#define INFOBAR_WIDTH 204
|
|
#else
|
|
#define INFOBAR_WIDTH 277
|
|
#endif
|
|
#define COMMBAR_TBNAME L"CommBar"
|
|
#define COMMBAR_HEIGHT 100
|
|
|
|
// Constants for different Browser/Info BARs
|
|
#define IDBAR_INFO 1
|
|
#define IDBAR_COMM 2
|
|
#define IDBAR_VERTICAL IDBAR_INFO
|
|
#define IDBAR_HORIZONTAL IDBAR_COMM
|
|
#define IDBAR_INVALID 42
|
|
|
|
#endif // _SHBROWS2_H
|