1: /*
2: ============================================================================
3: xoblite™ -> an advanced "extended shell" for Microsoft® Windows® 11
4: Copyright © 2002-2026 Karl Henrik Henriksson [qwilk/@xoblite]
5: Copyright © 2001-2004 The Blackbox for Windows Development Team
6: http://xoblite.net/ + https://github.com/xoblite/
7: ============================================================================
8:
9: Blackbox for Windows is free software, released under the
10: GNU General Public License (GPL version 2 or later), with an extension
11: that allows linking of proprietary modules under a controlled interface.
12: What this means is that plugins etc. are allowed to be released
13: under any license the author wishes. Please note, however, that the
14: original Blackbox gradient math code used in Blackbox for Windows
15: is available under the BSD license.
16:
17: http://www.fsf.org/licenses/gpl.html
18: http://www.fsf.org/licenses/gpl-faq.html#LinkingOverControlledInterface
19: http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5
20:
21: This program is distributed in the hope that it will be useful,
22: but WITHOUT ANY WARRANTY; without even the implied warranty of
23: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24: GNU General Public License for more details.
25:
26: For additional license information, please read the included license.html.
27:
28: ============================================================================
29: */
30:
31: #ifndef __BLACKBOX_H
32: #define __BLACKBOX_H
33:
34: #include "API\BBApi.h"
35: #include "Graphics\BImage.h"
36: #include "Messaging\Broams.h"
37: #include "Console\Console.h"
38: #include "Desktop\Desktop.h"
39: #include "Dock\Dock.h"
40: #include "Hotkeys\Hotkeys.h"
41: #include "Menu\MenuCommon.h"
42: #include "Menu\Menu.h"
43: #include "Menu\PreviewItem.h"
44: #include "Messaging\MessageManager.h"
45: #include "Plugins\PluginManager.h"
46: #include "Toolbar\Taskbar.h"
47: #include "Toolbar\Toolbar.h"
48: #include "Workspaces\Workspaces.h"
49: #include "Settings\Themes.h"
50: #include "Dialogs\PopupDialog.h"
51: #include "Settings\Settings.h"
52: #include "Sounds\Sounds.h"
53: #include "Desktop\Wallpaper.h"
54: #include "Resources\resource.h"
55:
56: //#include <windows.h>
57: #include <process.h>
58: #include <commdlg.h>
59: #include <time.h>
60: #include <shlobj.h>
61: #include <locale.h>
62:
63: #define SESSION_DURATION_TIMER 1
64: #define CHECK_EXPLORER_HIDDEN_TIMER 2
65: #define CHECK_FOR_UPDATES_DELAY_TIMER 3
66: #define CHECK_FOR_FULLSCREEN_TIMER 4
67:
68: //====================
69:
70: // Shell hook message parameter values (nb. kept here for reference, otherwise defined in winuser.h)
71: /*
72: #ifndef HSHELL_WINDOWCREATED
73: #define HSHELL_WINDOWCREATED 1
74: #endif
75: #ifndef HSHELL_WINDOWDESTROYED
76: #define HSHELL_WINDOWDESTROYED 2
77: #endif
78: #ifndef HSHELL_ACTIVATESHELLWINDOW
79: #define HSHELL_ACTIVATESHELLWINDOW 3
80: #endif
81: #ifndef HSHELL_WINDOWACTIVATED
82: #define HSHELL_WINDOWACTIVATED 4
83: #endif
84: #ifndef HSHELL_GETMINRECT
85: #define HSHELL_GETMINRECT 5
86: #endif
87: #ifndef HSHELL_REDRAW
88: #define HSHELL_REDRAW 6
89: #endif
90: #ifndef HSHELL_TASKMAN
91: #define HSHELL_TASKMAN 7
92: #endif
93: #ifndef HSHELL_LANGUAGE
94: #define HSHELL_LANGUAGE 8
95: #endif
96: #ifndef HSHELL_SYSMENU
97: #define HSHELL_SYSMENU 9
98: #endif
99: #ifndef HSHELL_ENDTASK
100: #define HSHELL_ENDTASK 10
101: #endif
102: #ifndef HSHELL_ACCESSIBILITYSTATE
103: #define HSHELL_ACCESSIBILITYSTATE 11
104: #endif
105: #ifndef HSHELL_APPCOMMAND
106: #define HSHELL_APPCOMMAND 12
107: #endif
108: #ifndef HSHELL_WINDOWREPLACED
109: #define HSHELL_WINDOWREPLACED 13
110: #endif
111: #ifndef HSHELL_WINDOWREPLACING
112: #define HSHELL_WINDOWREPLACING 14
113: #endif
114:
115: #ifndef HSHELL_MONITORCHANGED
116: #define HSHELL_MONITORCHANGED 16
117: #endif
118:
119: #ifndef HSHELL_HIGHBIT
120: #define HSHELL_HIGHBIT 0x8000
121: #endif
122:
123: #ifndef HSHELL_FLASH
124: #define HSHELL_FLASH (HSHELL_REDRAW|HSHELL_HIGHBIT)
125: #endif
126: #ifndef HSHELL_RUDEAPPACTIVATED
127: #define HSHELL_RUDEAPPACTIVATED (HSHELL_WINDOWACTIVATED|HSHELL_HIGHBIT)
128: #endif
129: */
130:
131: #ifndef HSHELL_MONITORCHANGED
132: #define HSHELL_MONITORCHANGED 16
133: #endif
134:
135: //===========================================================================
136:
137: LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
138: LRESULT CALLBACK ShellHookProc(int nCode, WPARAM wParam, LPARAM lParam);
139:
140: void startBlackbox();
141: void exitBlackbox();
142: void restartBlackboxStop();
143: void restartBlackboxStart();
144:
145: void ExecuteRootCommand(void *);
146:
147: void ShutdownWindows(int state, bool skipAsking);
148: void ShutdownThread(void *);
149:
150: void HideDesktopIcons(bool hide);
151:
152: void SessionTimeStamp(bool beginSession);
153: void CheckForUpdates();
154:
155: //===========================================================================
156:
157: #endif /* __BLACKBOX_H */
158: