mirror of
https://github.com/reactos/reactos.git
synced 2025-06-05 17:30:32 +00:00
[BROWSEUI] Implement ShellBrowser F11 fullscreen mode (#7844)
This commit is contained in:
parent
cc8ec38a87
commit
aa4fac61c8
27 changed files with 211 additions and 68 deletions
|
@ -167,7 +167,7 @@ private:
|
||||||
STDMETHOD(GetWindow)(HWND *lphwnd) override;
|
STDMETHOD(GetWindow)(HWND *lphwnd) override;
|
||||||
STDMETHOD(ContextSensitiveHelp)(BOOL fEnterMode) override;
|
STDMETHOD(ContextSensitiveHelp)(BOOL fEnterMode) override;
|
||||||
|
|
||||||
// *** IDockingWindow methods ***
|
// *** IDockingWindowSite methods ***
|
||||||
STDMETHOD(GetBorderDW)(IUnknown* punkObj, LPRECT prcBorder) override;
|
STDMETHOD(GetBorderDW)(IUnknown* punkObj, LPRECT prcBorder) override;
|
||||||
STDMETHOD(RequestBorderSpaceDW)(IUnknown* punkObj, LPCBORDERWIDTHS pbw) override;
|
STDMETHOD(RequestBorderSpaceDW)(IUnknown* punkObj, LPCBORDERWIDTHS pbw) override;
|
||||||
STDMETHOD(SetBorderSpaceDW)(IUnknown* punkObj, LPCBORDERWIDTHS pbw) override;
|
STDMETHOD(SetBorderSpaceDW)(IUnknown* punkObj, LPCBORDERWIDTHS pbw) override;
|
||||||
|
@ -1192,7 +1192,7 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::QueryStatus(const GUID *pguidCmdGrou
|
||||||
break;
|
break;
|
||||||
case ITID_MENUBANDSHOWN: // Menubar band visibility
|
case ITID_MENUBANDSHOWN: // Menubar band visibility
|
||||||
prgCmds->cmdf = OLECMDF_SUPPORTED;
|
prgCmds->cmdf = OLECMDF_SUPPORTED;
|
||||||
if (fMenuBar)
|
if (IsBandVisible(ITBBID_MENUBAND) == S_OK)
|
||||||
prgCmds->cmdf |= OLECMDF_LATCHED;
|
prgCmds->cmdf |= OLECMDF_LATCHED;
|
||||||
break;
|
break;
|
||||||
case ITID_AUTOHIDEENABLED: // Auto hide enabled/disabled
|
case ITID_AUTOHIDEENABLED: // Auto hide enabled/disabled
|
||||||
|
@ -1233,6 +1233,8 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::Exec(const GUID *pguidCmdGroup, DWOR
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case ITID_TOOLBARBANDSHOWN:
|
case ITID_TOOLBARBANDSHOWN:
|
||||||
return ToggleBandVisibility(ITBBID_TOOLSBAND);
|
return ToggleBandVisibility(ITBBID_TOOLSBAND);
|
||||||
|
case ITID_MENUBANDSHOWN:
|
||||||
|
return ToggleBandVisibility(ITBBID_MENUBAND);
|
||||||
case ITID_ADDRESSBANDSHOWN:
|
case ITID_ADDRESSBANDSHOWN:
|
||||||
return ToggleBandVisibility(ITBBID_ADDRESSBAND);
|
return ToggleBandVisibility(ITBBID_ADDRESSBAND);
|
||||||
case ITID_LINKSBANDSHOWN:
|
case ITID_LINKSBANDSHOWN:
|
||||||
|
|
|
@ -174,6 +174,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -181,6 +181,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -192,6 +192,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -183,6 +183,7 @@ BEGIN
|
||||||
"Q", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"Q", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -181,6 +181,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -181,6 +181,7 @@ BEGIN
|
||||||
"Q", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"Q", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -192,6 +192,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -176,6 +176,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -174,6 +174,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -192,6 +192,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -193,6 +193,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -174,6 +174,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -192,6 +192,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -183,6 +183,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -176,6 +176,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -182,6 +182,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -182,6 +182,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -183,6 +183,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -193,6 +193,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -176,6 +176,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -182,6 +182,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -196,6 +196,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -198,6 +198,7 @@ BEGIN
|
||||||
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EXPLORERBAR_SEARCH, VIRTKEY, CONTROL, NOINVERT
|
||||||
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
"I", IDM_EXPLORERBAR_FAVORITES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
"H", IDM_EXPLORERBAR_HISTORY, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
VK_F11, FCIDM_BROWSER_TOGGLEFULLSCREEN, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
/* Strings */
|
/* Strings */
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
// FCIDM_BROWSERFIRST..LAST: 0xa000..0xbf00
|
||||||
#define IDM_FILE_CLOSE 0xA021
|
#define IDM_FILE_CLOSE 0xA021
|
||||||
#define IDM_FILE_EXPLORE_MENU 0xA027
|
#define IDM_FILE_EXPLORE_MENU 0xA027
|
||||||
#define IDM_BACKSPACE 0xA032
|
#define IDM_BACKSPACE 0xA032
|
||||||
|
@ -63,6 +64,7 @@
|
||||||
#define IDM_BAND_MENU 269
|
#define IDM_BAND_MENU 269
|
||||||
#define IDM_BAND_TITLE 0xA200
|
#define IDM_BAND_TITLE 0xA200
|
||||||
#define IDM_BAND_CLOSE 0xA201
|
#define IDM_BAND_CLOSE 0xA201
|
||||||
|
#define FCIDM_BROWSER_TOGGLEFULLSCREEN 0xA21B
|
||||||
|
|
||||||
#define IDM_POPUPMENU 2001
|
#define IDM_POPUPMENU 2001
|
||||||
#define IDM_LARGE_ICONS 2002
|
#define IDM_LARGE_ICONS 2002
|
||||||
|
|
|
@ -129,6 +129,19 @@ BOOL createNewStuff = false;
|
||||||
// this class is private to browseui.dll and is not registered externally?
|
// this class is private to browseui.dll and is not registered externally?
|
||||||
//DEFINE_GUID(CLSID_ShellFldSetExt, 0x6D5313C0, 0x8C62, 0x11D1, 0xB2, 0xCD, 0x00, 0x60, 0x97, 0xDF, 0x8C, 0x11);
|
//DEFINE_GUID(CLSID_ShellFldSetExt, 0x6D5313C0, 0x8C62, 0x11D1, 0xB2, 0xCD, 0x00, 0x60, 0x97, 0xDF, 0x8C, 0x11);
|
||||||
|
|
||||||
|
static void GetWindowMonitorInfo(HWND hWnd, MONITORINFO &mi)
|
||||||
|
{
|
||||||
|
HMONITOR hMon = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST);
|
||||||
|
mi.cbSize = sizeof(mi);
|
||||||
|
if (!hMon || !GetMonitorInfo(hMon, &mi))
|
||||||
|
{
|
||||||
|
mi.rcMonitor.left = mi.rcMonitor.top = 0;
|
||||||
|
mi.rcMonitor.right = GetSystemMetrics(SM_CXFULLSCREEN);
|
||||||
|
mi.rcMonitor.bottom = GetSystemMetrics(SM_CYFULLSCREEN);
|
||||||
|
SystemParametersInfo(SPI_GETWORKAREA, 0, &mi.rcWork, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DeleteMenuItems(HMENU theMenu, unsigned int firstIDToDelete, unsigned int lastIDToDelete)
|
void DeleteMenuItems(HMENU theMenu, unsigned int firstIDToDelete, unsigned int lastIDToDelete)
|
||||||
{
|
{
|
||||||
MENUITEMINFO menuItemInfo;
|
MENUITEMINFO menuItemInfo;
|
||||||
|
@ -196,16 +209,12 @@ private:
|
||||||
|
|
||||||
void CToolbarProxy::Initialize(HWND parent, IUnknown *explorerToolbar)
|
void CToolbarProxy::Initialize(HWND parent, IUnknown *explorerToolbar)
|
||||||
{
|
{
|
||||||
HWND myWindow;
|
HWND myWindow = SHCreateWorkerWindowW(0, parent, 0, WS_CHILD, NULL, 0);
|
||||||
HRESULT hResult;
|
|
||||||
|
|
||||||
myWindow = SHCreateWorkerWindowW(0, parent, 0, WS_CHILD, NULL, 0);
|
|
||||||
if (myWindow != NULL)
|
if (myWindow != NULL)
|
||||||
{
|
{
|
||||||
SubclassWindow(myWindow);
|
SubclassWindow(myWindow);
|
||||||
SetWindowPos(NULL, -32000, -32000, 0, 0, SWP_NOOWNERZORDER | SWP_NOZORDER);
|
SetWindowPos(NULL, -32000, -32000, 0, 0, SWP_NOOWNERZORDER | SWP_NOZORDER);
|
||||||
hResult = explorerToolbar->QueryInterface(
|
explorerToolbar->QueryInterface(IID_PPV_ARG(IExplorerToolbar, &fExplorerToolbar));
|
||||||
IID_PPV_ARG(IExplorerToolbar, &fExplorerToolbar));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,15 +226,12 @@ void CToolbarProxy::Destroy()
|
||||||
|
|
||||||
LRESULT CToolbarProxy::OnAddBitmap(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
|
LRESULT CToolbarProxy::OnAddBitmap(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
|
||||||
{
|
{
|
||||||
long int result;
|
long result = 0;
|
||||||
HRESULT hResult;
|
|
||||||
|
|
||||||
result = 0;
|
|
||||||
if (fExplorerToolbar.p != NULL)
|
if (fExplorerToolbar.p != NULL)
|
||||||
{
|
{
|
||||||
hResult = fExplorerToolbar->AddBitmap(&CGID_ShellBrowser, 1, (long)wParam,
|
fExplorerToolbar->AddBitmap(&CGID_ShellBrowser, 1, (long)wParam,
|
||||||
reinterpret_cast<TBADDBITMAP *>(lParam), &result, RGB(192, 192, 192));
|
reinterpret_cast<TBADDBITMAP *>(lParam), &result, RGB(192, 192, 192));
|
||||||
hResult = fExplorerToolbar->AddBitmap(&CGID_ShellBrowser, 2, (long)wParam,
|
fExplorerToolbar->AddBitmap(&CGID_ShellBrowser, 2, (long)wParam,
|
||||||
reinterpret_cast<TBADDBITMAP *>(lParam), &result, RGB(192, 192, 192));
|
reinterpret_cast<TBADDBITMAP *>(lParam), &result, RGB(192, 192, 192));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
@ -233,12 +239,9 @@ LRESULT CToolbarProxy::OnAddBitmap(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
|
||||||
|
|
||||||
LRESULT CToolbarProxy::OnForwardMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
|
LRESULT CToolbarProxy::OnForwardMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
|
||||||
{
|
{
|
||||||
LRESULT result;
|
LRESULT result = 0;
|
||||||
HRESULT hResult;
|
|
||||||
|
|
||||||
result = 0;
|
|
||||||
if (fExplorerToolbar.p != NULL)
|
if (fExplorerToolbar.p != NULL)
|
||||||
hResult = fExplorerToolbar->SendToolbarMsg(&CGID_ShellBrowser, uMsg, wParam, lParam, &result);
|
fExplorerToolbar->SendToolbarMsg(&CGID_ShellBrowser, uMsg, wParam, lParam, &result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,6 +275,7 @@ class CShellBrowser :
|
||||||
public MyIConnectionPointImpl<CShellBrowser, &DIID_DWebBrowserEvents>
|
public MyIConnectionPointImpl<CShellBrowser, &DIID_DWebBrowserEvents>
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
enum { BSF_ROS_REGBROWSER = 0x04, BSF_ROS_KIOSK = 0x08 }; // Custom values
|
||||||
class barInfo
|
class barInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -310,6 +314,7 @@ private:
|
||||||
SBFOLDERSETTINGS m_deffoldersettings;
|
SBFOLDERSETTINGS m_deffoldersettings;
|
||||||
DWORD m_BrowserSvcFlags;
|
DWORD m_BrowserSvcFlags;
|
||||||
bool m_Destroyed;
|
bool m_Destroyed;
|
||||||
|
BYTE m_NonFullscreenState;
|
||||||
public:
|
public:
|
||||||
#if 0
|
#if 0
|
||||||
ULONG InternalAddRef()
|
ULONG InternalAddRef()
|
||||||
|
@ -341,13 +346,13 @@ public:
|
||||||
HRESULT ShowBand(const CLSID &classID, bool vertical);
|
HRESULT ShowBand(const CLSID &classID, bool vertical);
|
||||||
HRESULT NavigateToParent();
|
HRESULT NavigateToParent();
|
||||||
HRESULT DoFolderOptions();
|
HRESULT DoFolderOptions();
|
||||||
HRESULT ApplyBrowserDefaultFolderSettings(IShellView *pvs);
|
HRESULT ApplyBrowserDefaultFolderSettings(IShellView *pSV);
|
||||||
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||||
void RepositionBars();
|
void RepositionBars();
|
||||||
HRESULT BuildExplorerBandMenu();
|
HRESULT BuildExplorerBandMenu();
|
||||||
HRESULT BuildExplorerBandCategory(HMENU hBandsMenu, CATID category, DWORD dwPos, UINT *nbFound);
|
HRESULT BuildExplorerBandCategory(HMENU hBandsMenu, CATID category, DWORD dwPos, UINT *nbFound);
|
||||||
BOOL IsBuiltinBand(CLSID &bandID);
|
BOOL IsBuiltinBand(CLSID &bandID);
|
||||||
virtual WNDPROC GetWindowProc()
|
virtual WNDPROC GetWindowProc() override
|
||||||
{
|
{
|
||||||
return WindowProc;
|
return WindowProc;
|
||||||
}
|
}
|
||||||
|
@ -355,6 +360,7 @@ public:
|
||||||
HRESULT FireNavigateComplete(const wchar_t *newDirectory);
|
HRESULT FireNavigateComplete(const wchar_t *newDirectory);
|
||||||
HRESULT FireCommandStateChange(bool newState, int commandID);
|
HRESULT FireCommandStateChange(bool newState, int commandID);
|
||||||
HRESULT FireCommandStateChangeAll();
|
HRESULT FireCommandStateChangeAll();
|
||||||
|
HRESULT FireEvent_VBOOL(DISPID dispIdMember, VARIANT_BOOL Param1);
|
||||||
HRESULT UpdateForwardBackState();
|
HRESULT UpdateForwardBackState();
|
||||||
HRESULT UpdateUpState();
|
HRESULT UpdateUpState();
|
||||||
void UpdateGotoMenu(HMENU theMenu);
|
void UpdateGotoMenu(HMENU theMenu);
|
||||||
|
@ -364,6 +370,8 @@ public:
|
||||||
void UpdateWindowTitle();
|
void UpdateWindowTitle();
|
||||||
void SaveITBarLayout();
|
void SaveITBarLayout();
|
||||||
|
|
||||||
|
inline HWND GetTopLevelBrowserWindow() { return m_hWnd; }
|
||||||
|
|
||||||
/* // *** IDockingWindowFrame methods ***
|
/* // *** IDockingWindowFrame methods ***
|
||||||
STDMETHOD(AddToolbar)(IUnknown *punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) override;
|
STDMETHOD(AddToolbar)(IUnknown *punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) override;
|
||||||
STDMETHOD(RemoveToolbar)(IUnknown *punkSrc, DWORD dwRemoveFlags) override;
|
STDMETHOD(RemoveToolbar)(IUnknown *punkSrc, DWORD dwRemoveFlags) override;
|
||||||
|
@ -627,6 +635,7 @@ public:
|
||||||
LRESULT OnGoHome(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 OnAddToFavorites(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
|
||||||
LRESULT OnOrganizeFavorites(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
|
LRESULT OnOrganizeFavorites(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
|
||||||
|
LRESULT OnToggleFullscreen(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
|
||||||
LRESULT OnToggleStatusBarVisible(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 OnToggleToolbarLock(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
|
||||||
LRESULT OnToggleToolbarBandVisible(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
|
LRESULT OnToggleToolbarBandVisible(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
|
||||||
|
@ -680,6 +689,7 @@ public:
|
||||||
COMMAND_ID_HANDLER(IDM_FAVORITES_ORGANIZEFAVORITES, OnOrganizeFavorites)
|
COMMAND_ID_HANDLER(IDM_FAVORITES_ORGANIZEFAVORITES, OnOrganizeFavorites)
|
||||||
COMMAND_ID_HANDLER(IDM_VIEW_STATUSBAR, OnToggleStatusBarVisible)
|
COMMAND_ID_HANDLER(IDM_VIEW_STATUSBAR, OnToggleStatusBarVisible)
|
||||||
COMMAND_ID_HANDLER(IDM_VIEW_REFRESH, OnRefresh)
|
COMMAND_ID_HANDLER(IDM_VIEW_REFRESH, OnRefresh)
|
||||||
|
COMMAND_ID_HANDLER(FCIDM_BROWSER_TOGGLEFULLSCREEN, OnToggleFullscreen)
|
||||||
COMMAND_ID_HANDLER(IDM_TOOLBARS_LOCKTOOLBARS, OnToggleToolbarLock)
|
COMMAND_ID_HANDLER(IDM_TOOLBARS_LOCKTOOLBARS, OnToggleToolbarLock)
|
||||||
COMMAND_ID_HANDLER(IDM_TOOLBARS_STANDARDBUTTONS, OnToggleToolbarBandVisible)
|
COMMAND_ID_HANDLER(IDM_TOOLBARS_STANDARDBUTTONS, OnToggleToolbarBandVisible)
|
||||||
COMMAND_ID_HANDLER(IDM_TOOLBARS_ADDRESSBAR, OnToggleAddressBandVisible)
|
COMMAND_ID_HANDLER(IDM_TOOLBARS_ADDRESSBAR, OnToggleAddressBandVisible)
|
||||||
|
@ -814,14 +824,14 @@ HRESULT CShellBrowser::Initialize()
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CShellBrowser::ApplyBrowserDefaultFolderSettings(IShellView *pvs)
|
HRESULT CShellBrowser::ApplyBrowserDefaultFolderSettings(IShellView *pSV)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
if (pvs)
|
if (pSV)
|
||||||
{
|
{
|
||||||
m_settings.Save();
|
m_settings.Save();
|
||||||
SBFOLDERSETTINGS &sbfs = m_deffoldersettings, defsbfs;
|
SBFOLDERSETTINGS &sbfs = m_deffoldersettings, defsbfs;
|
||||||
if (FAILED(pvs->GetCurrentInfo(&sbfs.FolderSettings)))
|
if (FAILED(pSV->GetCurrentInfo(&sbfs.FolderSettings)))
|
||||||
{
|
{
|
||||||
defsbfs.InitializeDefaults();
|
defsbfs.InitializeDefaults();
|
||||||
sbfs = defsbfs;
|
sbfs = defsbfs;
|
||||||
|
@ -1152,14 +1162,14 @@ HRESULT CShellBrowser::BrowseToPath(IShellFolder *newShellFolder,
|
||||||
UpdateWindowTitle();
|
UpdateWindowTitle();
|
||||||
|
|
||||||
LPCITEMIDLIST pidlChild;
|
LPCITEMIDLIST pidlChild;
|
||||||
INT index, indexOpen;
|
|
||||||
HIMAGELIST himlSmall, himlLarge;
|
HIMAGELIST himlSmall, himlLarge;
|
||||||
|
|
||||||
CComPtr<IShellFolder> sf;
|
CComPtr<IShellFolder> sf;
|
||||||
hResult = SHBindToParent(absolutePIDL, IID_PPV_ARG(IShellFolder, &sf), &pidlChild);
|
hResult = SHBindToParent(absolutePIDL, IID_PPV_ARG(IShellFolder, &sf), &pidlChild);
|
||||||
if (SUCCEEDED(hResult))
|
if (SUCCEEDED(hResult))
|
||||||
{
|
{
|
||||||
index = SHMapPIDLToSystemImageListIndex(sf, pidlChild, &indexOpen);
|
INT indexOpen;
|
||||||
|
SHMapPIDLToSystemImageListIndex(sf, pidlChild, &indexOpen);
|
||||||
|
|
||||||
Shell_GetImageLists(&himlLarge, &himlSmall);
|
Shell_GetImageLists(&himlLarge, &himlSmall);
|
||||||
|
|
||||||
|
@ -1619,9 +1629,9 @@ HRESULT CShellBrowser::FireEvent(DISPID dispIdMember, int argCount, VARIANT *arg
|
||||||
if (*pp != NULL)
|
if (*pp != NULL)
|
||||||
{
|
{
|
||||||
CComPtr<IDispatch> theDispatch;
|
CComPtr<IDispatch> theDispatch;
|
||||||
|
|
||||||
hResult = (*pp)->QueryInterface(IID_PPV_ARG(IDispatch, &theDispatch));
|
hResult = (*pp)->QueryInterface(IID_PPV_ARG(IDispatch, &theDispatch));
|
||||||
hResult = theDispatch->Invoke(dispIdMember, GUID_NULL, 0, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL);
|
if (SUCCEEDED(hResult))
|
||||||
|
hResult = theDispatch->Invoke(dispIdMember, GUID_NULL, 0, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
pp++;
|
pp++;
|
||||||
}
|
}
|
||||||
|
@ -1631,9 +1641,9 @@ HRESULT CShellBrowser::FireEvent(DISPID dispIdMember, int argCount, VARIANT *arg
|
||||||
if (*pp != NULL)
|
if (*pp != NULL)
|
||||||
{
|
{
|
||||||
CComPtr<IDispatch> theDispatch;
|
CComPtr<IDispatch> theDispatch;
|
||||||
|
|
||||||
hResult = (*pp)->QueryInterface(IID_PPV_ARG(IDispatch, &theDispatch));
|
hResult = (*pp)->QueryInterface(IID_PPV_ARG(IDispatch, &theDispatch));
|
||||||
hResult = theDispatch->Invoke(dispIdMember, GUID_NULL, 0, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL);
|
if (SUCCEEDED(hResult))
|
||||||
|
hResult = theDispatch->Invoke(dispIdMember, GUID_NULL, 0, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
pp++;
|
pp++;
|
||||||
}
|
}
|
||||||
|
@ -1676,6 +1686,14 @@ HRESULT CShellBrowser::FireCommandStateChangeAll()
|
||||||
return FireCommandStateChange(false, -1);
|
return FireCommandStateChange(false, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT CShellBrowser::FireEvent_VBOOL(DISPID dispIdMember, VARIANT_BOOL Param1)
|
||||||
|
{
|
||||||
|
VARIANT vArgs[1];
|
||||||
|
V_VT(&vArgs[0]) = VT_BOOL;
|
||||||
|
V_BOOL(&vArgs[0]) = Param1 ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
|
return FireEvent(dispIdMember, 1, vArgs);
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT CShellBrowser::UpdateForwardBackState()
|
HRESULT CShellBrowser::UpdateForwardBackState()
|
||||||
{
|
{
|
||||||
CComPtr<ITravelLog> travelLog;
|
CComPtr<ITravelLog> travelLog;
|
||||||
|
@ -1708,13 +1726,8 @@ HRESULT CShellBrowser::UpdateForwardBackState()
|
||||||
|
|
||||||
HRESULT CShellBrowser::UpdateUpState()
|
HRESULT CShellBrowser::UpdateUpState()
|
||||||
{
|
{
|
||||||
bool canGoUp;
|
bool canGoUp = !_ILIsDesktop(fCurrentDirectoryPIDL);
|
||||||
HRESULT hResult;
|
FireCommandStateChange(canGoUp, 3);
|
||||||
|
|
||||||
canGoUp = true;
|
|
||||||
if (_ILIsDesktop(fCurrentDirectoryPIDL))
|
|
||||||
canGoUp = false;
|
|
||||||
hResult = FireCommandStateChange(canGoUp, 3);
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2109,8 +2122,6 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::QueryStatus(const GUID *pguidCmdGroup,
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::Exec(const GUID *pguidCmdGroup, DWORD nCmdID,
|
HRESULT STDMETHODCALLTYPE CShellBrowser::Exec(const GUID *pguidCmdGroup, DWORD nCmdID,
|
||||||
DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
|
DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
|
||||||
{
|
{
|
||||||
HRESULT hResult;
|
|
||||||
|
|
||||||
if (!pguidCmdGroup)
|
if (!pguidCmdGroup)
|
||||||
{
|
{
|
||||||
TRACE("Unhandled null CGID %d %d %p %p\n", nCmdID, nCmdexecopt, pvaIn, pvaOut);
|
TRACE("Unhandled null CGID %d %d %p %p\n", nCmdID, nCmdexecopt, pvaIn, pvaOut);
|
||||||
|
@ -2132,13 +2143,13 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::Exec(const GUID *pguidCmdGroup, DWORD n
|
||||||
|
|
||||||
if (IsEqualCLSID(*pclsid, fCurrentVertBar))
|
if (IsEqualCLSID(*pclsid, fCurrentVertBar))
|
||||||
{
|
{
|
||||||
hResult = IUnknown_ShowDW(fClientBars[BIVerticalBaseBar].clientBar.p, FALSE);
|
IUnknown_ShowDW(fClientBars[BIVerticalBaseBar].clientBar.p, FALSE);
|
||||||
memset(&fCurrentVertBar, 0, sizeof(fCurrentVertBar));
|
memset(&fCurrentVertBar, 0, sizeof(fCurrentVertBar));
|
||||||
FireCommandStateChangeAll();
|
FireCommandStateChangeAll();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hResult = ShowBand(*pclsid, true);
|
ShowBand(*pclsid, true);
|
||||||
}
|
}
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case 0x22:
|
case 0x22:
|
||||||
|
@ -2612,6 +2623,9 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::ShowControlWindow(UINT id, BOOL fShow)
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case FCW_TREE:
|
case FCW_TREE:
|
||||||
return Exec(&CGID_Explorer, SBCMDID_EXPLORERBARFOLDERS, 0, NULL, NULL);
|
return Exec(&CGID_Explorer, SBCMDID_EXPLORERBARFOLDERS, 0, NULL, NULL);
|
||||||
|
case FCW_MENU:
|
||||||
|
return IUnknown_Exec(fClientBars[BIInternetToolbar].clientBar,
|
||||||
|
CGID_PrivCITCommands, ITID_MENUBANDSHOWN, 0, NULL, NULL);
|
||||||
case FCW_ADDRESSBAR:
|
case FCW_ADDRESSBAR:
|
||||||
return IUnknown_Exec(fClientBars[BIInternetToolbar].clientBar,
|
return IUnknown_Exec(fClientBars[BIInternetToolbar].clientBar,
|
||||||
CGID_PrivCITCommands, ITID_ADDRESSBANDSHOWN, 0, NULL, NULL);
|
CGID_PrivCITCommands, ITID_ADDRESSBANDSHOWN, 0, NULL, NULL);
|
||||||
|
@ -2635,9 +2649,11 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::IsControlWindowShown(UINT id, BOOL *pfS
|
||||||
shown = cmd.cmdf & OLECMDF_LATCHED;
|
shown = cmd.cmdf & OLECMDF_LATCHED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case FCW_MENU:
|
||||||
|
shown = (hr = IsInternetToolbarBandShown(ITID_MENUBANDSHOWN)) == S_OK;
|
||||||
|
break;
|
||||||
case FCW_ADDRESSBAR:
|
case FCW_ADDRESSBAR:
|
||||||
hr = IsInternetToolbarBandShown(ITID_ADDRESSBANDSHOWN);
|
shown = (hr = IsInternetToolbarBandShown(ITID_ADDRESSBANDSHOWN)) == S_OK;
|
||||||
shown = hr == S_OK;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
hr = E_NOTIMPL;
|
hr = E_NOTIMPL;
|
||||||
|
@ -2893,7 +2909,7 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::InitializeTravelLog(ITravelLog *ptl, DW
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::SetTopBrowser()
|
HRESULT STDMETHODCALLTYPE CShellBrowser::SetTopBrowser()
|
||||||
{
|
{
|
||||||
m_BrowserSvcFlags |= BSF_TOPBROWSER;
|
SetFlags(BSF_TOPBROWSER, BSF_TOPBROWSER);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3294,7 +3310,8 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::get_Busy(VARIANT_BOOL *pBool)
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::Quit()
|
HRESULT STDMETHODCALLTYPE CShellBrowser::Quit()
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
::PostMessageW(GetTopLevelBrowserWindow(), WM_CLOSE, 0, 0);
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::ClientToWindow(int *pcx, int *pcy)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::ClientToWindow(int *pcx, int *pcy)
|
||||||
|
@ -3319,7 +3336,8 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::get_Name(BSTR *Name)
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_HWND(SHANDLE_PTR *pHWND)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_HWND(SHANDLE_PTR *pHWND)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
*pHWND = HandleToLong(GetTopLevelBrowserWindow());
|
||||||
|
return *pHWND ? S_OK : E_UNEXPECTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_FullName(BSTR *FullName)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_FullName(BSTR *FullName)
|
||||||
|
@ -3334,22 +3352,35 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::get_Path(BSTR *Path)
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_Visible(VARIANT_BOOL *pBool)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_Visible(VARIANT_BOOL *pBool)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
HWND hWnd = GetTopLevelBrowserWindow();
|
||||||
|
*pBool = hWnd && ::IsWindowVisible(hWnd) ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_Visible(VARIANT_BOOL Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_Visible(VARIANT_BOOL Value)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
if (HWND hWnd = GetTopLevelBrowserWindow())
|
||||||
|
{
|
||||||
|
::ShowWindow(hWnd, Value? SW_SHOW : SW_HIDE);
|
||||||
|
if (Value)
|
||||||
|
::SetForegroundWindow(hWnd);
|
||||||
|
FireEvent_VBOOL(DISPID_ONVISIBLE, Value);
|
||||||
|
}
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_StatusBar(VARIANT_BOOL *pBool)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_StatusBar(VARIANT_BOOL *pBool)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
*pBool = IsControlWindowShown(FCW_STATUS, NULL) == S_OK ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_StatusBar(VARIANT_BOOL Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_StatusBar(VARIANT_BOOL Value)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
SetFlags(BSF_UISETBYAUTOMATION, BSF_UISETBYAUTOMATION);
|
||||||
|
HRESULT hr = ShowControlWindow(FCW_STATUS, Value != VARIANT_FALSE);
|
||||||
|
FireEvent_VBOOL(DISPID_ONSTATUSBAR, Value);
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_StatusText(BSTR *StatusText)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_StatusText(BSTR *StatusText)
|
||||||
|
@ -3359,37 +3390,54 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::get_StatusText(BSTR *StatusText)
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_StatusText(BSTR StatusText)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_StatusText(BSTR StatusText)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
SendControlMsg(FCW_STATUS, SB_SETTEXTW, 0, (LPARAM)StatusText, NULL);
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_ToolBar(int *Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_ToolBar(int *Value)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
*Value = IsControlWindowShown(FCW_INTERNETBAR, NULL) == S_OK;
|
||||||
|
if (!*Value && IsControlWindowShown(FCW_TOOLBAR, NULL) == S_OK)
|
||||||
|
*Value = FCW_TOOLBAR;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_ToolBar(int Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_ToolBar(int Value)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
SetFlags(BSF_UISETBYAUTOMATION, BSF_UISETBYAUTOMATION);
|
||||||
|
ShowControlWindow(FCW_INTERNETBAR, Value != VARIANT_FALSE && Value != FCW_TOOLBAR);
|
||||||
|
ShowControlWindow(FCW_TOOLBAR, Value == FCW_TOOLBAR);
|
||||||
|
FireEvent_VBOOL(DISPID_ONTOOLBAR, Value);
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_MenuBar(VARIANT_BOOL *Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_MenuBar(VARIANT_BOOL *Value)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
*Value = IsControlWindowShown(FCW_MENU, NULL) == S_OK ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_MenuBar(VARIANT_BOOL Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_MenuBar(VARIANT_BOOL Value)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
SetFlags(BSF_UISETBYAUTOMATION, BSF_UISETBYAUTOMATION);
|
||||||
|
HRESULT hr = ShowControlWindow(FCW_MENU, Value != VARIANT_FALSE);
|
||||||
|
FireEvent_VBOOL(DISPID_ONMENUBAR, Value);
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_FullScreen(VARIANT_BOOL *pbFullScreen)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_FullScreen(VARIANT_BOOL *pbFullScreen)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
*pbFullScreen = (m_BrowserSvcFlags & BSF_ROS_KIOSK) ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_FullScreen(VARIANT_BOOL bFullScreen)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_FullScreen(VARIANT_BOOL bFullScreen)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
SetFlags(BSF_UISETBYAUTOMATION, BSF_UISETBYAUTOMATION);
|
||||||
|
SetFlags(bFullScreen ? BSF_ROS_KIOSK : 0, BSF_ROS_KIOSK);
|
||||||
|
put_TheaterMode(bFullScreen);
|
||||||
|
FireEvent_VBOOL(DISPID_ONFULLSCREEN, bFullScreen);
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::Navigate2(VARIANT *URL, VARIANT *Flags,
|
HRESULT STDMETHODCALLTYPE CShellBrowser::Navigate2(VARIANT *URL, VARIANT *Flags,
|
||||||
|
@ -3419,13 +3467,21 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::Navigate2(VARIANT *URL, VARIANT *Flags,
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::QueryStatusWB(OLECMDID cmdID, OLECMDF *pcmdf)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::QueryStatusWB(OLECMDID cmdID, OLECMDF *pcmdf)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
OLECMD cmd = { (ULONG)cmdID, (DWORD)(*pcmdf) };
|
||||||
|
HRESULT hr = QueryStatus(NULL, 1, &cmd, NULL);
|
||||||
|
*pcmdf = (OLECMDF)cmd.cmdf;
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt,
|
HRESULT STDMETHODCALLTYPE CShellBrowser::ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt,
|
||||||
VARIANT *pvaIn, VARIANT *pvaOut)
|
VARIANT *pvaIn, VARIANT *pvaOut)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
CComPtr<IOleCommandTarget> pOCT;
|
||||||
|
IShellView *pSV = fCurrentShellView;
|
||||||
|
HRESULT hr = pSV ? pSV->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &pOCT)) : E_FAIL;
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
hr = pOCT->Exec(NULL, cmdID, cmdexecopt, pvaIn, pvaOut);
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::ShowBrowserBar(VARIANT *pvaClsid, VARIANT *pvarShow, VARIANT *pvarSize)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::ShowBrowserBar(VARIANT *pvaClsid, VARIANT *pvarShow, VARIANT *pvarSize)
|
||||||
|
@ -3469,52 +3525,67 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::put_Silent(VARIANT_BOOL bSilent)
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_RegisterAsBrowser(VARIANT_BOOL *pbRegister)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_RegisterAsBrowser(VARIANT_BOOL *pbRegister)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
*pbRegister = (m_BrowserSvcFlags & BSF_ROS_REGBROWSER) ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_RegisterAsBrowser(VARIANT_BOOL bRegister)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_RegisterAsBrowser(VARIANT_BOOL bRegister)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
if (!bRegister)
|
||||||
|
return E_UNEXPECTED;
|
||||||
|
SetFlags(BSF_ROS_REGBROWSER, BSF_ROS_REGBROWSER);
|
||||||
|
return RegisterWindow(TRUE, SWC_3RDPARTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_RegisterAsDropTarget(VARIANT_BOOL *pbRegister)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_RegisterAsDropTarget(VARIANT_BOOL *pbRegister)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
*pbRegister = (m_BrowserSvcFlags & BSF_REGISTERASDROPTARGET) ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_RegisterAsDropTarget(VARIANT_BOOL bRegister)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_RegisterAsDropTarget(VARIANT_BOOL bRegister)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
SetFlags(bRegister ? BSF_REGISTERASDROPTARGET : 0, BSF_REGISTERASDROPTARGET);
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_TheaterMode(VARIANT_BOOL *pbRegister)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_TheaterMode(VARIANT_BOOL *pbRegister)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
*pbRegister = (m_BrowserSvcFlags & BSF_THEATERMODE) ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_TheaterMode(VARIANT_BOOL bRegister)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_TheaterMode(VARIANT_BOOL bRegister)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
BOOL handled;
|
||||||
|
OnToggleFullscreen(bRegister, 0, NULL, handled);
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_AddressBar(VARIANT_BOOL *Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_AddressBar(VARIANT_BOOL *Value)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
*Value = IsControlWindowShown(FCW_ADDRESSBAR, NULL) == S_OK ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_AddressBar(VARIANT_BOOL Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_AddressBar(VARIANT_BOOL Value)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
SetFlags(BSF_UISETBYAUTOMATION, BSF_UISETBYAUTOMATION);
|
||||||
|
HRESULT hr = ShowControlWindow(FCW_ADDRESSBAR, Value != VARIANT_FALSE);
|
||||||
|
FireEvent_VBOOL(DISPID_ONADDRESSBAR, Value);
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::get_Resizable(VARIANT_BOOL *Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::get_Resizable(VARIANT_BOOL *Value)
|
||||||
{
|
{
|
||||||
|
*Value = (m_BrowserSvcFlags & BSF_RESIZABLE) ? VARIANT_TRUE : VARIANT_FALSE;
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::put_Resizable(VARIANT_BOOL Value)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::put_Resizable(VARIANT_BOOL Value)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
SetFlags(Value ? (BSF_RESIZABLE | BSF_CANMAXIMIZE) : 0, (BSF_RESIZABLE | BSF_CANMAXIMIZE));
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::FindWindowByIndex(DWORD dwID, IUnknown **ppunk)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::FindWindowByIndex(DWORD dwID, IUnknown **ppunk)
|
||||||
|
@ -4086,6 +4157,50 @@ LRESULT CShellBrowser::OnAppCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOO
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LRESULT CShellBrowser::OnToggleFullscreen(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
|
||||||
|
{
|
||||||
|
enum { SF_MBAR = 0x1, SF_SBAR = 0x2, SF_RESIZE = 0x4, SF_MAXIMIZED = 0x8 };
|
||||||
|
const UINT OrgUiSetAuto = m_BrowserSvcFlags & BSF_UISETBYAUTOMATION;
|
||||||
|
const BOOL fCurrentlyFullscreen = (m_BrowserSvcFlags & BSF_THEATERMODE);
|
||||||
|
const BOOL fEnter = wID ? !fCurrentlyFullscreen : wNotifyCode;
|
||||||
|
const HWND hWnd = GetTopLevelBrowserWindow();
|
||||||
|
if (fEnter)
|
||||||
|
{
|
||||||
|
VARIANT_BOOL varb;
|
||||||
|
m_NonFullscreenState = (m_BrowserSvcFlags & BSF_RESIZABLE) ? SF_RESIZE : 0;
|
||||||
|
m_NonFullscreenState |= (FAILED(get_MenuBar(&varb)) || varb) ? SF_MBAR : 0;
|
||||||
|
m_NonFullscreenState |= (FAILED(get_StatusBar(&varb)) || varb) ? SF_SBAR : 0;
|
||||||
|
m_NonFullscreenState |= (SHSetWindowBits(hWnd, GWL_STYLE, 0, 0) & WS_MAXIMIZE) ? SF_MAXIMIZED : 0;
|
||||||
|
SetFlags(BSF_THEATERMODE, BSF_THEATERMODE);
|
||||||
|
put_MenuBar(VARIANT_FALSE);
|
||||||
|
put_StatusBar(VARIANT_FALSE);
|
||||||
|
SHSetWindowBits(hWnd, GWL_STYLE, WS_CAPTION | WS_BORDER | WS_DLGFRAME | WS_THICKFRAME, 0);
|
||||||
|
SHSetWindowBits(hWnd, GWL_EXSTYLE, WS_EX_WINDOWEDGE, 0);
|
||||||
|
::ShowWindow(hWnd, SW_SHOWMAXIMIZED);
|
||||||
|
MONITORINFO mi;
|
||||||
|
GetWindowMonitorInfo(hWnd, mi);
|
||||||
|
int x = mi.rcMonitor.left, w = mi.rcMonitor.right - x;
|
||||||
|
int y = mi.rcMonitor.top, h = mi.rcMonitor.bottom - y;
|
||||||
|
::SetWindowPos(hWnd, HWND_TOPMOST, x, y, w, h, SWP_FRAMECHANGED);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetFlags(0, BSF_THEATERMODE);
|
||||||
|
put_MenuBar((m_NonFullscreenState & SF_MBAR) ? VARIANT_TRUE : VARIANT_FALSE);
|
||||||
|
put_StatusBar((m_NonFullscreenState & SF_SBAR) ? VARIANT_TRUE : VARIANT_FALSE);
|
||||||
|
SHSetWindowBits(hWnd, GWL_EXSTYLE, WS_EX_WINDOWEDGE, WS_EX_WINDOWEDGE);
|
||||||
|
UINT styles = WS_CAPTION | WS_BORDER | WS_DLGFRAME | ((m_NonFullscreenState & SF_RESIZE) ? WS_THICKFRAME : 0);
|
||||||
|
SHSetWindowBits(hWnd, GWL_STYLE, styles | WS_THICKFRAME, styles);
|
||||||
|
::SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE);
|
||||||
|
::ShowWindow(hWnd, SW_SHOWNOACTIVATE);
|
||||||
|
if (m_NonFullscreenState & SF_MAXIMIZED)
|
||||||
|
::ShowWindow(hWnd, SW_SHOWMAXIMIZED);
|
||||||
|
}
|
||||||
|
SetFlags(OrgUiSetAuto, BSF_UISETBYAUTOMATION);
|
||||||
|
::RedrawWindow(hWnd, NULL, NULL, RDW_FRAME | RDW_INVALIDATE | RDW_UPDATENOW | RDW_ALLCHILDREN);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT CShellBrowser_CreateInstance(REFIID riid, void **ppv)
|
HRESULT CShellBrowser_CreateInstance(REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
return ShellObjectCreatorInit<CShellBrowser>(riid, ppv);
|
return ShellObjectCreatorInit<CShellBrowser>(riid, ppv);
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /* defined(__cplusplus) */
|
#endif /* defined(__cplusplus) */
|
||||||
|
|
||||||
|
#define FCW_MENU 7
|
||||||
#define FCW_ADDRESSBAR 9 // GetControlWindow/IsControlWindowShown
|
#define FCW_ADDRESSBAR 9 // GetControlWindow/IsControlWindowShown
|
||||||
|
|
||||||
// Name is IETHREADPARAM according to symbols / mangled function names
|
// Name is IETHREADPARAM according to symbols / mangled function names
|
||||||
|
|
Loading…
Reference in a new issue