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: