#ifndef _SHBROWS2_H #define _SHBROWS2_H #include "iface.h" #include "commonsb.h" #include "browmenu.h" #include "bsmenu.h" #include "fldset.h" #include #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