├── lsapi
├── lsapi.rc
├── aboutbox.cpp
├── resource.h
├── png_support.h
├── picopng.h
├── MathException.h
└── SettingsDefines.h
├── docs
├── manual.txt
├── build_vc11.txt
├── build.txt
├── readme.txt
└── build_mingw.txt
├── sdk
├── examples
│ ├── clock
│ │ ├── exports.def
│ │ ├── clock.dsw
│ │ ├── version.h
│ │ ├── utility.cpp
│ │ ├── trace.cpp
│ │ ├── utility.h
│ │ ├── bang.h
│ │ ├── Makefile
│ │ └── clock.mdsp
│ ├── hello
│ │ ├── exports.def
│ │ ├── hello.dsw
│ │ ├── bang.h
│ │ ├── version.h
│ │ ├── bang.cpp
│ │ ├── trace.cpp
│ │ ├── Makefile
│ │ ├── main.cpp
│ │ └── hello.mdsp
│ └── tutorial
│ │ ├── bang
│ │ ├── exports.def
│ │ ├── trace.cpp
│ │ ├── common.h
│ │ ├── bang.h
│ │ ├── Makefile
│ │ └── trace.h
│ │ ├── config
│ │ ├── exports.def
│ │ ├── trace.cpp
│ │ ├── common.h
│ │ ├── Makefile
│ │ └── trace.h
│ │ ├── skin
│ │ ├── exports.def
│ │ ├── trace.cpp
│ │ ├── common.h
│ │ ├── bang.h
│ │ ├── Makefile
│ │ └── trace.h
│ │ ├── window
│ │ ├── exports.def
│ │ ├── trace.cpp
│ │ ├── common.h
│ │ ├── Makefile
│ │ ├── utility.h
│ │ └── trace.h
│ │ └── multiple
│ │ ├── exports.def
│ │ ├── trace.cpp
│ │ ├── common.h
│ │ ├── bang.h
│ │ └── trace.h
├── lib
│ ├── lsapi32.lib
│ └── lsapi64.lib
└── docs
│ └── lsapi
│ ├── GetLitestepWnd.xml
│ ├── LCClose.xml
│ ├── THUMBBUTTONLIST.xml
│ ├── RemoveBangCommand.xml
│ ├── GetLSBitmapSize.xml
│ ├── BitmapFromIcon.xml
│ ├── BangCommandProc.xml
│ ├── LM_TASK_MARKASACTIVE.xml
│ ├── LM_TASK_SETPROGRESSSTATE.xml
│ ├── LM_TASK_SETOVERLAYICON.xml
│ ├── LM_TASK_SETTHUMBNAILCLIP.xml
│ ├── LSSetVariable.xml
│ ├── LM_TASK_SETTHUMBNAILTOOLTIP.xml
│ ├── LM_TASK_SETOVERLAYICONDESC.xml
│ ├── LM_TASK_SETPROGRESSVALUE.xml
│ ├── LM_TASK_THUMBBARADDBUTTONS.xml
│ ├── LM_TASK_THUMBBARSETIMAGELIST.xml
│ ├── LSGetLitestepPath.xml
│ ├── LSGetVariable.xml
│ ├── LM_TASK_THUMBBARUPDATEBUTTONS.xml
│ ├── LM_TASK_SETTABPROPERTIES.xml
│ ├── LM_TASK_UNREGISTERTAB.xml
│ ├── Frame3D.xml
│ ├── LM_TASK_SETACTIVETAB.xml
│ ├── EnumRevIDsProc.xml
│ ├── LM_TASK_REGISTERTAB.xml
│ ├── EnumBangsProc.xml
│ ├── LM_TASK_SETTABORDER.xml
│ ├── BangCommandProcEx.xml
│ ├── GetRCInt.xml
│ ├── GetRCFloat.xml
│ ├── GetRCBoolDef.xml
│ ├── GetRCColor.xml
│ ├── GetRCDouble.xml
│ ├── GetRCInt64.xml
│ ├── SetDesktopArea.xml
│ ├── LSGetVariableEx.xml
│ ├── VarExpansion.xml
│ ├── ParseCoordinate.xml
│ ├── SYSTRAYINFOEVENT.xml
│ ├── LSGetImagePath.xml
│ ├── LSCoCreateInstance.xml
│ ├── AddBangCommand.xml
│ ├── GetRCBool.xml
│ ├── VarExpansionEx.xml
│ ├── match.xml
│ ├── EnumPerformanceProc.xml
│ ├── LSExecute.xml
│ ├── EnumBangsV2Proc.xml
│ ├── LM_REFRESH.xml
│ ├── LM_FULLSCREENDEACTIVATED.xml
│ ├── LCReadNextLine.xml
│ ├── LCOpen.xml
│ ├── LM_REGISTERMESSAGE.xml
│ ├── LM_FULLSCREENACTIVATED.xml
│ ├── LM_UNREGISTERMESSAGE.xml
│ ├── AddBangCommandEx.xml
│ ├── ParseBangCommand.xml
│ ├── CommandParse.xml
│ ├── EnumModulesProc.xml
│ ├── quitModule.xml
│ ├── GetResStr.xml
│ ├── LM_UNLOADMODULE.xml
│ ├── lsapi.css
│ ├── LM_GETREVID.xml
│ ├── LM_SYSTRAY.xml
│ ├── GetResStrEx.xml
│ ├── LCReadNextCommand.xml
│ ├── LoadLSIcon.xml
│ ├── LM_RESTOREDATA.xml
│ ├── LM_SYSTRAYINFOEVENT.xml
│ └── LSLog.xml
├── litestep
├── litestep.bmp
├── litestep.ico
├── litestep.rc
├── litestep.manifest
├── Utility.h
├── DDEStub.h
├── ExplorerService.h
├── COMService.h
├── TaskbarListHandler.h
├── COMFactory.h
├── Utility.cpp
├── StartupRunner.h
├── IDesktopWallpaperPrivate.h
└── DDEService.h
├── .editorconfig
├── .gitignore
└── utility
├── ILiteStep.h
├── IService.h
├── shlobj.h
├── IManager.h
├── core.hpp
├── stringutility.cpp
└── Base.h
/lsapi/lsapi.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsdev/LiteStep/HEAD/lsapi/lsapi.rc
--------------------------------------------------------------------------------
/docs/manual.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsdev/LiteStep/HEAD/docs/manual.txt
--------------------------------------------------------------------------------
/sdk/examples/clock/exports.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | initModuleEx
3 | quitModule
4 |
--------------------------------------------------------------------------------
/sdk/examples/hello/exports.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | initModuleEx
3 | quitModule
4 |
--------------------------------------------------------------------------------
/docs/build_vc11.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsdev/LiteStep/HEAD/docs/build_vc11.txt
--------------------------------------------------------------------------------
/lsapi/aboutbox.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsdev/LiteStep/HEAD/lsapi/aboutbox.cpp
--------------------------------------------------------------------------------
/sdk/lib/lsapi32.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsdev/LiteStep/HEAD/sdk/lib/lsapi32.lib
--------------------------------------------------------------------------------
/sdk/lib/lsapi64.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsdev/LiteStep/HEAD/sdk/lib/lsapi64.lib
--------------------------------------------------------------------------------
/litestep/litestep.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsdev/LiteStep/HEAD/litestep/litestep.bmp
--------------------------------------------------------------------------------
/litestep/litestep.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsdev/LiteStep/HEAD/litestep/litestep.ico
--------------------------------------------------------------------------------
/litestep/litestep.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lsdev/LiteStep/HEAD/litestep/litestep.rc
--------------------------------------------------------------------------------
/sdk/examples/tutorial/bang/exports.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | initModuleEx
3 | quitModule
4 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/config/exports.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | initModuleEx
3 | quitModule
4 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/skin/exports.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | initModuleEx
3 | quitModule
4 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/window/exports.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | initModuleEx
3 | quitModule
4 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/multiple/exports.def:
--------------------------------------------------------------------------------
1 | EXPORTS
2 | initModuleEx
3 | quitModule
4 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | end_of_line = crlf
5 | insert_final_newline = true
6 | indent_style = space
7 | indent_size = 4
8 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | Release_*
2 | Debug_*
3 | */Debug_*
4 | */Release_*
5 | *.user
6 | *.opensdf
7 | *.sdf
8 | *.suo
9 | *.ncb
10 | *.aps
11 | .vs
12 |
--------------------------------------------------------------------------------
/lsapi/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by lsapi.rc
4 | //
5 |
6 | // Next default values for new objects
7 | //
8 | #ifdef APSTUDIO_INVOKED
9 | #ifndef APSTUDIO_READONLY_SYMBOLS
10 | #define _APS_NO_MFC 1
11 | #define _APS_NEXT_RESOURCE_VALUE 101
12 | #define _APS_NEXT_COMMAND_VALUE 40001
13 | #define _APS_NEXT_CONTROL_VALUE 1001
14 | #define _APS_NEXT_SYMED_VALUE 101
15 | #endif
16 | #endif
17 |
--------------------------------------------------------------------------------
/sdk/examples/clock/clock.dsw:
--------------------------------------------------------------------------------
1 | Microsoft Developer Studio Workspace File, Format Version 6.00
2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
3 |
4 | ###############################################################################
5 |
6 | Project: "Clock"=.\Clock.dsp - Package Owner=<4>
7 |
8 | Package=<5>
9 | {{{
10 | }}}
11 |
12 | Package=<4>
13 | {{{
14 | }}}
15 |
16 | ###############################################################################
17 |
18 | Global:
19 |
20 | Package=<5>
21 | {{{
22 | }}}
23 |
24 | Package=<3>
25 | {{{
26 | }}}
27 |
28 | ###############################################################################
29 |
30 |
--------------------------------------------------------------------------------
/sdk/examples/hello/hello.dsw:
--------------------------------------------------------------------------------
1 | Microsoft Developer Studio Workspace File, Format Version 6.00
2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
3 |
4 | ###############################################################################
5 |
6 | Project: "Hello"=.\Hello.dsp - Package Owner=<4>
7 |
8 | Package=<5>
9 | {{{
10 | }}}
11 |
12 | Package=<4>
13 | {{{
14 | }}}
15 |
16 | ###############################################################################
17 |
18 | Global:
19 |
20 | Package=<5>
21 | {{{
22 | }}}
23 |
24 | Package=<3>
25 | {{{
26 | }}}
27 |
28 | ###############################################################################
29 |
30 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetLitestepWnd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetLitestepWnd
6 |
7 | Returns a handle to LiteStep's main window.
8 |
9 |
10 |
11 | If the function is successful, the return value is a handle to
12 | LiteStep's main window. If an error occurs, the return value is
13 | NULL.
14 |
15 | HWND
16 |
17 |
18 |
19 | To access some shell functions, a module must send a message to
20 | LiteStep's main window. Call GetLitestepWnd to get a handle to
21 | that window.
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LCClose.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LCClose
6 |
7 | Closes a configuration file.
8 |
9 |
10 |
11 | pFile
12 |
13 | Handle to an open file. The file must have been opened with
14 | LCOpen.
15 |
16 | LPVOID
17 |
18 |
19 |
20 |
21 | If the file is closed successfully, the return value is nonzero. If an
22 | errror occurs, the return value is zero.
23 |
24 | BOOL
25 |
26 |
27 | LCOpen
28 | LCReadNextCommand
29 | LCReadNextConfig
30 | LCReadNextLine
31 |
32 |
33 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/THUMBBUTTONLIST.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | THUMBBUTTONLIST
6 |
7 |
8 | Represents a list of buttons for the thumbnail bar. Used by
9 | LM_TASK_THUMBBARADDBUTTONS and
10 | LM_TASK_THUMBBARUPDATEBUTTONS
11 |
12 |
13 |
14 |
15 | cButtons
16 | UINT
17 | The number of buttons in the array.
18 |
19 |
20 | pButton
21 | LPTHUMBBUTTON
22 |
23 | An array of THUMBBUTTON structs.
24 |
25 |
26 |
27 |
28 |
29 | LM_TASK_THUMBBARADDBUTTONS
30 | LM_TASK_THUMBBARUPDATEBUTTONS
31 |
32 |
33 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/RemoveBangCommand.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | RemoveBangCommand
6 | Unregisters a bang command.
7 |
8 |
9 | pszBangCommandName
10 |
11 | Name of the bang command to unregister. The first character must be an
12 | exclamation point (!).
13 |
14 | LPCSTR
15 |
16 |
17 |
18 |
19 | If the bang command is successfully unregistered, the return value is
20 | nonzero. If an error occurs, the return value is zero.
21 |
22 | BOOL
23 |
24 |
25 | AddBangCommand
26 | AddBangCommandEx
27 | ParseBangCommand
28 |
29 |
30 |
--------------------------------------------------------------------------------
/litestep/litestep.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 | A Windows shell replacement.
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetLSBitmapSize.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetLSBitmapSize
6 |
7 | Gets the width and height of a bitmap.
8 |
9 |
10 |
11 | hbmBitmap
12 |
13 | Handle to the bitmap.
14 |
15 | HBITMAP
16 |
17 |
18 | pnWidth
19 |
20 | Pointer to an integer that receives the bitmap's width.
21 |
22 | INT *
23 |
24 |
25 | pnHeight
26 |
27 | Pointer to an integer that receives the bitmap's height.
28 |
29 | INT *
30 |
31 |
32 |
33 | LoadLSImage
34 |
35 |
36 |
--------------------------------------------------------------------------------
/sdk/examples/hello/bang.h:
--------------------------------------------------------------------------------
1 | // Hello Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #if !defined(BANG_H)
19 | #define BANG_H
20 |
21 | // Bang command callback functions
22 | void BangHello(HWND hwndOwner, const char *args);
23 |
24 | #endif // BANG_H
25 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/BitmapFromIcon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BitmapFromIcon
6 |
7 | Creates a bitmap from an icon resource.
8 |
9 |
10 |
11 | hIcon
12 |
13 | Handle to the source icon.
14 |
15 | HICON
16 |
17 |
18 |
19 |
20 |
21 | If the function succeeds, the return value is the handle to the newly
22 | created bitmap. If an error occurs, the return value is
23 | NULL.
24 |
25 |
26 | The returned handle must be freed with a call to
27 | DeleteObject.
28 |
29 |
30 | HBITMAP
31 |
32 |
33 | BitmapToRegion
34 | LoadLSImage
35 | LoadLSIcon
36 |
37 |
38 |
--------------------------------------------------------------------------------
/sdk/examples/clock/version.h:
--------------------------------------------------------------------------------
1 | // Clock Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #if !defined(VERSION_H)
19 | #define VERSION_H
20 |
21 | #define MODULE_AUTHORS "Litestep Development Team"
22 | #define MODULE_NAME "Clock"
23 | #define MODULE_VERSION "1.0"
24 |
25 | #endif // VERSION_H
26 |
--------------------------------------------------------------------------------
/sdk/examples/hello/version.h:
--------------------------------------------------------------------------------
1 | // Hello Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #if !defined(VERSION_H)
19 | #define VERSION_H
20 |
21 | #define MODULE_AUTHORS "Litestep Development Team"
22 | #define MODULE_NAME "Hello"
23 | #define MODULE_VERSION "1.0"
24 |
25 | #endif // VERSION_H
26 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/BangCommandProc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BangCommandProc
6 | __cdecl
7 |
8 | Application-defined callback function that LiteStep calls to execute a
9 | bang command registered with AddBangCommand.
10 |
11 |
12 |
13 | hwndOwner
14 |
15 | Handle to a window that acts as owner for any dialogs or message
16 | boxes. May be NULL.
17 |
18 | HWND
19 |
20 |
21 | pszArgs
22 |
23 | Arguments for the bang command.
24 |
25 | LPCTSTR
26 |
27 |
28 |
29 | AddBangCommand
30 | AddBangCommandEx
31 | BangCommandProcEx
32 | ParseBangCommand
33 | RemoveBangCommand
34 |
35 |
36 |
--------------------------------------------------------------------------------
/sdk/examples/hello/bang.cpp:
--------------------------------------------------------------------------------
1 | // Hello Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #include
19 | #include "bang.h"
20 | #include "version.h"
21 |
22 |
23 | // Implements the !Hello bang command
24 | void BangHello(HWND hwndOwner, const char *args)
25 | {
26 | MessageBox(NULL, "Hello, Litestep!", MODULE_NAME, MB_SETFOREGROUND);
27 | }
28 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_MARKASACTIVE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_MARKASACTIVE
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList::ActivateTab or ITaskbarList::SetActiveAlt.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window that should be marked as active.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | Not used. Always 0.
22 |
23 | LPARAM
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_REGISTERMESSAGE
39 |
40 |
--------------------------------------------------------------------------------
/litestep/Utility.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(UTILITY_H)
23 | #define UTILITY_H
24 |
25 | void UpdateEnvironmentVariables();
26 |
27 | #endif // UTILITY_H
28 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_SETPROGRESSSTATE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_SETPROGRESSSTATE
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::SetProgressState.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window whose progress state should be changed.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | The windows new progress state.
22 |
23 | TBPFLAG
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_SETPROGRESSVALUE
39 | LM_REGISTERMESSAGE
40 |
41 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_SETOVERLAYICON.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_SETOVERLAYICON
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::SetOverlayIcon.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window whose overlay icon is being set.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | The new overlay icon, or NULL to clear the icon.
22 |
23 | HICON
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_SETOVERLAYICONDESC
39 | LM_REGISTERMESSAGE
40 |
41 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_SETTHUMBNAILCLIP.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_SETTHUMBNAILCLIP
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::SetThumbnailClip.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window whose thumbnail clip is being set.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | The new thumbnail clip. Can be NULL.
22 |
23 | LPRECT
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_SETTHUMBNAILTOOLTIP
39 | LM_REGISTERMESSAGE
40 |
41 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LSSetVariable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSSetVariable
6 |
7 | Sets the value of a key in the configuration database or adds a new key
8 | to the database if it does not exist.
9 |
10 |
11 |
12 | pszKeyName
13 |
14 | Name of the key to update or add.
15 |
16 | LPCTSTR
17 |
18 |
19 | pszValue
20 |
21 | New value for the key.
22 |
23 | LPCTSTR
24 |
25 |
26 |
27 |
28 | LSSetVariable only modifies the configuration database in
29 | memory; it does not modify any configuration files. When LiteStep
30 | recycles or shuts down, the changes to the database are lost.
31 |
32 |
33 |
34 | LSGetVariable
35 | LSGetVariableEx
36 | VarExpansion
37 | VarExpansionEx
38 |
39 |
40 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_SETTHUMBNAILTOOLTIP.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_SETTHUMBNAILTOOLTIP
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::SetThumbnailTooltip.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window whose thumbnail tooltip is being set.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | The new thumbnail tooltip. Can be NULL.
22 |
23 | LPCWSTR
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_SETTHUMBNAILCLIP
39 | LM_REGISTERMESSAGE
40 |
41 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_SETOVERLAYICONDESC.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_SETOVERLAYICONDESC
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::SetOverlayIcon.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window whose overlay icon description is being set.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | The new description of the overlay icon. Can be NULL.
22 |
23 | LPCWSTR
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_SETOVERLAYICON
39 | LM_REGISTERMESSAGE
40 |
41 |
--------------------------------------------------------------------------------
/lsapi/png_support.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(PNG_SUPPORT_H)
23 | #define PNG_SUPPORT_H
24 |
25 | #include "../utility/common.h"
26 |
27 | HBITMAP LoadFromPNG(LPCWSTR pwzFilename);
28 |
29 | #endif // PNG_SUPPORT_H
30 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_SETPROGRESSVALUE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_SETPROGRESSVALUE
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::SetProgressValue.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window whose progress value should be changed.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | The new progress value. This value is between 0 and
22 | TASKSETPROGRESSVALUE_MAX.
23 |
24 | USHORT
25 |
26 |
27 |
28 |
29 | The return value is ignored.
30 |
31 |
32 |
33 |
34 | To receive this message, modules need to register for it by using
35 | LM_REGISTERMESSAGE.
36 |
37 |
38 |
39 | LM_TASK_SETPROGRESSSTATE
40 | LM_REGISTERMESSAGE
41 |
42 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_THUMBBARADDBUTTONS.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_THUMBBARADDBUTTONS
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList::ThumbBarAddButtons
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window that buttons are being added to.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | The buttons that are being added.
22 |
23 | LPTHUMBBUTTONLIST
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_THUMBBARUPDATEBUTTONS
39 | LM_TASK_THUMBBARSETIMAGELIST
40 | LM_REGISTERMESSAGE
41 |
42 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_THUMBBARSETIMAGELIST.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_THUMBBARSETIMAGELIST
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::ThumbBarSetImageList.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window which is having its thumbbar imagelist set.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | Handle to the image list.
22 |
23 | HIMAGELIST
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_THUMBBARADDBUTTONS
39 | LM_TASK_THUMBBARUPDATEBUTTONS
40 | LM_REGISTERMESSAGE
41 |
42 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LSGetLitestepPath.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSGetLitestepPath
6 |
7 | Gets the path to the LiteStep directory.
8 |
9 |
10 |
11 | pszBuffer
12 |
13 | Buffer that receives the path. If the path is too large to fit in the
14 | buffer, it is truncated.
15 |
16 | LPTSTR
17 |
18 |
19 | cchBuffer
20 |
21 | Size of the buffer in characters.
22 |
23 | UINT
24 |
25 |
26 |
27 |
28 | If the path is retrieved successfully, the return value is nonzero. If
29 | an error occurs, the return value is zero.
30 |
31 | BOOL
32 |
33 |
34 |
35 | The LiteStep directory is where the main LiteStep executable
36 | (litestep.exe) resides.
37 |
38 |
39 |
40 | LSGetImagePath
41 |
42 |
43 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LSGetVariable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSGetVariable
6 |
7 | Gets a string from the configuration database.
8 |
9 |
10 |
11 | pszKeyName
12 |
13 | Name of the key to retrieve.
14 |
15 | LPCTSTR
16 |
17 |
18 | pszBuffer
19 |
20 | Buffer that receives the retrieved string.
21 |
22 | LPTSTR
23 |
24 |
25 |
26 |
27 | If the key is found in the configuration database, the return value is
28 | nonzero. If the key cannot be found, the return value is zero.
29 |
30 | BOOL
31 |
32 |
33 |
34 | Deprecated. Replaced by LSGetVariableEx.
35 |
36 |
37 |
38 | LSGetVariableEx
39 | LSSetVariable
40 | VarExpansion
41 | VarExpansionEx
42 |
43 |
44 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_THUMBBARUPDATEBUTTONS.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_THUMBBARUPDATEBUTTONS
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList::ThumbBarUpdateButtons
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the window that buttons are being added to.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | The buttons that are being updated.
22 |
23 | LPTHUMBBUTTONLIST
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_THUMBBARADDBUTTONS
39 | LM_TASK_THUMBBARSETIMAGELIST
40 | LM_REGISTERMESSAGE
41 |
42 |
--------------------------------------------------------------------------------
/sdk/examples/clock/utility.cpp:
--------------------------------------------------------------------------------
1 | // Clock Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #include
19 | #include "utility.h"
20 |
21 |
22 | HWND GetLitestepDesktopWindow()
23 | {
24 | return FindWindow("DesktopBackgroundClass", NULL);
25 | }
26 |
27 |
28 | void ModifyWindowStyle(HWND hWnd, UINT toRemove, UINT toAdd)
29 | {
30 | UINT style = (UINT) GetWindowLong(hWnd, GWL_STYLE);
31 | SetWindowLong(hWnd, GWL_STYLE, (long) ((style & ~toRemove) | toAdd));
32 | }
33 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_SETTABPROPERTIES.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_SETTABPROPERTIES
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList4::SetTabProperties.
9 |
10 |
11 |
12 | wParam
13 |
14 | The window whose properties are being modified.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | The new tab properties.
22 |
23 | STPFLAG
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_REGISTERTAB
39 | LM_TASK_UNREGISTERTAB
40 | LM_TASK_SETACTIVETAB
41 | LM_TASK_SETTABORDER
42 | LM_REGISTERMESSAGE
43 |
44 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_UNREGISTERTAB.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_UNREGISTERTAB
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::UnregisterTab.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the tab window that is being unregistered.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | Not used. Always 0.
22 |
23 | LPARAM
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_REGISTERTAB
39 | LM_TASK_SETTABORDER
40 | LM_TASK_SETACTIVETAB
41 | LM_TASK_SETTABPROPERTIES
42 | LM_REGISTERMESSAGE
43 |
44 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/Frame3D.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Frame3D
6 |
7 | Draws a 3D frame.
8 |
9 |
10 |
11 | hdcDst
12 |
13 | Handle to the destination device context on which to draw.
14 |
15 | HDC
16 |
17 |
18 | rcFrame
19 |
20 | Rectangle in the device context around which to draw the 3D frame.
21 |
22 | RECT
23 |
24 |
25 | crTop
26 |
27 | Left and top frame border color.
28 |
29 | COLORREF
30 |
31 |
32 | crBottom
33 |
34 | Right and bottom frame border color.
35 |
36 | COLORREF
37 |
38 |
39 | nWidth
40 |
41 | Thickness of frame border.
42 |
43 | INT
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/utility/ILiteStep.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(ILITESTEP_H)
23 | #define ILITESTEP_H
24 |
25 | #include "Base.h"
26 |
27 | class ILiteStep : public CountedBase
28 | {
29 | public:
30 | virtual void PeekAllMsgs() = 0;
31 | };
32 |
33 | #endif // ILITESTEP_H
34 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_SETACTIVETAB.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_SETACTIVETAB
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::SetTabActive.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the tab that should be set as active. Can be NULL.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | Handle to the applications MDI window.
22 |
23 | HWND
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_REGISTERTAB
39 | LM_TASK_UNREGISTERTAB
40 | LM_TASK_SETTABORDER
41 | LM_TASK_SETTABPROPERTIES
42 | LM_REGISTERMESSAGE
43 |
44 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/bang/trace.cpp:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #include
18 | #include
19 | #include
20 |
21 |
22 | #define TRACE_MESSAGE_LEN 1024
23 |
24 | void Trace(const char *format, ...)
25 | {
26 | char message[TRACE_MESSAGE_LEN];
27 | va_list vaList;
28 |
29 | // Format message
30 | va_start(vaList, format);
31 | _vsnprintf(message, TRACE_MESSAGE_LEN, format, vaList);
32 | va_end(vaList);
33 |
34 | // Output it
35 | OutputDebugString(message);
36 | }
37 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/skin/trace.cpp:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #include
18 | #include
19 | #include
20 |
21 |
22 | #define TRACE_MESSAGE_LEN 1024
23 |
24 | void Trace(const char *format, ...)
25 | {
26 | char message[TRACE_MESSAGE_LEN];
27 | va_list vaList;
28 |
29 | // Format message
30 | va_start(vaList, format);
31 | _vsnprintf(message, TRACE_MESSAGE_LEN, format, vaList);
32 | va_end(vaList);
33 |
34 | // Output it
35 | OutputDebugString(message);
36 | }
37 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/EnumRevIDsProc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EnumRevIDsProc
6 | CALLBACK
7 |
8 | Application-defined callback function used with EnumLSData and
9 | ELD_REVIDS.
10 |
11 |
12 |
13 | pszRevID
14 |
15 | Revision ID string.
16 |
17 | LPCTSTR
18 |
19 |
20 | lParam
21 |
22 | Application-defined value given to EnumLSData.
23 |
24 | LPARAM
25 |
26 |
27 |
28 |
29 | To continue the enumeration, the callback function must return
30 | TRUE. To cancel the enumeration, the callback function
31 | must return FALSE.
32 |
33 | BOOL
34 |
35 |
36 | EnumBangsProc
37 | EnumBangsV2Proc
38 | EnumLSData
39 | EnumModulesProc
40 | EnumPerformanceProc
41 |
42 |
43 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_REGISTERTAB.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_REGISTERTAB
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::RegisterTab.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the tab window that is being registered.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | A handle to the MDI window for which the tab is being registered.
22 |
23 | HWND
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 | LM_TASK_UNREGISTERTAB
39 | LM_TASK_SETTABORDER
40 | LM_TASK_SETACTIVETAB
41 | LM_TASK_SETTABPROPERTIES
42 | LM_REGISTERMESSAGE
43 |
44 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/config/trace.cpp:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #include
18 | #include
19 | #include
20 |
21 |
22 | #define TRACE_MESSAGE_LEN 1024
23 |
24 | void Trace(const char *format, ...)
25 | {
26 | char message[TRACE_MESSAGE_LEN];
27 | va_list vaList;
28 |
29 | // Format message
30 | va_start(vaList, format);
31 | _vsnprintf(message, TRACE_MESSAGE_LEN, format, vaList);
32 | va_end(vaList);
33 |
34 | // Output it
35 | OutputDebugString(message);
36 | }
37 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/multiple/trace.cpp:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #include
18 | #include
19 | #include
20 |
21 |
22 | #define TRACE_MESSAGE_LEN 1024
23 |
24 | void Trace(const char *format, ...)
25 | {
26 | char message[TRACE_MESSAGE_LEN];
27 | va_list vaList;
28 |
29 | // Format message
30 | va_start(vaList, format);
31 | _vsnprintf(message, TRACE_MESSAGE_LEN, format, vaList);
32 | va_end(vaList);
33 |
34 | // Output it
35 | OutputDebugString(message);
36 | }
37 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/window/trace.cpp:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #include
18 | #include
19 | #include
20 |
21 |
22 | #define TRACE_MESSAGE_LEN 1024
23 |
24 | void Trace(const char *format, ...)
25 | {
26 | char message[TRACE_MESSAGE_LEN];
27 | va_list vaList;
28 |
29 | // Format message
30 | va_start(vaList, format);
31 | _vsnprintf(message, TRACE_MESSAGE_LEN, format, vaList);
32 | va_end(vaList);
33 |
34 | // Output it
35 | OutputDebugString(message);
36 | }
37 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/EnumBangsProc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EnumBangsProc
6 | CALLBACK
7 |
8 | Application-defined callback function used with EnumLSData and
9 | ELD_BANGS.
10 |
11 |
12 |
13 | pszBangCommandName
14 |
15 | Name of the bang command.
16 |
17 | LPCTSTR
18 |
19 |
20 | lParam
21 |
22 | Application-defined value given to EnumLSData.
23 |
24 | LPARAM
25 |
26 |
27 |
28 |
29 | To continue the enumeration, the callback function must return
30 | TRUE. To cancel the enumeration, the callback function
31 | must return FALSE.
32 |
33 | BOOL
34 |
35 |
36 | EnumBangsV2Proc
37 | EnumLSData
38 | EnumModulesProc
39 | EnumPerformanceProc
40 | EnumRevIDsProc
41 |
42 |
43 |
--------------------------------------------------------------------------------
/sdk/examples/clock/trace.cpp:
--------------------------------------------------------------------------------
1 | // Clock Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #include
19 | #include
20 | #include
21 |
22 | #define TRACE_MESSAGE_LEN 1024
23 |
24 | void Trace(const char *format, ...)
25 | {
26 | char message[TRACE_MESSAGE_LEN];
27 | va_list vaList;
28 |
29 | // Format message
30 | va_start(vaList, format);
31 | _vsnprintf(message, TRACE_MESSAGE_LEN, format, vaList);
32 | va_end(vaList);
33 |
34 | // Output it
35 | OutputDebugString(message);
36 | }
37 |
--------------------------------------------------------------------------------
/sdk/examples/hello/trace.cpp:
--------------------------------------------------------------------------------
1 | // Hello Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #include
19 | #include
20 | #include
21 |
22 | #define TRACE_MESSAGE_LEN 1024
23 |
24 | void Trace(const char *format, ...)
25 | {
26 | char message[TRACE_MESSAGE_LEN];
27 | va_list vaList;
28 |
29 | // Format message
30 | va_start(vaList, format);
31 | _vsnprintf(message, TRACE_MESSAGE_LEN, format, vaList);
32 | va_end(vaList);
33 |
34 | // Output it
35 | OutputDebugString(message);
36 | }
37 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_TASK_SETTABORDER.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_TASK_SETTABORDER
6 |
7 | LiteStep sends this message when an application has called
8 | ITaskbarList3::SetTabOrder.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the tab that is being placed.
15 |
16 | HWND
17 |
18 |
19 | lParam
20 |
21 | A handle to the tab whose thumbnail the tab should be placed to the left
22 | of.
23 |
24 | HWND
25 |
26 |
27 |
28 |
29 | The return value is ignored.
30 |
31 |
32 |
33 |
34 | To receive this message, modules need to register for it by using
35 | LM_REGISTERMESSAGE.
36 |
37 |
38 |
39 | LM_TASK_REGISTERTAB
40 | LM_TASK_UNREGISTERTAB
41 | LM_TASK_SETACTIVETAB
42 | LM_TASK_SETTABPROPERTIES
43 | LM_REGISTERMESSAGE
44 |
45 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/BangCommandProcEx.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BangCommandProcEx
6 | __cdecl
7 |
8 | Application-defined callback function that LiteStep calls to execute a
9 | bang command registered with AddBangCommandEx.
10 |
11 |
12 |
13 | hwndOwner
14 |
15 | Handle to a window that acts as owner for any dialogs or message
16 | boxes. May be NULL.
17 |
18 | HWND
19 |
20 |
21 | pszBangCommandName
22 |
23 | Name of the bang command to execute.
24 |
25 | LPCTSTR
26 |
27 |
28 | pszArgs
29 |
30 | Arguments for the bang command.
31 |
32 | LPCTSTR
33 |
34 |
35 |
36 | AddBangCommand
37 | AddBangCommandEx
38 | BangCommandProc
39 | ParseBangCommand
40 | RemoveBangCommand
41 |
42 |
43 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetRCInt.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetRCInt
6 |
7 | Gets an integer from the configuration database.
8 |
9 |
10 |
11 | pszKeyName
12 |
13 | Name of the key to retrieve.
14 |
15 | LPCTSTR
16 |
17 |
18 | nDefault
19 |
20 | Default value to return if the key cannot be found in the
21 | configuration database.
22 |
23 | INT
24 |
25 |
26 |
27 |
28 | If the key is found, the return value is the value from the
29 | configuration database. If the key cannot be found, the return value is
30 | the value of the nDefault parameter.
31 |
32 | INT
33 |
34 |
35 | GetRCBool
36 | GetRCBoolDef
37 | GetRCColor
38 | GetRCCoordinate
39 | GetRCDouble
40 | GetRCFloat
41 | GetRCInt64
42 | GetRCLine
43 | GetRCString
44 |
45 |
46 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetRCFloat.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetRCFloat
6 |
7 | Gets a float from the configuration database.
8 |
9 |
10 |
11 | pszKeyName
12 |
13 | Name of the key to retrieve.
14 |
15 | LPCTSTR
16 |
17 |
18 | nDefault
19 |
20 | Default value to return if the key cannot be found in the
21 | configuration database.
22 |
23 | FLOAT
24 |
25 |
26 |
27 |
28 | If the key is found, the return value is the value from the
29 | configuration database. If the key cannot be found, the return value is
30 | the value of the nDefault parameter.
31 |
32 | FLOAT
33 |
34 |
35 | GetRCBool
36 | GetRCBoolDef
37 | GetRCColor
38 | GetRCCoordinate
39 | GetRCDouble
40 | GetRCInt
41 | GetRCInt64
42 | GetRCLine
43 | GetRCString
44 |
45 |
46 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetRCBoolDef.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetRCBoolDef
6 |
7 | Gets a Boolean value from the configuration database.
8 |
9 |
10 |
11 | pszKeyName
12 |
13 | Name of the key to retrieve.
14 |
15 | LPCTSTR
16 |
17 |
18 | fDefault
19 |
20 | Default value to return if the key cannot be found in the
21 | configuration database.
22 |
23 | BOOL
24 |
25 |
26 |
27 |
28 | If the key is found, the return value is the value from the
29 | configuration database. If the key cannot be found, the return value is
30 | the value of the fDefault parameter.
31 |
32 | BOOL
33 |
34 |
35 | GetRCBool
36 | GetRCColor
37 | GetRCCoordinate
38 | GetRCDouble
39 | GetRCFloat
40 | GetRCInt
41 | GetRCInt64
42 | GetRCLine
43 | GetRCString
44 |
45 |
46 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetRCColor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetRCColor
6 |
7 | Gets a color from the configuration database.
8 |
9 |
10 |
11 | pszKeyName
12 |
13 | Name of the key to retrieve.
14 |
15 | LPCTSTR
16 |
17 |
18 | crDefault
19 |
20 | Default value to return if the key cannot be found in the
21 | configuration database.
22 |
23 | COLORREF
24 |
25 |
26 |
27 |
28 | If the key is found, the return value is the value from the
29 | configuration database. If the key cannot be found, the return value is
30 | the value of the crDefault parameter.
31 |
32 | COLORREF
33 |
34 |
35 | GetRCBool
36 | GetRCBoolDef
37 | GetRCCoordinate
38 | GetRCDouble
39 | GetRCFloat
40 | GetRCInt
41 | GetRCInt64
42 | GetRCLine
43 | GetRCString
44 |
45 |
46 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetRCDouble.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetRCDouble
6 |
7 | Gets a double from the configuration database.
8 |
9 |
10 |
11 | pszKeyName
12 |
13 | Name of the key to retrieve.
14 |
15 | LPCTSTR
16 |
17 |
18 | nDefault
19 |
20 | Default value to return if the key cannot be found in the
21 | configuration database.
22 |
23 | DOUBLE
24 |
25 |
26 |
27 |
28 | If the key is found, the return value is the value from the
29 | configuration database. If the key cannot be found, the return value is
30 | the value of the nDefault parameter.
31 |
32 | DOUBLE
33 |
34 |
35 | GetRCBool
36 | GetRCBoolDef
37 | GetRCColor
38 | GetRCCoordinate
39 | GetRCFloat
40 | GetRCInt
41 | GetRCInt64
42 | GetRCLine
43 | GetRCString
44 |
45 |
46 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetRCInt64.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetRCInt
6 |
7 | Gets a 64bit integer from the configuration database.
8 |
9 |
10 |
11 | pszKeyName
12 |
13 | Name of the key to retrieve.
14 |
15 | LPCTSTR
16 |
17 |
18 | nDefault
19 |
20 | Default value to return if the key cannot be found in the
21 | configuration database.
22 |
23 | INT64
24 |
25 |
26 |
27 |
28 | If the key is found, the return value is the value from the
29 | configuration database. If the key cannot be found, the return value is
30 | the value of the nDefault parameter.
31 |
32 | INT64
33 |
34 |
35 | GetRCBool
36 | GetRCBoolDef
37 | GetRCColor
38 | GetRCCoordinate
39 | GetRCDouble
40 | GetRCFloat
41 | GetRCInt
42 | GetRCLine
43 | GetRCString
44 |
45 |
46 |
--------------------------------------------------------------------------------
/utility/IService.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(ISERVICE_H)
23 | #define ISERVICE_H
24 |
25 | #include "Base.h"
26 |
27 | class IService : public CountedBase
28 | {
29 | public:
30 | virtual HRESULT Recycle() = 0;
31 | virtual HRESULT Start() = 0;
32 | virtual HRESULT Stop() = 0;
33 | };
34 |
35 |
36 | #endif // ISERVICE_H
37 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/SetDesktopArea.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SetDesktopArea
6 |
7 | Sets the desktop work area.
8 |
9 |
10 |
11 | nLeft
12 |
13 | X coordinate of work area upper left corner.
14 |
15 | INT
16 |
17 |
18 | nTop
19 |
20 | Y coordinate of work area upper left corner.
21 |
22 | INT
23 |
24 |
25 | nRight
26 |
27 | X coordinate of work area lower right corner.
28 |
29 | INT
30 |
31 |
32 | nBottom
33 |
34 | Y coordinate of work area lower right corner.
35 |
36 | INT
37 |
38 |
39 |
40 |
41 | The work area is the area of the desktop that is not covered by maximized
42 | windows.
43 |
44 |
45 | Invoking this function does not automatically reposition maximized windows.
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/utility/shlobj.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(SHLOBJ_H)
23 | #define SHLOBJ_H
24 |
25 | // ShlObj.h spits warning 4091 with VS 2015, disable it for that file until fixed.
26 | #define STRICT_TYPED_ITEMIDS
27 | #pragma warning(push)
28 | #pragma warning(disable : 4091)
29 | #include
30 | #pragma warning(pop)
31 |
32 | #endif // SHLOBJ_H
33 |
--------------------------------------------------------------------------------
/lsapi/picopng.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(PICOPNG_H)
23 | #define PICOPNG_H
24 |
25 | #include
26 |
27 | int decodePNG(std::vector& out_image_32bit,
28 | unsigned long& image_width, unsigned long& image_height,
29 | const unsigned char* in_png, unsigned long in_size);
30 |
31 | #endif // PICOPNG_H
32 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/window/common.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(COMMON_H)
18 | #define COMMON_H
19 |
20 | #include
21 | #include
22 | #include
23 | #include "lsapi.h"
24 | #include "trace.h"
25 |
26 |
27 | // Module name and version
28 | #define MODULE_AUTHORS "Litestep Development Team"
29 | #define MODULE_NAME "Tutorial"
30 | #define MODULE_VERSION "1.0"
31 |
32 | // GetWindowLongPtr index where a module window's 'this' pointer is stored
33 | #define GWLP_THIS 0
34 |
35 | // Maximum string lengths
36 | #define MAX_REVID 64
37 |
38 |
39 | #endif // COMMON_H
40 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LSGetVariableEx.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSGetVariableEx
6 |
7 | Gets a string from the configuration database.
8 |
9 |
10 |
11 | pszKeyName
12 |
13 | Name of the key to retrieve.
14 |
15 | LPCTSTR
16 |
17 |
18 | pszBuffer
19 |
20 | Buffer that receives the retrieved string. If the string is too large
21 | to fit in the buffer, it is truncated.
22 |
23 | LPTSTR
24 |
25 |
26 | cchBuffer
27 |
28 | Size of the buffer in characters.
29 |
30 | UINT
31 |
32 |
33 |
34 |
35 | If the key is found in the configuration database, the return value is
36 | nonzero. If the key cannot be found, the return value is zero.
37 |
38 | BOOL
39 |
40 |
41 | LSGetVariable
42 | LSSetVariable
43 | VarExpansion
44 | VarExpansionEx
45 |
46 |
47 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/VarExpansion.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | VarExpansion
6 |
7 | Expands variable references.
8 |
9 |
10 |
11 | pszBuffer
12 |
13 | Buffer that receives the expanded string.
14 |
15 | LPTSTR
16 |
17 |
18 | pszString
19 |
20 | String containing variable references to be expanded.
21 |
22 | LPCTSTR
23 |
24 |
25 |
26 |
27 | Variable references are enclosed in dollar signs ($) and
28 | can contain the name of a configuration key, an environment variable, or
29 | an expression.
30 |
31 |
32 | Typically a module does not call this function directly since all of the
33 | configuration functions expand variable references automatically.
34 |
35 |
36 | Deprecated. Replaced by VarExpansionEx.
37 |
38 |
39 |
40 | LSGetVariable
41 | LSGetVariableEx
42 | LSSetVariable
43 | VarExpansionEx
44 |
45 |
46 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/ParseCoordinate.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ParseCoordinate
6 |
7 | Parses a coordinate from a string.
8 |
9 |
10 |
11 | pszString
12 |
13 | String to parse.
14 |
15 | LPCSTR
16 |
17 |
18 | nDefault
19 |
20 | Default value to return if pszString is not a valid coordinate value.
21 |
22 | INT
23 |
24 |
25 | nLimit
26 |
27 | Maximum value for the coordinate.
28 |
29 | INT
30 |
31 |
32 |
33 |
34 | If the coordinate is parsed successfully, the return value is the parsed
35 | value. If an error occurs, the return value is the value of the
36 | nDefault parameter.
37 |
38 | INT
39 |
40 |
41 | For a discussion of the types of coordinates supported, see
42 | GetRCCoordinate.
43 |
44 |
45 | GetRCCoordinate
46 |
47 |
48 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/SYSTRAYINFOEVENT.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SYSTRAYINFOEVENT
6 |
7 |
8 | Used in conjunction with LM_SYSTRAYINFOEVENT.
9 |
10 |
11 |
12 |
13 | cbSize
14 | DWORD
15 | The size of the structure, in bytes.
16 |
17 |
18 | dwEvent
19 | DWORD
20 |
21 | The type of info event this is. TRAYEVENT_GETICONPOS or
22 | TRAYEVENT_GETICONSIZE.
23 |
24 |
25 |
26 | hWnd
27 | HWND
28 |
29 | A handle to the window that should receive notifications for the icon.
30 |
31 |
32 |
33 | uID
34 | UINT
35 |
36 | The application-defined identifier of the taskbar icon.
37 |
38 |
39 |
40 | guidItem
41 | GUID
42 | The GUID of the icon.
43 |
44 |
45 |
46 |
47 | LM_SYSTRAYINFOEVENT
48 |
49 |
50 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LSGetImagePath.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSGetImagePath
6 |
7 | Gets the path to the image directory.
8 |
9 |
10 |
11 | pszBuffer
12 |
13 | Buffer that receives the path. If the path is too large to fit in the
14 | buffer, it is truncated.
15 |
16 | LPTSTR
17 |
18 |
19 | cchBuffer
20 |
21 | Size of the buffer in characters.
22 |
23 | UINT
24 |
25 |
26 |
27 |
28 | If the path is retrieved successfully, the return value is nonzero. If
29 | an error occurs, the return value is zero.
30 |
31 | BOOL
32 |
33 |
34 |
35 | The path to the image directory is stored in the step.rc
36 | under the LSImageFolder key. LoadLSIcon and
37 | LoadLSImage search for files in this directory.
38 |
39 |
40 |
41 | LoadLSIcon
42 | LoadLSImage
43 | LSGetLitestepPath
44 |
45 |
46 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LSCoCreateInstance.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSCoCreateInstance
6 |
7 | Wrapper around CoCreateInstance. LiteStep implements some interfaces which
8 | were normally implemented by explorer. Since modules run in the same process
9 | as LiteStep, attempting to call CoCreateInstance for those interfaces can
10 | result in weird behavior. This function is meant to solve that.
11 |
12 |
13 |
14 | rclsid
15 |
16 |
17 | REFCLSID
18 |
19 |
20 | pUnkOuter
21 |
22 |
23 | LPUNKNOWN
24 |
25 |
26 | dwClsContext
27 |
28 |
29 | DWORD
30 |
31 |
32 | riid
33 |
34 |
35 | REFIID
36 |
37 |
38 | ppv
39 |
40 |
41 | LPVOID
42 |
43 |
44 |
45 |
46 |
47 | HRESULT
48 |
49 |
50 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/bang/common.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(COMMON_H)
18 | #define COMMON_H
19 |
20 | #include
21 | #include
22 | #include
23 | #include "lsapi.h"
24 | #include "trace.h"
25 |
26 |
27 | // Module name and version
28 | #define MODULE_AUTHORS "Litestep Development Team"
29 | #define MODULE_NAME "Tutorial"
30 | #define MODULE_VERSION "1.0"
31 |
32 | // GetWindowLongPtr index where a module window's 'this' pointer is stored
33 | #define GWLP_THIS 0
34 |
35 | // Maximum string lengths
36 | #define MAX_ENUM_NAME 64
37 | #define MAX_REVID 64
38 | #define MAX_TEXT 256
39 |
40 |
41 | #endif // COMMON_H
42 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/skin/common.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(COMMON_H)
18 | #define COMMON_H
19 |
20 | #include
21 | #include
22 | #include
23 | #include "lsapi.h"
24 | #include "trace.h"
25 |
26 |
27 | // Module name and version
28 | #define MODULE_AUTHORS "Litestep Development Team"
29 | #define MODULE_NAME "Tutorial"
30 | #define MODULE_VERSION "1.0"
31 |
32 | // GetWindowLongPtr index where a module window's 'this' pointer is stored
33 | #define GWLP_THIS 0
34 |
35 | // Maximum string lengths
36 | #define MAX_ENUM_NAME 64
37 | #define MAX_REVID 64
38 | #define MAX_TEXT 256
39 |
40 |
41 | #endif // COMMON_H
42 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/config/common.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(COMMON_H)
18 | #define COMMON_H
19 |
20 | #include
21 | #include
22 | #include
23 | #include "lsapi.h"
24 | #include "trace.h"
25 |
26 |
27 | // Module name and version
28 | #define MODULE_AUTHORS "Litestep Development Team"
29 | #define MODULE_NAME "Tutorial"
30 | #define MODULE_VERSION "1.0"
31 |
32 | // GetWindowLongPtr index where a module window's 'this' pointer is stored
33 | #define GWLP_THIS 0
34 |
35 | // Maximum string lengths
36 | #define MAX_ENUM_NAME 64
37 | #define MAX_REVID 64
38 | #define MAX_TEXT 256
39 |
40 |
41 | #endif // COMMON_H
42 |
--------------------------------------------------------------------------------
/sdk/examples/clock/utility.h:
--------------------------------------------------------------------------------
1 | // Clock Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #if !defined(UTILITY_H)
19 | #define UTILITY_H
20 |
21 | #include
22 |
23 |
24 | /**
25 | * Returns a handle to Litestep's desktop window.
26 | */
27 | HWND GetLitestepDesktopWindow();
28 |
29 | /**
30 | * Simultaneously removes one set of styles from a window while adding another
31 | * set.
32 | *
33 | * @param hWnd handle to the window whose style is modified
34 | * @param toRemove set of styles to remove
35 | * @param toAdd set of styles to add
36 | */
37 | void ModifyWindowStyle(HWND hWnd, UINT toRemove, UINT toAdd);
38 |
39 |
40 | #endif // UTILITY_H
41 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/AddBangCommand.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AddBangCommand
6 | Registers a bang command.
7 |
8 |
9 | pszBangCommandName
10 |
11 | Name of the bang command to register. The first character must be an
12 | exclamation point (!).
13 |
14 | LPCTSTR
15 |
16 |
17 | pfnCallback
18 |
19 | Pointer to a callback function that LiteStep calls to execute the bang
20 | command. For more information, see BangCommandProc.
21 |
22 | BANGCOMMANDPROC
23 |
24 |
25 |
26 |
27 | If the bang command is successfully registered, the return value is
28 | nonzero. If an error occurs, the return value is zero.
29 |
30 | BOOL
31 |
32 |
33 |
34 | Before a module is unloaded, it must call RemoveBangCommand
35 | to unregister the bang command.
36 |
37 |
38 |
39 | AddBangCommandEx
40 | BangCommandProc
41 | ParseBangCommand
42 | RemoveBangCommand
43 |
44 |
45 |
--------------------------------------------------------------------------------
/utility/IManager.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(IMANAGER_H)
23 | #define IMANAGER_H
24 |
25 | #include "Base.h"
26 | #include "ILiteStep.h"
27 |
28 | class IManager : public CountedBase
29 | {
30 | public:
31 | virtual HRESULT Start(ILiteStep *pILiteStep) = 0;
32 | virtual HRESULT Stop() = 0;
33 |
34 | // Recycling
35 | virtual HRESULT rStart() = 0;
36 | virtual HRESULT rStop() = 0;
37 | };
38 |
39 | #endif // IMANAGER_H
40 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/multiple/common.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(COMMON_H)
18 | #define COMMON_H
19 |
20 | #include
21 | #include
22 | #include
23 | #include "lsapi.h"
24 | #include "trace.h"
25 |
26 |
27 | // Module name and version
28 | #define MODULE_AUTHORS "Litestep Development Team"
29 | #define MODULE_NAME "Tutorial"
30 | #define MODULE_VERSION "1.0"
31 |
32 | // GetWindowLongPtr index where a module window's 'this' pointer is stored
33 | #define GWLP_THIS 0
34 |
35 | // Maximum string lengths
36 | #define MAX_ENUM_NAME 64
37 | #define MAX_KEY 64
38 | #define MAX_NAME 32
39 | #define MAX_REVID 64
40 | #define MAX_TEXT 256
41 |
42 |
43 | #endif // COMMON_H
44 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetRCBool.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetRCBool
6 |
7 | Gets a Boolean value from the configuration database.
8 |
9 |
10 |
11 | pszKeyName
12 |
13 | Name of the key to retrieve.
14 |
15 | LPCTSTR
16 |
17 |
18 | fValue
19 |
20 | Value to return if the key is found in the configuration database. If
21 | the key cannot be found, GetRCBool returns the logical
22 | complement of this value.
23 |
24 | BOOL
25 |
26 |
27 |
28 |
29 | If the key is found in the configuration database, the return value is
30 | the value of the fValue parameter. If the key cannot be
31 | found, the return value is the logical complement of the
32 | fValue parameter.
33 |
34 | BOOL
35 |
36 |
37 | GetRCBoolDef
38 | GetRCColor
39 | GetRCCoordinate
40 | GetRCDouble
41 | GetRCFloat
42 | GetRCInt
43 | GetRCInt64
44 | GetRCLine
45 | GetRCString
46 |
47 |
48 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/VarExpansionEx.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | VarExpansionEx
6 |
7 | Expands variable references.
8 |
9 |
10 |
11 | pszBuffer
12 |
13 | Buffer that receives the expanded string.
14 |
15 | LPTSTR
16 |
17 |
18 | pszString
19 |
20 | String containing the variable references to be expanded.
21 |
22 | LPCTSTR
23 |
24 |
25 | cchBuffer
26 |
27 | Size of the buffer in characters.
28 |
29 | UINT
30 |
31 |
32 |
33 |
34 | Variable references are enclosed in dollar signs ($) and
35 | can contain the name of a configuration key, an environment variable, or
36 | an expression.
37 |
38 |
39 | Typically a module does not call this function directly since all of the
40 | configuration functions expand variable references automatically.
41 |
42 |
43 |
44 | LSGetVariable
45 | LSGetVariableEx
46 | LSSetVariable
47 | VarExpansion
48 |
49 |
50 |
--------------------------------------------------------------------------------
/docs/build.txt:
--------------------------------------------------------------------------------
1 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
2 | LiteStep 0.25.0
3 | Developer Information
4 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
5 |
6 |
7 | -- LITESTEP CORE DEVELOPMENT ---------------------------------------------------
8 |
9 | For build instructions, please review
10 |
11 | - build_vc11.txt (official supported method)
12 | - build_mingw.txt
13 |
14 | The LiteStep source is segmented into separate code modules. The source folder
15 | structure represents these code modules.
16 |
17 | \LiteStep
18 | - Contains build environment project files
19 |
20 | \LiteStep\litestep
21 | - Contains the "litestep.exe" source files
22 |
23 | \LiteStep\lsapi
24 | - Contains the "lsapi.dll" source files
25 |
26 | \LiteStep\utility
27 | - Contains common utility source files used across all code modules
28 |
29 |
30 | -- BINARY FILE DESCRIPTION -----------------------------------------------------
31 |
32 | - litestep.exe Main executable. Loads modules, handles window messages
33 | communication. Runs startup apps, includes DDE and tray
34 | services.
35 |
36 | - lsapi.dll LiteStep API for modules to use. Loads and parses step.rc;
37 | handles $evars$ and all other configuration. Manages !bang
38 | commands, includes core !bangs.
39 |
40 | -- LITESTEP MODULE DEVELOPMENT -------------------------------------------------
41 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/match.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | match
6 |
7 | Matches a text string against a case-insensitive wildcard pattern.
8 |
9 |
10 |
11 | pszPattern
12 |
13 | A NULL terminated string containing a wildcard pattern.
14 |
15 | LPCTSTR
16 |
17 |
18 | pszText
19 |
20 | A NULL terminated string containing the text to match
21 | against the given wildcard pattern.
22 |
23 | LPCTSTR
24 |
25 |
26 |
27 |
28 | If the string given in pszText fully matches the wildcard
29 | pattern given in pszPattern, the return value is non zero.
30 | If the match failed, the return value is zero.
31 |
32 | BOOL
33 |
34 |
35 |
36 | match implements a very limited pattern matching syntax. See
37 | is_valid_pattern for details.
38 |
39 |
40 | If needed, use matche to determine why a pattern match failed.
41 |
42 |
43 |
44 | is_valid_pattern
45 | matche
46 |
47 |
48 |
--------------------------------------------------------------------------------
/litestep/DDEStub.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(DDESTUB_H)
23 | #define DDESTUB_H
24 |
25 | #include "../utility/IService.h"
26 |
27 | class DDEStub: public IService
28 | {
29 | public:
30 | DDEStub();
31 | ~DDEStub();
32 |
33 | HRESULT Start() override;
34 | HRESULT Stop() override;
35 | HRESULT Recycle() override;
36 |
37 | private:
38 | typedef void (WINAPI* ShellDDEFunc)(BOOL);
39 | static HMODULE m_hShDocVw;
40 | static ShellDDEFunc m_pShellDDEInit;
41 | };
42 |
43 | #endif // DDESTUB_H
44 |
--------------------------------------------------------------------------------
/sdk/examples/clock/bang.h:
--------------------------------------------------------------------------------
1 | // Clock Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #if !defined(BANG_H)
19 | #define BANG_H
20 |
21 |
22 | // Bang command callback functions
23 | void BangAlwaysOnTop(HWND hwndOwner, const char *args);
24 | void BangHide(HWND hwndOwner, const char *args);
25 | void BangMoveBy(HWND hwndOwner, const char *args);
26 | void BangMoveTo(HWND hwndOwner, const char *args);
27 | void BangPinToDesktop(HWND hwndOwner, const char *args);
28 | void BangResizeBy(HWND hwndOwner, const char *args);
29 | void BangResizeTo(HWND hwndOwner, const char *args);
30 | void BangShow(HWND hwndOwner, const char *args);
31 | void BangToggle(HWND hwndOwner, const char *args);
32 | void BangToggleAlwaysOnTop(HWND hwndOwner, const char *args);
33 |
34 |
35 | #endif // BANG_H
36 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/EnumPerformanceProc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EnumPerformanceProc
6 | CALLBACK
7 |
8 | Application-defined callback function used with EnumLSData and
9 | ELD_PERFORMANCE.
10 |
11 |
12 |
13 | pszPath
14 |
15 | Path to the module's DLL.
16 |
17 | LPCTSTR
18 |
19 |
20 | dwLoadTime
21 |
22 | How many milliseconds this modules init function took to execute.
23 |
24 | DWORD
25 |
26 |
27 | lParam
28 |
29 | Application-defined value given to EnumLSData.
30 |
31 | LPARAM
32 |
33 |
34 |
35 |
36 | To continue the enumeration, the callback function must return
37 | TRUE. To cancel the enumeration, the callback function
38 | must return FALSE.
39 |
40 | BOOL
41 |
42 |
43 | EnumBangsProc
44 | EnumBangsV2Proc
45 | EnumLSData
46 | EnumModulesProc
47 | EnumRevIDsProc
48 |
49 |
50 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LSExecute.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSExecute
6 |
7 | Executes a bang command or application.
8 |
9 |
10 |
11 | hwndOwner
12 |
13 | Handle to a window that acts as owner for any dialogs or message
14 | boxes. May be NULL.
15 |
16 | HWND
17 |
18 |
19 | pszCommandLine
20 |
21 | Command line to execute. This consists of the name of a bang command
22 | or the path to an application followed by any arguments.
23 |
24 | LPCTSTR
25 |
26 |
27 | nShowCmd
28 |
29 | Value that controls how an application displays its main window. This
30 | can be any of the SW constants used with the ShowWindow
31 | function. If executing a bang command, this parameter is ignored.
32 |
33 | INT
34 |
35 |
36 |
37 |
38 | The return value for this function is not well defined and should not be
39 | relied upon.
40 |
41 | HINSTANCE
42 |
43 |
44 | LSExecuteEx
45 | ParseBangCommand
46 |
47 |
48 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/EnumBangsV2Proc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EnumBangsV2Proc
6 | CALLBACK
7 |
8 | Application-defined callback function used with EnumLSData and
9 | ELD_BANGS_V2.
10 |
11 |
12 |
13 | HINSTANCE
14 | hinstModule
15 |
16 | HINSTANCE of the module that registered the bang command.
17 |
18 |
19 |
20 | pszBangCommandName
21 |
22 | Name of the bang command.
23 |
24 | LPCTSTR
25 |
26 |
27 | lParam
28 |
29 | Application-defined value given to EnumLSData.
30 |
31 | LPARAM
32 |
33 |
34 |
35 |
36 | To continue the enumeration, the callback function must return
37 | TRUE. To cancel the enumeration, the callback function
38 | must return FALSE.
39 |
40 | BOOL
41 |
42 |
43 | EnumBangsProc
44 | EnumLSData
45 | EnumModulesProc
46 | EnumPerformanceProc
47 | EnumRevIDsProc
48 |
49 |
50 |
--------------------------------------------------------------------------------
/docs/readme.txt:
--------------------------------------------------------------------------------
1 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | LiteStep 0.24.7
3 | Readme
4 |
5 | Copyright (c) 2005 - Litestep Development Team
6 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 |
8 |
9 | -- PREFACE ------------------------------------------------------------
10 |
11 | Your friendly devteam is proud to announce the release of Litestep
12 | 0.24.7 Final. Changes since Release Candidate 4 are listed below as
13 | usual. Refer to changes.txt for a list of changes since 0.24.6. Refer
14 | to release_notes.txt for complete documentation on this release.
15 |
16 |
17 | -- CHANGES SINCE RELEASE CANDIDATE 4 ----------------------------------
18 |
19 | - Fixed issues with module threading
20 |
21 | - Fixed !Recycle/!ReloadModule/!UnloadModule lockups
22 |
23 | - Removed the "nopump" modifier from LoadModule
24 |
25 | - Changed setting "LSTrayService" introduced in RC 2 to
26 | "LSDisableTrayService"
27 |
28 | - Made "LSAutoHideModules" update on Recycle
29 |
30 | - Updated release notes
31 |
32 | - Updated build instructions
33 |
34 |
35 | -- FINAL WORDS --------------------------------------------------------
36 |
37 | Thanks to the LiteStep Community for all the positive feedback and
38 | support; and for the endless patience. It has taken a long time, but
39 | LiteStep 0.24.7 has finally arrived.
40 |
41 | Please send any suggestions or bug reports to the LS Mailing List or
42 | use the lsdev.org forums.
43 |
44 | Happy LiteStepping,
45 |
46 | - The Litestep Development Team
47 | http://www.lsdev.org/
48 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_REFRESH.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_REFRESH
6 |
7 | When a module receives this message, it should re-read its settings.
8 |
9 |
10 |
11 | wParam
12 |
13 | This parameter is set to 0.
14 |
15 | WPARAM
16 |
17 |
18 | lParam
19 |
20 | This parameter is set to 0.
21 |
22 | LPARAM
23 |
24 |
25 |
26 |
27 | The return value is ignored.
28 |
29 |
30 |
31 |
32 | To receive this message, modules need to register for it by using
33 | LM_REGISTERMESSAGE.
34 |
35 |
36 | It is recommended that all modules implement this.
37 |
38 |
39 | LiteStep typically sends this message when the user calls the
40 | !refresh bang command.
41 |
42 |
43 | The order in which modules receive this message is undefined.
44 |
45 |
46 |
47 |
48 | case LM_REFRESH:
49 | {
50 | DestroyWidgets();
51 | UnloadSetup();
52 |
53 | LoadSetup();
54 | CreateWidgets();
55 | }
56 |
57 |
58 | LM_REGISTERMESSAGE
59 |
60 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/bang/bang.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(BANG_H)
18 | #define BANG_H
19 |
20 | #include "common.h"
21 |
22 |
23 | // Bang command callback functions
24 | void BangAlwaysOnTop(HWND hwndOwner, LPCTSTR args);
25 | void BangHide(HWND hwndOwner, LPCTSTR args);
26 | void BangMoveBy(HWND hwndOwner, LPCTSTR args);
27 | void BangMoveTo(HWND hwndOwner, LPCTSTR args);
28 | void BangPinToDesktop(HWND hwndOwner, LPCTSTR args);
29 | void BangResizeBy(HWND hwndOwner, LPCTSTR args);
30 | void BangResizeTo(HWND hwndOwner, LPCTSTR args);
31 | void BangSetImage(HWND hwndOwner, LPCTSTR args);
32 | void BangSetText(HWND hwndOwner, LPCTSTR args);
33 | void BangShow(HWND hwndOwner, LPCTSTR args);
34 | void BangToggle(HWND hwndOwner, LPCTSTR args);
35 | void BangToggleAlwaysOnTop(HWND hwndOwner, LPCTSTR args);
36 |
37 |
38 | #endif // BANG_H
39 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/skin/bang.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(BANG_H)
18 | #define BANG_H
19 |
20 | #include "common.h"
21 |
22 |
23 | // Bang command callback functions
24 | void BangAlwaysOnTop(HWND hwndOwner, LPCTSTR args);
25 | void BangHide(HWND hwndOwner, LPCTSTR args);
26 | void BangMoveBy(HWND hwndOwner, LPCTSTR args);
27 | void BangMoveTo(HWND hwndOwner, LPCTSTR args);
28 | void BangPinToDesktop(HWND hwndOwner, LPCTSTR args);
29 | void BangResizeBy(HWND hwndOwner, LPCTSTR args);
30 | void BangResizeTo(HWND hwndOwner, LPCTSTR args);
31 | void BangSetImage(HWND hwndOwner, LPCTSTR args);
32 | void BangSetText(HWND hwndOwner, LPCTSTR args);
33 | void BangShow(HWND hwndOwner, LPCTSTR args);
34 | void BangToggle(HWND hwndOwner, LPCTSTR args);
35 | void BangToggleAlwaysOnTop(HWND hwndOwner, LPCTSTR args);
36 |
37 |
38 | #endif // BANG_H
39 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_FULLSCREENDEACTIVATED.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_FULLSCREENDEACTIVATED
6 |
7 | LiteStep sends this message when there are no longer any fullscreen windows
8 | on a monitor.
9 |
10 |
11 |
12 | wParam
13 |
14 | A handle to the monitor which contains the fullscreen window.
15 |
16 | HMONITOR
17 |
18 |
19 | lParam
20 |
21 | Not used. Always 0.
22 |
23 | LPARAM
24 |
25 |
26 |
27 |
28 | The return value is ignored.
29 |
30 |
31 |
32 |
33 | To receive this message, modules need to register for it by using
34 | LM_REGISTERMESSAGE.
35 |
36 |
37 |
38 |
39 | case LM_FULLSCREENDEACTIVATED:
40 | {
41 | for (Widget *pWidget : gWidgets)
42 | {
43 | if (pWidget->bAlwaysOnTop && MonitorFromWindow(pWidget->hWnd, MONITOR_DEFAULTTONULL) == (HMONITOR)wParam)
44 | {
45 | SetWindowPos(pWidget->hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
46 | }
47 | }
48 |
49 | return 0;
50 | }
51 |
52 |
53 |
54 | LM_FULLSCREENACTIVATED
55 | LM_REGISTERMESSAGE
56 |
57 |
--------------------------------------------------------------------------------
/sdk/examples/hello/Makefile:
--------------------------------------------------------------------------------
1 | # To make a release build: make
2 | # To clean up a release build: make clean
3 | # To make a debug build: make DEBUG=1
4 | # To clean up a debug build: make DEBUG=1 clean
5 |
6 | CXX = g++
7 | DLLWRAP = dllwrap
8 | TARGET = hello.dll
9 | DEF = exports.def
10 | LIBS = -llsapi
11 |
12 | ifdef DEBUG
13 | CXXFLAGS = -I"..\..\include" -Wall -D_DEBUG -g
14 | LDFLAGS = -L"..\..\lib"
15 | OUTPUT_DIR = Debug
16 | OBJ_DIR = Debug
17 | else
18 | CXXFLAGS = -I"..\..\include" -Wall -DNDEBUG -O2
19 | LDFLAGS = -L"..\..\lib" -s
20 | OUTPUT_DIR = Release
21 | OBJ_DIR = Release
22 | endif
23 |
24 | OBJS = $(OBJ_DIR)\bang.o \
25 | $(OBJ_DIR)\main.o \
26 | $(OBJ_DIR)\trace.o
27 |
28 | ifeq ($(OS), Windows_NT)
29 | NULL =
30 | else
31 | NULL = nul
32 | endif
33 |
34 | .PHONY: all directories clean
35 |
36 | all: directories $(OUTPUT_DIR)\$(TARGET)
37 |
38 | directories:
39 | -@if not exist $(OUTPUT_DIR)\$(NULL) mkdir $(OUTPUT_DIR)
40 | -@if not exist $(OBJ_DIR)\$(NULL) mkdir $(OBJ_DIR)
41 |
42 | clean:
43 | @echo Deleting intermediate files
44 | -@del $(OBJ_DIR)\*.o
45 | @echo Deleting $(TARGET)
46 | -@del $(OUTPUT_DIR)\$(TARGET)
47 |
48 | $(OUTPUT_DIR)\$(TARGET): $(DEF) $(OBJS)
49 | @echo Linking $(TARGET)
50 | @$(DLLWRAP) --driver-name $(CXX) $(LDFLAGS) --def $(DEF) $(OBJS) $(LIBS) -o $(OUTPUT_DIR)\$(TARGET)
51 |
52 | $(OBJ_DIR)\bang.o: bang.cpp bang.h version.h
53 | @echo Compiling $<
54 | @$(CXX) $(CXXFLAGS) -c $< -o $@
55 |
56 | $(OBJ_DIR)\main.o: main.cpp bang.h trace.h version.h
57 | @echo Compiling $<
58 | @$(CXX) $(CXXFLAGS) -c $< -o $@
59 |
60 | $(OBJ_DIR)\trace.o: trace.cpp trace.h
61 | @echo Compiling $<
62 | @$(CXX) $(CXXFLAGS) -c $< -o $@
63 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LCReadNextLine.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LCReadNextLine
6 |
7 | Gets the next line from a configuration file.
8 |
9 |
10 |
11 | pFile
12 |
13 | Handle to an open file. The file must have been opened with
14 | LCOpen.
15 |
16 | LPVOID
17 |
18 |
19 | pszBuffer
20 |
21 | Buffer that receives the next line from the configuration file. If the
22 | line is too large to fit in the buffer, it is truncated.
23 |
24 | LPTSTR
25 |
26 |
27 | cchBuffer
28 |
29 | Size of the buffer in characters.
30 |
31 | UINT
32 |
33 |
34 |
35 |
36 | If the next line was successfully retrieved, the return value is
37 | nonzero. If there are no more lines in the configuration file or an
38 | error occurs, the return value is zero.
39 |
40 | BOOL
41 |
42 |
43 |
44 | LCReadNextLine retrieves the entire unparsed line from the
45 | configuration file, including the key name.
46 |
47 |
48 |
49 | LCClose
50 | LCOpen
51 | LCReadNextCommand
52 | LCReadNextConfig
53 |
54 |
55 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LCOpen.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LCOpen
6 |
7 | Opens a configuration file for sequential access.
8 |
9 |
10 |
11 | pszPath
12 |
13 | Path to a configuration file or NULL. If
14 | NULL, LCOpen opens LiteStep's main
15 | configuration file (step.rc).
16 |
17 | LPCTSTR
18 |
19 |
20 |
21 |
22 |
23 | If the configuration file is opened successfully, the return value is
24 | a handle to the file. If an error occurs, the return value is
25 | NULL.
26 |
27 |
28 | The returned file handle must be closed with LCClose.
29 |
30 |
31 | LPVOID
32 |
33 |
34 |
35 | LCOpen opens a configuration file for subsequent access with
36 | LCReadNextCommand, LCReadNextConfig, or
37 | LCReadNextLine.
38 |
39 |
40 | The value returned from LCOpen should be treated as an opaque
41 | file handle. In past versions of LiteStep the return value was a C
42 | FILE *, however this is no longer the case.
43 |
44 |
45 |
46 | LCClose
47 | LCReadNextCommand
48 | LCReadNextConfig
49 | LCReadNextLine
50 |
51 |
52 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_REGISTERMESSAGE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_REGISTERMESSAGE
6 |
7 | A module sends LM_REGISTERMESSAGE to LiteStep to register
8 | for special messages.
9 |
10 |
11 |
12 | wParam
13 |
14 | Handle (HWND) to recipient/module window.
15 |
16 | WPARAM
17 |
18 |
19 | lParam
20 |
21 | Array of type UINT of messages to register for,
22 | terminated with a 0 item.
23 |
24 | LPARAM
25 |
26 |
27 |
28 |
29 | The return value is not well defined and should not be relied upon.
30 |
31 |
32 |
33 | Before a module is unloaded, it must unregister all messages it registered
34 | for by using LM_UNREGISTERMESSAGE.
35 |
36 |
37 | After using the following code, LiteStep will dispatch the
38 | LM_GETREVID and LM_REFRESH messages to the module
39 | at appropriate times.
40 |
41 | HWND hModuleWindow = ...;
42 |
43 | UINT uMessages[] = { LM_GETREVID, LM_REFRESH, 0 };
44 |
45 | SendMessage(GetLitestepWnd(), LM_REGISTERMESSAGE, (WPARAM)hModuleWindow, (LPARAM)&uMessages);
46 |
47 |
48 | GetLitestepWnd
49 | LM_UNREGISTERMESSAGE
50 |
51 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_FULLSCREENACTIVATED.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_FULLSCREENACTIVATED
6 |
7 | LiteStep sends this message when the currently active window becomes a
8 | fullscreen window, on a monitor which previously did not contain any
9 | fullscreen windows.
10 |
11 |
12 |
13 | wParam
14 |
15 | A handle to the monitor which contains the fullscreen window.
16 |
17 | HMONITOR
18 |
19 |
20 | lParam
21 |
22 | Handle to the fullscreen window.
23 |
24 | HWND
25 |
26 |
27 |
28 |
29 | The return value is ignored.
30 |
31 |
32 |
33 |
34 | To receive this message, modules need to register for it by using
35 | LM_REGISTERMESSAGE.
36 |
37 |
38 |
39 |
40 | case LM_FULLSCREENACTIVATED:
41 | {
42 | for (Widget *pWidget : gWidgets)
43 | {
44 | if (pWidget->bAlwaysOnTop && MonitorFromWindow(pWidget->hWnd, MONITOR_DEFAULTTONULL) == (HMONITOR)wParam)
45 | {
46 | SetWindowPos(pWidget->hWnd, (HWND)lParam, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
47 | }
48 | }
49 |
50 | return 0;
51 | }
52 |
53 |
54 |
55 | LM_FULLSCREENDEACTIVATED
56 | LM_REGISTERMESSAGE
57 |
58 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_UNREGISTERMESSAGE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_UNREGISTERMESSAGE
6 |
7 | A module sends LM_UNREGISTERMESSAGE to LiteStep to unregister
8 | messages it previously registered for with LM_REGISTERMESSAGE.
9 |
10 |
11 |
12 | wParam
13 |
14 | Handle (HWND) to recipient/module window.
15 |
16 | WPARAM
17 |
18 |
19 | lParam
20 |
21 | Array of type UINT of messages to unregister,
22 | terminated with a 0 item.
23 |
24 | LPARAM
25 |
26 |
27 |
28 |
29 | The return value is not well defined and should not be relied upon.
30 |
31 |
32 |
33 | LM_UNREGISTERMESSAGE may be used to unregister only a subset of
34 | the previously registered messages.
35 |
36 |
37 | After using the following code, LiteStep no longer dispatch the
38 | LM_GETREVID and LM_REFRESH messages to the module.
39 |
40 | HWND hModuleWindow = ...;
41 |
42 | UINT uMessages[] = { LM_GETREVID, LM_REFRESH, 0 };
43 |
44 | SendMessage(GetLitestepWnd(), LM_UNREGISTERMESSAGE, (WPARAM)hModuleWindow, (LPARAM)&uMessages);
45 |
46 |
47 | GetLitestepWnd
48 | LM_REGISTERMESSAGE
49 |
50 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/multiple/bang.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(BANG_H)
18 | #define BANG_H
19 |
20 | #include "common.h"
21 |
22 |
23 | // Bang command callback functions
24 | void BangAlwaysOnTop(HWND hwndOwner, LPCTSTR args);
25 | void BangCreate(HWND hwndOwner, LPCTSTR args);
26 | void BangDestroy(HWND hwndOwner, LPCTSTR args);
27 | void BangHide(HWND hwndOwner, LPCTSTR args);
28 | void BangMoveBy(HWND hwndOwner, LPCTSTR args);
29 | void BangMoveTo(HWND hwndOwner, LPCTSTR args);
30 | void BangPinToDesktop(HWND hwndOwner, LPCTSTR args);
31 | void BangResizeBy(HWND hwndOwner, LPCTSTR args);
32 | void BangResizeTo(HWND hwndOwner, LPCTSTR args);
33 | void BangSetImage(HWND hwndOwner, LPCTSTR args);
34 | void BangSetText(HWND hwndOwner, LPCTSTR args);
35 | void BangShow(HWND hwndOwner, LPCTSTR args);
36 | void BangToggle(HWND hwndOwner, LPCTSTR args);
37 | void BangToggleAlwaysOnTop(HWND hwndOwner, LPCTSTR args);
38 |
39 |
40 | #endif // BANG_H
41 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/AddBangCommandEx.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AddBangCommandEx
6 | Registers a bang command.
7 |
8 |
9 | pszBangCommandName
10 |
11 | Name of the bang command to register. The first character must be an
12 | exclamation point (!).
13 |
14 | LPCTSTR
15 |
16 |
17 | pfnCallback
18 |
19 | Pointer to a callback function that LiteStep calls to execute the bang
20 | command. For more information, see BangCommandProcEx.
21 |
22 | BANGCOMMANDPROCEX
23 |
24 |
25 |
26 |
27 | If the bang command is successfully registered, the return value is
28 | nonzero. If an error occurs, the return value is zero.
29 |
30 | BOOL
31 |
32 |
33 |
34 | AddBangCommandEx differs from AddBangCommand in
35 | that the callback function is given the bang command name. This makes it
36 | possible for multiple bang commands to be registered with the same
37 | callback function.
38 |
39 |
40 | Before a module is unloaded, it must call RemoveBangCommand
41 | to unregister the bang command.
42 |
43 |
44 |
45 | AddBangCommand
46 | BangCommandProcEx
47 | ParseBangCommand
48 | RemoveBangCommand
49 |
50 |
51 |
--------------------------------------------------------------------------------
/litestep/ExplorerService.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(EXPLORERSERVICE_H)
23 | #define EXPLORERSERVICE_H
24 |
25 | #include "ExplorerService.h"
26 | #include "../utility/common.h"
27 | #include "../utility/IService.h"
28 | #include
29 |
30 |
31 | class ExplorerService : public IService
32 | {
33 | public:
34 | ~ExplorerService();
35 | ExplorerService();
36 |
37 | //
38 | // IService methods
39 | //
40 | public:
41 | HRESULT Start() override;
42 | HRESULT Stop() override;
43 | HRESULT Recycle() override;
44 |
45 | private:
46 | static DWORD WINAPI ExplorerThread(LPVOID);
47 |
48 | private:
49 | DWORD m_dwThreadID;
50 | HANDLE m_hExplorerThread;
51 | };
52 |
53 |
54 | #endif // EXPLORERSERVICE_H
55 |
--------------------------------------------------------------------------------
/litestep/COMService.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1998 (e)
6 | // Copyright (C) 1997-2015 LiteStep Development Team
7 | //
8 | // This program is free software; you can redistribute it and/or
9 | // modify it under the terms of the GNU General Public License
10 | // as published by the Free Software Foundation; either version 2
11 | // of the License, or (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program; if not, write to the Free Software
20 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 | //
22 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
23 | #if !defined(COMSERVICE_H)
24 | #define COMSERVICE_H
25 |
26 | #include "../utility/IService.h"
27 | #include "COMFactory.h"
28 | #include
29 |
30 | class COMService : public IService
31 | {
32 | public:
33 | COMService();
34 | ~COMService();
35 |
36 | // IService
37 | public:
38 | HRESULT Start() override;
39 | HRESULT Stop() override;
40 | HRESULT Recycle() override;
41 |
42 | private:
43 | void ThreadProc();
44 |
45 | private:
46 | COMFactory *m_pFactory;
47 |
48 | // COM worker thread
49 | std::thread m_COMThread;
50 |
51 | // Necesary since XP does not support GetThreadId
52 | DWORD m_dwThreadID;
53 | };
54 |
55 | #endif // COMSERVICE_H
56 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/ParseBangCommand.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ParseBangCommand
6 | Executes a bang command.
7 |
8 |
9 | hwndOwner
10 |
11 | Handle to a window that acts as owner for any dialogs or message
12 | boxes. May be NULL.
13 |
14 | HWND
15 |
16 |
17 | pszBangCommandName
18 |
19 | Name of the bang command to execute. The first character must be an
20 | exclamation point (!).
21 |
22 | LPCTSTR
23 |
24 |
25 | pszArgs
26 |
27 | Arguments for the bang command. If this parameter is
28 | NULL, it is treated as an empty string.
29 |
30 | LPCTSTR
31 |
32 |
33 |
34 |
35 | If the bang command executes successfully, the return value is nonzero.
36 | If an error occurs, the return value is zero.
37 |
38 | BOOL
39 |
40 |
41 |
42 | The preferred way to execute bang commands is to call
43 | LSExecute or LSExecuteEx as these functions
44 | can execute both bang commands and applications.
45 |
46 |
47 |
48 | AddBangCommand
49 | AddBangCommandEx
50 | LSExecute
51 | LSExecuteEx
52 | RemoveBangCommand
53 |
54 |
55 |
--------------------------------------------------------------------------------
/lsapi/MathException.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(MATHEXCEPTION_H)
23 | #define MATHEXCEPTION_H
24 |
25 | #include
26 | #include
27 |
28 |
29 | /**
30 | * Exception thrown when an error occurs parsing or evaluating a math
31 | * expression.
32 | */
33 | class MathException : public std::runtime_error
34 | {
35 | public:
36 | /**
37 | * Constructs a MathException with the specified message.
38 | */
39 | MathException(const std::wstring& message) throw() : std::runtime_error(std::string(message.begin(), message.end()))
40 | {
41 | this->sMessage = message;
42 | }
43 |
44 | const std::wstring & GetException() const
45 | {
46 | return sMessage;
47 | }
48 |
49 | std::wstring sMessage;
50 | };
51 |
52 |
53 | #endif
54 |
--------------------------------------------------------------------------------
/sdk/examples/hello/main.cpp:
--------------------------------------------------------------------------------
1 | // Hello Example
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU Lesser General Public License as published by the Free
6 | // Software Foundation; either version 2.1 of the License, or (at your option)
7 | // any later version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 | // details.
13 | //
14 | // You should have received a copy of the GNU Lesser General Public License
15 | // along with this program; if not, write to the Free Software Foundation, Inc.,
16 | // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 |
18 | #include
19 | #include "lsapi.h"
20 | #include "bang.h"
21 | #include "trace.h"
22 | #include "version.h"
23 |
24 |
25 | // Litestep calls this function after it loads the module. This is where the
26 | // module should register bang commands and create windows. If initialization
27 | // succeeds, return zero. If an error occurs, return a nonzero value.
28 | extern "C" int initModuleEx(HWND hwndParent, HINSTANCE hInstance, const char *path)
29 | {
30 | TRACE1("%s: initModuleEx", MODULE_NAME);
31 |
32 | // Register bang commands
33 | AddBangCommand("!Hello", BangHello);
34 |
35 | return 0;
36 | }
37 |
38 |
39 | // Litestep calls this function before it unloads the module. This function
40 | // should unregister bang commands and destroy windows.
41 | extern "C" void quitModule(HINSTANCE hInstance)
42 | {
43 | TRACE1("%s: quitModule", MODULE_NAME);
44 |
45 | // Unregister bang commands
46 | RemoveBangCommand("!Hello");
47 | }
48 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/CommandParse.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CommandParse
6 |
7 | Splits a string into a command token and its arguments.
8 |
9 |
10 |
11 | pszString
12 |
13 | String to split.
14 |
15 | LPCTSTR
16 |
17 |
18 | pszCommandToken
19 |
20 | Buffer that receives the command token.
21 |
22 | LPTSTR
23 |
24 |
25 | pszCommandArgs
26 |
27 | Buffer that receives the command arguments. If this parameter is
28 | NULL, the arguments are discarded.
29 |
30 | LPTSTR
31 |
32 |
33 | cchCommandToken
34 |
35 | Size of the pszCommandToken buffer in characters.
36 |
37 | UINT
38 |
39 |
40 | cchCommandArgs
41 |
42 | Size of the pszCommandArgs buffer in characters.
43 |
44 | UINT
45 |
46 |
47 |
48 |
49 | Prior to splitting pszString into its command token and
50 | arguments, CommandParse expands all variable references in
51 | pszString.
52 |
53 |
54 |
55 | CommandTokenize
56 | GetToken
57 | VarExpansionEx
58 |
59 |
60 |
--------------------------------------------------------------------------------
/litestep/TaskbarListHandler.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(TASKBARLISTHANDLER_H)
23 | #define TASKBARLISTHANDLER_H
24 |
25 | class TaskbarListHandler {
26 | public:
27 | explicit TaskbarListHandler();
28 |
29 | HRESULT Start(HWND hWndTray);
30 | HRESULT Stop();
31 |
32 | private:
33 | HWND m_hWndTaskband;
34 | ATOM m_aWndClass;
35 |
36 | HWND m_hLiteStep;
37 | DWORD m_dwLiteStepProc;
38 | HINSTANCE m_hInstance;
39 | UINT WM_ShellHook;
40 |
41 |
42 | LRESULT WINAPI HandleMessage(HWND window, UINT msg, WPARAM wParam, LPARAM lParam);
43 | static LRESULT WINAPI WindowProcedure(HWND window, UINT msg, WPARAM wParam, LPARAM lParam);
44 | static LRESULT WINAPI WindowProcedureInit(HWND window, UINT msg, WPARAM wParam, LPARAM lParam);
45 | };
46 |
47 | #endif // TASKBARLISTHANDLER_H
48 |
--------------------------------------------------------------------------------
/litestep/COMFactory.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1998 (e)
6 | // Copyright (C) 1997-2015 LiteStep Development Team
7 | //
8 | // This program is free software; you can redistribute it and/or
9 | // modify it under the terms of the GNU General Public License
10 | // as published by the Free Software Foundation; either version 2
11 | // of the License, or (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program; if not, write to the Free Software
20 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 | //
22 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
23 | #if !defined(COMFACTORY_H)
24 | #define COMFACTORY_H
25 |
26 | #include "../utility/common.h"
27 | #include "../utility/shlobj.h"
28 |
29 | class COMFactory : public IClassFactory
30 | {
31 | // Constructor
32 | public:
33 | COMFactory();
34 |
35 | // Destructor
36 | private:
37 | virtual ~COMFactory();
38 |
39 | public:
40 | // IUnknown
41 | ULONG STDMETHODCALLTYPE AddRef();
42 | STDMETHOD(QueryInterface) (REFIID, void**);
43 | ULONG STDMETHODCALLTYPE Release();
44 |
45 | // IClassFactory
46 | STDMETHOD(CreateInstance) (IUnknown*, REFIID, void**);
47 | STDMETHOD(LockServer) (BOOL);
48 |
49 | // Utility
50 | bool IsLocked();
51 |
52 | private:
53 | ULONG m_uRefCount;
54 | };
55 |
56 | #endif // COMFACTORY_H
57 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/EnumModulesProc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EnumModulesProc
6 | CALLBACK
7 |
8 | Application-defined callback function used with EnumLSData and
9 | ELD_MODULES.
10 |
11 |
12 |
13 | pszPath
14 |
15 | Path to the module's DLL.
16 |
17 | LPCTSTR
18 |
19 |
20 | fdwFlags
21 |
22 |
23 | Set of flags used to the load module. The following is the list of
24 | possible flags.
25 |
26 |
27 |
28 | LS_MODULE_THREADED
29 | The module was loaded in its own thread.
30 |
31 |
32 |
33 | DWORD
34 |
35 |
36 | lParam
37 |
38 | Application-defined value given to EnumLSData.
39 |
40 | LPARAM
41 |
42 |
43 |
44 |
45 | To continue the enumeration, the callback function must return
46 | TRUE. To cancel the enumeration, the callback function
47 | must return FALSE.
48 |
49 | BOOL
50 |
51 |
52 | EnumBangsProc
53 | EnumBangsV2Proc
54 | EnumLSData
55 | EnumPerformanceProc
56 | EnumRevIDsProc
57 |
58 |
59 |
--------------------------------------------------------------------------------
/utility/core.hpp:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(CORE_HPP)
23 | #define CORE_HPP
24 |
25 | #include "common.h"
26 |
27 | //
28 | // The "backbone" (aka essential tools).
29 | // Mostly included by .cpp files
30 | //
31 |
32 | #include
33 |
34 | #include "shlobj.h"
35 |
36 | // mainly used for Path helper functions
37 | #define STRICT_CONST
38 | #define NO_SHLWAPI_STRFCNS
39 | #include
40 |
41 | #define STRSAFE_NO_DEPRECATE
42 | #include
43 |
44 | // Now first thing after system includes, is our fixup for
45 | // the system headers.
46 | #include "fixup.h"
47 |
48 | // Add in debugging support for the rest of our files
49 | #include "debug.hpp"
50 |
51 | // Now items that generally most files should have.
52 | #include "../lsapi/lsapi.h"
53 | #include "shellhlp.h"
54 |
55 | #endif // CORE_HPP
56 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/quitModule.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | quitModule
6 | __cdecl
7 |
8 | The LiteStep Module exit point. Prior to unloading the module from memory,
9 | the LiteStep core calls this module function to allow the module to shutdown
10 | and free any resources it has in use.
11 |
12 |
13 |
14 | hInstance
15 |
16 | Handle to this module's instance.
17 |
18 | HINSTANCE
19 |
20 |
21 |
22 |
23 | A call into the module through quitModule is always paired with
24 | a previous call to initModuleEx when the module was first loaded.
25 | A Module is typically loaded when LiteStep initially starts and unloaded
26 | when LiteStep exits. However, a module may be loaded and unloaded multiple
27 | times during a single invocation of the LiteStep process. This normally
28 | occurs during a LiteStep Recycle. Ensure that all resources that have
29 | been allocated by the module are released in quitModule.
30 |
31 |
32 |
33 |
34 | #define EXPORT __declspec(dllexport)
35 |
36 | EXTERN_C EXPORT VOID __cdecl quitModule(HINSTANCE hInstance)
37 | {
38 | // Free all allocated resources. Examples:
39 | // * unregister !bang commands and LiteStep messages
40 | // * free GDI resources and allocated memory
41 | // * destroy windows
42 | myShutdownModule();
43 |
44 | return;
45 | }
46 |
47 |
48 | initModuleW
49 | initModuleEx
50 |
51 |
52 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/GetResStr.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GetResStr
6 |
7 | Loads a string resource.
8 |
9 |
10 |
11 | hInstance
12 |
13 | Handle to the file instance containing the string resource.
14 |
15 | HINSTANCE
16 |
17 |
18 | uID
19 |
20 | Specifies the resource index identifier of the string to be loaded.
21 |
22 | UINT
23 |
24 |
25 | pszBuffer
26 |
27 | Buffer that receives the retrieved string. If the string is too large
28 | to fit in the buffer, it is truncated.
29 |
30 | LPTSTR
31 |
32 |
33 | cchBuffer
34 |
35 | Size of the buffer in characters.
36 |
37 | UINT
38 |
39 |
40 | pszDefault
41 |
42 | Default string. If the specified string resource cannot be found,
43 | GetResStr copies this string into the buffer. If this
44 | parameter is NULL, it is treated as an empty string.
45 |
46 | LPCTSTR
47 |
48 |
49 |
50 |
51 | This is essentially a wrapper to the Win32 LoadString, but
52 | provides a default value to return if the string resource does not exist.
53 |
54 |
55 |
56 | GetResStrEx
57 |
58 |
59 |
--------------------------------------------------------------------------------
/utility/stringutility.cpp:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #include "stringutility.h"
23 | #include "common.h"
24 |
25 |
26 | //
27 | // WCSFromMBS
28 | //
29 | wchar_t *WCSFromMBS(const char *pszMBS)
30 | {
31 | if (pszMBS != nullptr)
32 | {
33 | size_t nLen = strlen(pszMBS) + 1;
34 | wchar_t *pwzWCS = new wchar_t[nLen];
35 | MultiByteToWideChar(CP_ACP, 0, pszMBS, -1, pwzWCS, (int)nLen);
36 | return pwzWCS;
37 | }
38 | return nullptr;
39 | }
40 |
41 |
42 | //
43 | // MBSFromWCS
44 | //
45 | char *MBSFromWCS(const wchar_t *pwzWCS)
46 | {
47 | if (nullptr != pwzWCS)
48 | {
49 | size_t nLen = wcslen(pwzWCS) + 1;
50 | char *pszMBS = new char[nLen];
51 | WideCharToMultiByte(CP_ACP, 0, pwzWCS, -1, pszMBS, (int)nLen, "?", nullptr);
52 | return pszMBS;
53 | }
54 | return nullptr;
55 | }
56 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_UNLOADMODULE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_UNLOADMODULE
6 |
7 | Unloads a specific module.
8 |
9 |
10 |
11 | wParam
12 |
13 |
14 | If lParam is set to LMM_PATH,
15 | this is the path to the module (as an LPCTSTR).
16 |
17 |
18 | If lParam is set to LMM_HINSTANCE,
19 | this is the module's HINSTANCE.
20 |
21 |
22 | WPARAM
23 |
24 |
25 | lParam
26 |
27 | This parameter can be LMM_PATH or
28 | LMM_HINSTANCE.
29 |
30 | LPARAM
31 |
32 |
33 |
34 |
35 | The return value is unspecified.
36 |
37 |
38 |
39 |
40 | If a module uses this message to unload itself, it must not use
41 | SendMessage but PostMessage. Nevertheless,
42 | using it for this purpose may lead to undesired side-effects and is thus
43 | not recommended.
44 |
45 |
46 | Using this message with lParam set to LMM_PATH is
47 | equivalent to !unloadmodule.
48 |
49 |
50 |
51 |
52 | TCHAR szModule[] = TEXT("C:\\Path\\Other_Module.dll");
53 | SendMessage(GetLitestepWnd(), LM_UNLOADMODULE, (WPARAM)szModule, LMM_PATH);
54 |
55 |
56 |
57 | LM_RELOADMODULE
58 |
59 |
--------------------------------------------------------------------------------
/litestep/Utility.cpp:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #include "Utility.h"
23 |
24 | #include "../utility/shellhlp.h"
25 |
26 | #include
27 |
28 |
29 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
30 | //
31 | // UpdateEnvironmentVariables
32 | // Sets the set of environment variables in the current process to the current
33 | // system environment variables.
34 | //
35 | void UpdateEnvironmentVariables()
36 | {
37 | HANDLE hToken;
38 | if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken) != FALSE)
39 | {
40 | LPVOID lpEnvironment;
41 | if (CreateEnvironmentBlock(&lpEnvironment, hToken, FALSE) != FALSE)
42 | {
43 | LSSetEnvironmentStrings((LPWCH)lpEnvironment);
44 | DestroyEnvironmentBlock(lpEnvironment);
45 | }
46 | CloseHandle(hToken);
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/config/Makefile:
--------------------------------------------------------------------------------
1 | # To make a release build: make
2 | # To clean up a release build: make clean
3 | # To make a debug build: make DEBUG=1
4 | # To clean up a debug build: make DEBUG=1 clean
5 |
6 | CXX = g++
7 | DLLWRAP = dllwrap
8 | TARGET = Tutorial.dll
9 | DEF = exports.def
10 | LIBS = -llsapi
11 |
12 | ifdef DEBUG
13 | CXXFLAGS = -I"..\..\..\include" -Wall -D_DEBUG -g
14 | LDFLAGS = -L"..\..\..\lib" -mwindows
15 | OUTPUT_DIR = Debug
16 | OBJ_DIR = Debug
17 | else
18 | CXXFLAGS = -I"..\..\..\include" -Wall -DNDEBUG -O2
19 | LDFLAGS = -L"..\..\..\lib" -mwindows -s
20 | OUTPUT_DIR = Release
21 | OBJ_DIR = Release
22 | endif
23 |
24 | OBJS = $(OBJ_DIR)\Label.o \
25 | $(OBJ_DIR)\main.o \
26 | $(OBJ_DIR)\trace.o \
27 | $(OBJ_DIR)\utility.o
28 |
29 | ifeq ($(OS), Windows_NT)
30 | NULL =
31 | else
32 | NULL = nul
33 | endif
34 |
35 | .PHONY: all directories clean
36 |
37 | all: directories $(OUTPUT_DIR)\$(TARGET)
38 |
39 | directories:
40 | -@if not exist $(OUTPUT_DIR)\$(NULL) mkdir $(OUTPUT_DIR)
41 | -@if not exist $(OBJ_DIR)\$(NULL) mkdir $(OBJ_DIR)
42 |
43 | clean:
44 | @echo Deleting intermediate files
45 | -@del $(OBJ_DIR)\*.o
46 | @echo Deleting $(TARGET)
47 | -@del $(OUTPUT_DIR)\$(TARGET)
48 |
49 | $(OUTPUT_DIR)\$(TARGET): $(DEF) $(OBJS)
50 | @echo Linking $(TARGET)
51 | @$(DLLWRAP) --driver-name $(CXX) $(LDFLAGS) --def $(DEF) $(OBJS) $(LIBS) -o $(OUTPUT_DIR)\$(TARGET)
52 |
53 | $(OBJ_DIR)\Label.o: Label.cpp common.h Label.h msgcrack.h trace.h utility.h
54 | @echo Compiling $<
55 | @$(CXX) $(CXXFLAGS) -c $< -o $@
56 |
57 | $(OBJ_DIR)\main.o: main.cpp common.h Label.h trace.h
58 | @echo Compiling $<
59 | @$(CXX) $(CXXFLAGS) -c $< -o $@
60 |
61 | $(OBJ_DIR)\trace.o: trace.cpp trace.h
62 | @echo Compiling $<
63 | @$(CXX) $(CXXFLAGS) -c $< -o $@
64 |
65 | $(OBJ_DIR)\utility.o: utility.cpp common.h trace.h utility.h
66 | @echo Compiling $<
67 | @$(CXX) $(CXXFLAGS) -c $< -o $@
68 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/window/Makefile:
--------------------------------------------------------------------------------
1 | # To make a release build: make
2 | # To clean up a release build: make clean
3 | # To make a debug build: make DEBUG=1
4 | # To clean up a debug build: make DEBUG=1 clean
5 |
6 | CXX = g++
7 | DLLWRAP = dllwrap
8 | TARGET = Tutorial.dll
9 | DEF = exports.def
10 | LIBS = -llsapi
11 |
12 | ifdef DEBUG
13 | CXXFLAGS = -I"..\..\..\include" -Wall -D_DEBUG -g
14 | LDFLAGS = -L"..\..\..\lib" -mwindows
15 | OUTPUT_DIR = Debug
16 | OBJ_DIR = Debug
17 | else
18 | CXXFLAGS = -I"..\..\..\include" -Wall -DNDEBUG -O2
19 | LDFLAGS = -L"..\..\..\lib" -mwindows -s
20 | OUTPUT_DIR = Release
21 | OBJ_DIR = Release
22 | endif
23 |
24 | OBJS = $(OBJ_DIR)\Label.o \
25 | $(OBJ_DIR)\main.o \
26 | $(OBJ_DIR)\trace.o \
27 | $(OBJ_DIR)\utility.o
28 |
29 | ifeq ($(OS), Windows_NT)
30 | NULL =
31 | else
32 | NULL = nul
33 | endif
34 |
35 | .PHONY: all directories clean
36 |
37 | all: directories $(OUTPUT_DIR)\$(TARGET)
38 |
39 | directories:
40 | -@if not exist $(OUTPUT_DIR)\$(NULL) mkdir $(OUTPUT_DIR)
41 | -@if not exist $(OBJ_DIR)\$(NULL) mkdir $(OBJ_DIR)
42 |
43 | clean:
44 | @echo Deleting intermediate files
45 | -@del $(OBJ_DIR)\*.o
46 | @echo Deleting $(TARGET)
47 | -@del $(OUTPUT_DIR)\$(TARGET)
48 |
49 | $(OUTPUT_DIR)\$(TARGET): $(DEF) $(OBJS)
50 | @echo Linking $(TARGET)
51 | @$(DLLWRAP) --driver-name $(CXX) $(LDFLAGS) --def $(DEF) $(OBJS) $(LIBS) -o $(OUTPUT_DIR)\$(TARGET)
52 |
53 | $(OBJ_DIR)\Label.o: Label.cpp common.h Label.h msgcrack.h trace.h utility.h
54 | @echo Compiling $<
55 | @$(CXX) $(CXXFLAGS) -c $< -o $@
56 |
57 | $(OBJ_DIR)\main.o: main.cpp common.h Label.h trace.h
58 | @echo Compiling $<
59 | @$(CXX) $(CXXFLAGS) -c $< -o $@
60 |
61 | $(OBJ_DIR)\trace.o: trace.cpp trace.h
62 | @echo Compiling $<
63 | @$(CXX) $(CXXFLAGS) -c $< -o $@
64 |
65 | $(OBJ_DIR)\utility.o: utility.cpp common.h trace.h utility.h
66 | @echo Compiling $<
67 | @$(CXX) $(CXXFLAGS) -c $< -o $@
68 |
--------------------------------------------------------------------------------
/sdk/examples/hello/hello.mdsp:
--------------------------------------------------------------------------------
1 | [Project]
2 | name=Hello
3 | type=2
4 | defaultConfig=0
5 |
6 |
7 | [Debug]
8 | // compiler
9 | workingDirectory=
10 | arguments=
11 | intermediateFilesDirectory=Debug
12 | outputFilesDirectory=Debug
13 | compilerPreprocessor=_DEBUG
14 | extraCompilerOptions=
15 | compilerIncludeDirectory=..\..\include
16 | noWarning=0
17 | defaultWarning=0
18 | allWarning=1
19 | extraWarning=0
20 | isoWarning=0
21 | warningsAsErrors=0
22 | debugType=1
23 | debugLevel=2
24 | exceptionEnabled=1
25 | runtimeTypeEnabled=1
26 | optimizeLevel=0
27 |
28 | // linker
29 | libraryPath=..\..\lib
30 | outputFilename=Debug\hello.dll
31 | libraries=lsapi
32 | extraLinkerOptions=--def exports.def
33 | ignoreStartupFile=0
34 | ignoreDefaultLibs=0
35 | stripExecutableFile=0
36 |
37 | // archive
38 | extraArchiveOptions=
39 |
40 | //resource
41 | resourcePreprocessor=
42 | resourceIncludeDirectory=
43 | extraResourceOptions=
44 |
45 | [Release]
46 | // compiler
47 | workingDirectory=
48 | arguments=
49 | intermediateFilesDirectory=Release
50 | outputFilesDirectory=Release
51 | compilerPreprocessor=NDEBUG
52 | extraCompilerOptions=
53 | compilerIncludeDirectory=..\..\include
54 | noWarning=0
55 | defaultWarning=0
56 | allWarning=1
57 | extraWarning=0
58 | isoWarning=0
59 | warningAsErrors=0
60 | debugType=0
61 | debugLevel=1
62 | exceptionEnabled=1
63 | runtimeTypeEnabled=1
64 | optimizeLevel=2
65 |
66 | // linker
67 | libraryPath=..\..\lib
68 | outputFilename=Release\hello.dll
69 | libraries=lsapi
70 | extraLinkerOptions=
71 | ignoreStartupFile=0
72 | ignoreDefaultLibs=0
73 | stripExecutableFile=1
74 |
75 | // archive
76 | extraArchiveOptions=
77 |
78 | //resource
79 | resourcePreprocessor=
80 | resourceIncludeDirectory=
81 | extraResourceOptions=
82 |
83 | [Source]
84 | 1=bang.cpp
85 | 2=main.cpp
86 | 3=trace.cpp
87 | [Header]
88 | 1=bang.h
89 | 2=trace.h
90 | 3=version.h
91 | [Resource]
92 | [Other]
93 | 1=exports.def
94 | [History]
95 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/lsapi.css:
--------------------------------------------------------------------------------
1 | a:link, a:visited
2 | {
3 | background-color: white;
4 | color: rgb(51, 51, 102);
5 | }
6 |
7 | body
8 | {
9 | background-color: white;
10 | color: black;
11 | font-family: sans-serif;
12 | margin-left: 2em;
13 | margin-right: 2em;
14 | margin-top: 1em;
15 | margin-bottom: 1em;
16 | }
17 |
18 | div#indexlink
19 | {
20 | float:right;
21 | margin: 1em 0 0 0;
22 | padding:0;
23 | }
24 |
25 | dd
26 | {
27 | margin-bottom: 1em;
28 | }
29 |
30 | dd p
31 | {
32 | margin-top: 0;
33 | }
34 |
35 | dl.constant-list
36 | {
37 | margin-top: 1em;
38 | margin-left: 2em;
39 | }
40 |
41 | dt
42 | {
43 | margin-bottom: 0.1em;
44 | }
45 |
46 | dt.parameter-name, dt.member-name
47 | {
48 | font-weight: bold;
49 | }
50 |
51 | dt.constant-name
52 | {
53 | font-family: monospace;
54 | }
55 |
56 | div.brief, div.syntax, div.parameters, div.return, div.members, div.remarks, div.example, div.see-also
57 | {
58 | margin-left: 2em;
59 | }
60 |
61 | h1, h2, h3, h4, h5, h6
62 | {
63 | background-color: white;
64 | color: rgb(51, 51, 102);
65 | font-family: "Tahoma", sans-serif;
66 | font-weight: bold;
67 | }
68 |
69 | h1
70 | {
71 | border-bottom: solid 1pt rgb(51, 51, 102);
72 | }
73 |
74 | pre.blockcode
75 | {
76 | background-color: rgb(240, 240, 240);
77 | color: black;
78 | font-family: monospace;
79 | padding: 0.5em;
80 | }
81 |
82 | span.code
83 | {
84 | background-color: rgb(240, 240, 240);
85 | color: black;
86 | padding: 0.125em;
87 | }
88 |
89 | span.code, span.const, span.type
90 | {
91 | font-family: monospace;
92 | }
93 |
94 | span.fn, span.msg, span.struct, span.extfn, span.extmsg, span.extstruct
95 | {
96 | font-weight: bold;
97 | }
98 |
99 | span.param
100 | {
101 | font-style: italic;
102 | }
103 |
--------------------------------------------------------------------------------
/lsapi/SettingsDefines.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1997-2015 LiteStep Development Team
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 | #if !defined(SETTINGSDEFINES_H)
23 | #define SETTINGSDEFINES_H
24 |
25 | #include "../utility/stringutility.h"
26 | #include
27 | #include
56 |
57 | Relative paths refer to files in the LiteStep image directory. Refer to
58 | LSGetImagePath for details.
59 |
60 |
61 |
62 | LoadLSImage
63 | LSGetImagePath
64 |
65 |
66 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_RESTOREDATA.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_RESTOREDATA
6 |
7 | A module sends LM_RESTOREDATA to LiteStep to retrieve data
8 | previously stored with LM_SAVEDATA. If it is retrieved
9 | successfully, it is removed from the internal DataStore.
10 |
11 |
12 |
13 | wParam
14 |
15 |
16 | The low-order word specifies the size of the buffer pointed to by
17 | lParam.
18 |
19 |
20 | The high-order word is the ID the data was saved with.
21 |
22 |
23 | WPARAM
24 |
25 |
26 | lParam
27 |
28 | Pointer to a buffer which will receive the data.
29 |
30 | LPARAM
31 |
32 |
33 |
34 |
35 | If the data was successfully retrieved, the return value is nonzero.
36 | If an error occured, the return value is zero.
37 |
38 |
39 |
40 |
41 | It is recommended that you use the MAKEWPARAM macro to
42 | construct wParam.
43 |
44 |
45 |
46 | Virtual Windows Modules (VWMs) might use code like the following to restore
47 | the currently selected screen number saved before a recycle:
48 |
49 | #define MODULE_ID 0x1111 // The ID that was used for LM_SAVEDATA
50 |
51 | UINT uCurrentDesk = 0;
52 |
53 | WPARAM wParam = MAKEWPARAM(sizeof(uCurrentDesk), MODULE_ID);
54 |
55 | if (SendMessage(GetLitestepWnd(), LM_RESTOREDATA, wParam, (LPARAM)&uCurrentDesk))
56 | {
57 | // data retrieved successfully, uCurrentDesk now holds screen number
58 | }
59 |
60 |
61 | GetLitestepWnd
62 | LM_SAVEDATA
63 |
64 |
--------------------------------------------------------------------------------
/docs/build_mingw.txt:
--------------------------------------------------------------------------------
1 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
2 | LiteStep 0.25.0
3 | MinGW Developer Information
4 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
5 |
6 |
7 | -- BUILD REQUIREMENTS ----------------------------------------------------------
8 |
9 | - TDM/MinGW Installer 1.812.0 (www.tdragon.net/recentgcc/)
10 | - Recent version of Strsafe.h from Microsoft Windows SDK (www.microsoft.com)
11 |
12 | This is the configuration used during 0.25.0 development, it is quite possible
13 | that other versions of the above packages can be used, but there's no
14 | guarantee.
15 |
16 |
17 | -- BUILD SETUP -----------------------------------------------------------------
18 |
19 | A. Install MinGW
20 | ----------------
21 |
22 | 1. Download the TDM/MinGW Installer 1.812.0 (Bundled version).
23 |
24 | 2. Run the installer, and leave all component selections at defaults.
25 |
26 | B. Install strsafe.h
27 | --------------------
28 |
29 | 1. LiteStep currently requires the MicroSoft Strsafe.h header file. This is
30 | included in recent Microsoft SDKs. Copy the strsafe.h header file into the
31 | MinGW include directory.
32 |
33 | -- BUILDING LITESTEP -----------------------------------------------------------
34 |
35 | A. Extract source code
36 | ----------------------
37 |
38 | 1. Create a build directory for the source code (eg. C:\src\LiteStep).
39 |
40 | 2. Extract the source code into the build directory. So that the build
41 | directory has the following structure:
42 |
43 | \LiteStep
44 | \litestep
45 | \lsapi
46 | \utility
47 |
48 | B. Compile
49 | ----------
50 |
51 | 1. Open a MinGW build prompt and change to the LiteStep source directory.
52 |
53 | 2. For a release build, run: mingw32-make
54 | To clean use: mingw32-make clean
55 |
56 | For a debug build, run: mingw32-make DEBUG=1
57 | To clean use: mingw32-make DEBUG=1 clean
58 |
59 | 3. The output binaries will be off of the LiteStep source directory in
60 | Release_MinGW or Debug_MinGW folders depending on the build type.
61 |
--------------------------------------------------------------------------------
/litestep/DDEService.h:
--------------------------------------------------------------------------------
1 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
2 | //
3 | // This is a part of the Litestep Shell source code.
4 | //
5 | // Copyright (C) 1998 (e)
6 | // Copyright (C) 1997-2015 LiteStep Development Team
7 | //
8 | // This program is free software; you can redistribute it and/or
9 | // modify it under the terms of the GNU General Public License
10 | // as published by the Free Software Foundation; either version 2
11 | // of the License, or (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program; if not, write to the Free Software
20 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 | //
22 | //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
23 | #if !defined(DDESERVICE_H)
24 | #define DDESERVICE_H
25 |
26 | #include "DDEWorker.h"
27 | #include "../utility/IService.h"
28 |
29 | class DDEService: public IService
30 | {
31 | public:
32 | DDEService();
33 | ~DDEService();
34 |
35 | HRESULT Start() override;
36 | HRESULT Stop() override;
37 | HRESULT Recycle() override;
38 |
39 | static HDDEDATA CALLBACK DdeCallback(
40 | UINT wType, UINT wFmt, HCONV hConv, HSZ hszTopic,
41 | HSZ hszItem, HDDEDATA hData, DWORD lData1, DWORD lData2);
42 |
43 | private:
44 | HRESULT _RegisterDDE();
45 |
46 | bool _DoStart();
47 | void _DoStop();
48 |
49 | static DWORD WINAPI _DDEThreadProc(LPVOID pvService);
50 |
51 | static DWORD m_idThread;
52 | static HANDLE m_hThread;
53 | static HANDLE m_hStartEvent;
54 |
55 | static DDEWorker m_DDEWorker;
56 | static HSZ m_hszProgman;
57 | static HSZ m_hszGroups;
58 | static HSZ m_hszFolders;
59 | static HSZ m_hszAppProperties;
60 | static DWORD m_dwDDEInst;
61 | };
62 |
63 | #endif // DDESERVICE_H
64 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LM_SYSTRAYINFOEVENT.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LM_SYSTRAYINFOEVENT
6 |
7 | LiteStep sends this message twice when an application calls
8 | Shell_NotifyIconGetRect. Once to get the position of a tray icon, and once
9 | to get the size of the icon.
10 |
11 |
12 |
13 | wParam
14 |
15 | Pointer to an SYSTRAYINFOEVENT structure.
16 |
17 | WPARAM
18 |
19 |
20 | lParam
21 |
22 | Pointer to an LRESULT which should be modified
23 |
24 | LPARAM
25 |
26 |
27 |
28 |
29 | If a module successfully handles this message, it should return
30 | TRUE.
31 | If there was an error, it should return FALSE.
32 |
33 |
34 |
35 |
36 | To receive this message, modules need to register for it by using
37 | LM_REGISTERMESSAGE.
38 |
39 |
40 |
41 |
42 | case LM_SYSTRAYINFOEVENT:
43 | {
44 | LPSYSTRAYINFOEVENT lpSTE = (LPSYSTRAYINFOEVENT)wParam;
45 | TRAYICON icon = FindIcon(lpSTE);
46 | RECT r;
47 | GetScreenRect(icon, &r);
48 | switch (lpSTE->dwEvent) {
49 | case TRAYEVENT_GETICONPOS:
50 | {
51 | *(LRESULT*)lParam = MAKELPARAM(r.left, r.top);
52 | }
53 | break;
54 |
55 | case TRAYEVENT_GETICONSIZE:
56 | {
57 | *(LRESULT*)lParam = MAKELPARAM(r.right - r.left, r.bottom - r.top);
58 | }
59 | break;
60 | }
61 | }
62 | return TRUE;
63 | }
64 |
65 |
66 |
67 | LM_REGISTERMESSAGE
68 | LM_SYSTRAY
69 | LM_SYSTRAYREADY
70 |
71 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/bang/trace.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(TRACE_H)
18 | #define TRACE_H
19 |
20 | #include
21 |
22 | #if defined(_DEBUG)
23 | #define ASSERT(x) assert(x)
24 | #else
25 | #define ASSERT(x) ((void) 0)
26 | #endif
27 |
28 | #if defined(_DEBUG)
29 | #define TRACE0(a) Trace((a))
30 | #define TRACE1(a, b) Trace((a), (b))
31 | #define TRACE2(a, b, c) Trace((a), (b), (c))
32 | #define TRACE3(a, b, c, d) Trace((a), (b), (c), (d))
33 | #define TRACE4(a, b, c, d, e) Trace((a), (b), (c), (d), (e))
34 | #define TRACE5(a, b, c, d, e, f) Trace((a), (b), (c), (d), (e), (f))
35 | #define TRACE6(a, b, c, d, e, f, g) Trace((a), (b), (c), (d), (e), (f), (g))
36 | #define TRACE7(a, b, c, d, e, f, g, h) Trace((a), (b), (c), (d), (e), (f), (g), (h))
37 | #else
38 | #define TRACE0(a) ((void) 0)
39 | #define TRACE1(a, b) ((void) 0)
40 | #define TRACE2(a, b, c) ((void) 0)
41 | #define TRACE3(a, b, c, d) ((void) 0)
42 | #define TRACE4(a, b, c, d, e) ((void) 0)
43 | #define TRACE5(a, b, c, d, e, f) ((void) 0)
44 | #define TRACE6(a, b, c, d, e, f, g) ((void) 0)
45 | #define TRACE7(a, b, c, d, e, f, g, h) ((void) 0)
46 | #endif
47 |
48 | // Output a formatted trace message
49 | void Trace(const char *format, ...);
50 |
51 | #endif
52 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/config/trace.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(TRACE_H)
18 | #define TRACE_H
19 |
20 | #include
21 |
22 | #if defined(_DEBUG)
23 | #define ASSERT(x) assert(x)
24 | #else
25 | #define ASSERT(x) ((void) 0)
26 | #endif
27 |
28 | #if defined(_DEBUG)
29 | #define TRACE0(a) Trace((a))
30 | #define TRACE1(a, b) Trace((a), (b))
31 | #define TRACE2(a, b, c) Trace((a), (b), (c))
32 | #define TRACE3(a, b, c, d) Trace((a), (b), (c), (d))
33 | #define TRACE4(a, b, c, d, e) Trace((a), (b), (c), (d), (e))
34 | #define TRACE5(a, b, c, d, e, f) Trace((a), (b), (c), (d), (e), (f))
35 | #define TRACE6(a, b, c, d, e, f, g) Trace((a), (b), (c), (d), (e), (f), (g))
36 | #define TRACE7(a, b, c, d, e, f, g, h) Trace((a), (b), (c), (d), (e), (f), (g), (h))
37 | #else
38 | #define TRACE0(a) ((void) 0)
39 | #define TRACE1(a, b) ((void) 0)
40 | #define TRACE2(a, b, c) ((void) 0)
41 | #define TRACE3(a, b, c, d) ((void) 0)
42 | #define TRACE4(a, b, c, d, e) ((void) 0)
43 | #define TRACE5(a, b, c, d, e, f) ((void) 0)
44 | #define TRACE6(a, b, c, d, e, f, g) ((void) 0)
45 | #define TRACE7(a, b, c, d, e, f, g, h) ((void) 0)
46 | #endif
47 |
48 | // Output a formatted trace message
49 | void Trace(const char *format, ...);
50 |
51 | #endif
52 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/multiple/trace.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(TRACE_H)
18 | #define TRACE_H
19 |
20 | #include
21 |
22 | #if defined(_DEBUG)
23 | #define ASSERT(x) assert(x)
24 | #else
25 | #define ASSERT(x) ((void) 0)
26 | #endif
27 |
28 | #if defined(_DEBUG)
29 | #define TRACE0(a) Trace((a))
30 | #define TRACE1(a, b) Trace((a), (b))
31 | #define TRACE2(a, b, c) Trace((a), (b), (c))
32 | #define TRACE3(a, b, c, d) Trace((a), (b), (c), (d))
33 | #define TRACE4(a, b, c, d, e) Trace((a), (b), (c), (d), (e))
34 | #define TRACE5(a, b, c, d, e, f) Trace((a), (b), (c), (d), (e), (f))
35 | #define TRACE6(a, b, c, d, e, f, g) Trace((a), (b), (c), (d), (e), (f), (g))
36 | #define TRACE7(a, b, c, d, e, f, g, h) Trace((a), (b), (c), (d), (e), (f), (g), (h))
37 | #else
38 | #define TRACE0(a) ((void) 0)
39 | #define TRACE1(a, b) ((void) 0)
40 | #define TRACE2(a, b, c) ((void) 0)
41 | #define TRACE3(a, b, c, d) ((void) 0)
42 | #define TRACE4(a, b, c, d, e) ((void) 0)
43 | #define TRACE5(a, b, c, d, e, f) ((void) 0)
44 | #define TRACE6(a, b, c, d, e, f, g) ((void) 0)
45 | #define TRACE7(a, b, c, d, e, f, g, h) ((void) 0)
46 | #endif
47 |
48 | // Output a formatted trace message
49 | void Trace(const char *format, ...);
50 |
51 | #endif
52 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/skin/trace.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(TRACE_H)
18 | #define TRACE_H
19 |
20 | #include
21 |
22 | #if defined(_DEBUG)
23 | #define ASSERT(x) assert(x)
24 | #else
25 | #define ASSERT(x) ((void) 0)
26 | #endif
27 |
28 | #if defined(_DEBUG)
29 | #define TRACE0(a) Trace((a))
30 | #define TRACE1(a, b) Trace((a), (b))
31 | #define TRACE2(a, b, c) Trace((a), (b), (c))
32 | #define TRACE3(a, b, c, d) Trace((a), (b), (c), (d))
33 | #define TRACE4(a, b, c, d, e) Trace((a), (b), (c), (d), (e))
34 | #define TRACE5(a, b, c, d, e, f) Trace((a), (b), (c), (d), (e), (f))
35 | #define TRACE6(a, b, c, d, e, f, g) Trace((a), (b), (c), (d), (e), (f), (g))
36 | #define TRACE7(a, b, c, d, e, f, g, h) Trace((a), (b), (c), (d), (e), (f), (g), (h))
37 | #else
38 | #define TRACE0(a) ((void) 0)
39 | #define TRACE1(a, b) ((void) 0)
40 | #define TRACE2(a, b, c) ((void) 0)
41 | #define TRACE3(a, b, c, d) ((void) 0)
42 | #define TRACE4(a, b, c, d, e) ((void) 0)
43 | #define TRACE5(a, b, c, d, e, f) ((void) 0)
44 | #define TRACE6(a, b, c, d, e, f, g) ((void) 0)
45 | #define TRACE7(a, b, c, d, e, f, g, h) ((void) 0)
46 | #endif
47 |
48 | // Output a formatted trace message
49 | void Trace(const char *format, ...);
50 |
51 | #endif
52 |
--------------------------------------------------------------------------------
/sdk/examples/tutorial/window/trace.h:
--------------------------------------------------------------------------------
1 | // Tutorial
2 | // Copyright (C) 2006 Litestep Development Team
3 | //
4 | // This program is free software; you can redistribute it and/or modify it under
5 | // the terms of the GNU General Public License as published by the Free Software
6 | // Foundation; either version 2 of the License, or (at your option) any later
7 | // version.
8 | //
9 | // This program is distributed in the hope that it will be useful, but WITHOUT
10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 | //
13 | // You should have received a copy of the GNU General Public License along with
14 | // this program; if not, write to the Free Software Foundation, Inc.,
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 |
17 | #if !defined(TRACE_H)
18 | #define TRACE_H
19 |
20 | #include
21 |
22 | #if defined(_DEBUG)
23 | #define ASSERT(x) assert(x)
24 | #else
25 | #define ASSERT(x) ((void) 0)
26 | #endif
27 |
28 | #if defined(_DEBUG)
29 | #define TRACE0(a) Trace((a))
30 | #define TRACE1(a, b) Trace((a), (b))
31 | #define TRACE2(a, b, c) Trace((a), (b), (c))
32 | #define TRACE3(a, b, c, d) Trace((a), (b), (c), (d))
33 | #define TRACE4(a, b, c, d, e) Trace((a), (b), (c), (d), (e))
34 | #define TRACE5(a, b, c, d, e, f) Trace((a), (b), (c), (d), (e), (f))
35 | #define TRACE6(a, b, c, d, e, f, g) Trace((a), (b), (c), (d), (e), (f), (g))
36 | #define TRACE7(a, b, c, d, e, f, g, h) Trace((a), (b), (c), (d), (e), (f), (g), (h))
37 | #else
38 | #define TRACE0(a) ((void) 0)
39 | #define TRACE1(a, b) ((void) 0)
40 | #define TRACE2(a, b, c) ((void) 0)
41 | #define TRACE3(a, b, c, d) ((void) 0)
42 | #define TRACE4(a, b, c, d, e) ((void) 0)
43 | #define TRACE5(a, b, c, d, e, f) ((void) 0)
44 | #define TRACE6(a, b, c, d, e, f, g) ((void) 0)
45 | #define TRACE7(a, b, c, d, e, f, g, h) ((void) 0)
46 | #endif
47 |
48 | // Output a formatted trace message
49 | void Trace(const char *format, ...);
50 |
51 | #endif
52 |
--------------------------------------------------------------------------------
/sdk/docs/lsapi/LSLog.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSLog
6 |
7 | Outputs a message to the LiteStep log.
8 |
9 |
10 |
11 | nLevel
12 |
13 |
14 | Log Level of the message being logged. This must be one of the
15 | following constants.
16 |
17 |
18 |
19 | LOG_ERROR
20 |
21 | pszMessage contains an error message
22 |
23 |
24 |
25 | LOG_WARNING
26 |
27 | pszMessage contains a warning message
28 |
29 |
30 |
31 | LOG_NOTICE
32 |
33 | pszMessage contains a notification message
34 |
35 |
36 |
37 | LOG_DEBUG
38 |
39 | pszMessage contains a debug message
40 |
41 |
42 |
43 |
44 | INT
45 |
46 |
47 | pszModule
48 |
49 | Name of module logging the message.
50 |
51 | LPCSTR
52 |
53 |
54 | pszMessage
55 |
56 | Message to output to the log.
57 |
58 | LPCSTR
59 |
60 |
61 |
62 |
63 | This function is deprecated and should not be used.
64 |
65 |
66 | The current date and time is prefixed to the output message.
67 |
68 |
69 |
70 | LSLogPrintf
71 |
72 |
73 |
--------------------------------------------------------------------------------