├── 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 28 | #include 29 | 30 | /** */ 31 | struct SettingValue 32 | { 33 | SettingValue(std::wstring sValue, bool bTerminal) 34 | { 35 | this->sValue = sValue; 36 | this->bTerminal = bTerminal; 37 | } 38 | 39 | std::wstring sValue; 40 | bool bTerminal; 41 | }; 42 | 43 | /** Maps setting names to values */ 44 | typedef StringKeyedMaps::UnorderedMultiMap SettingsMap; 45 | 46 | /** Maps setting names to iterators */ 47 | typedef StringKeyedMaps::UnorderedMultiMap IteratorMap; 48 | 49 | /** Set of strings with case-insensitive ordering. */ 50 | typedef StringKeyedSets::UnorderedSet StringSet; 51 | 52 | #endif // SETTINGSDEFINES_H_ 53 | -------------------------------------------------------------------------------- /sdk/examples/clock/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 = clock.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)\Clock.o \ 26 | $(OBJ_DIR)\main.o \ 27 | $(OBJ_DIR)\trace.o \ 28 | $(OBJ_DIR)\utility.o 29 | 30 | ifeq ($(OS), Windows_NT) 31 | NULL = 32 | else 33 | NULL = nul 34 | endif 35 | 36 | .PHONY: all directories clean 37 | 38 | all: directories $(OUTPUT_DIR)\$(TARGET) 39 | 40 | directories: 41 | -@if not exist $(OUTPUT_DIR)\$(NULL) mkdir $(OUTPUT_DIR) 42 | -@if not exist $(OBJ_DIR)\$(NULL) mkdir $(OBJ_DIR) 43 | 44 | clean: 45 | @echo Deleting intermediate files 46 | -@del $(OBJ_DIR)\*.o 47 | @echo Deleting $(TARGET) 48 | -@del $(OUTPUT_DIR)\$(TARGET) 49 | 50 | $(OUTPUT_DIR)\$(TARGET): $(DEF) $(OBJS) 51 | @echo Linking $(TARGET) 52 | @$(DLLWRAP) --driver-name $(CXX) $(LDFLAGS) --def $(DEF) $(OBJS) $(LIBS) -o $(OUTPUT_DIR)\$(TARGET) 53 | 54 | $(OBJ_DIR)\bang.o: bang.cpp bang.h version.h 55 | @echo Compiling $< 56 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 57 | 58 | $(OBJ_DIR)\Clock.o: Clock.cpp bang.h Clock.h msgcrack.h trace.h utility.h version.h 59 | @echo Compiling $< 60 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 61 | 62 | $(OBJ_DIR)\main.o: main.cpp bang.h trace.h version.h 63 | @echo Compiling $< 64 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 65 | 66 | $(OBJ_DIR)\trace.o: trace.cpp trace.h 67 | @echo Compiling $< 68 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 69 | 70 | $(OBJ_DIR)\utility.o: utility.cpp utility.h 71 | @echo Compiling $< 72 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 73 | -------------------------------------------------------------------------------- /litestep/StartupRunner.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(STARTUPRUNNER_H) 23 | #define STARTUPRUNNER_H 24 | 25 | #include "../utility/common.h" 26 | 27 | class StartupRunner 28 | { 29 | public: 30 | StartupRunner(); 31 | virtual ~StartupRunner(); 32 | 33 | static void Run(BOOL bForce); 34 | static bool IsFirstRunThisSession(LPCTSTR pszSubkey); 35 | 36 | public: 37 | static DWORD WINAPI _ThreadProc(LPVOID lpData); 38 | static HKEY _CreateSessionInfoKey(); 39 | static void _RunRegKeys(HKEY hkParent, LPCTSTR ptzSubKey, DWORD dwFlags); 40 | static void _RunRegKeysWorker(HKEY hkParent, LPCTSTR ptzSubKey, DWORD dwFlags); 41 | static void _RunRunOnceEx(); 42 | static void _RunStartupMenu(); 43 | static void _RunShellFolderContents(int nFolder); 44 | static void _SpawnProcess(LPTSTR ptzCommandLine, DWORD dwFlags); 45 | static HANDLE _ShellExecuteEx(LPCTSTR ptzExecutable, LPCTSTR ptzArgs); 46 | }; 47 | 48 | #endif // STARTUPRUNNER_H 49 | -------------------------------------------------------------------------------- /litestep/IDesktopWallpaperPrivate.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(IDESKTOPWALLPAPERPRIVATE_H) 24 | #define IDESKTOPWALLPAPERPRIVATE_H 25 | 26 | // 27 | // The functions listed here, and their functionality are guesses, which were 28 | // obtained by examining how explorer handles these calls. 29 | // 30 | 31 | const GUID IID_IDesktopWallpaperPrivate = { 0xC182461F, 0xDFAC, 0x4375, { 0xAB, 0x6E, 0x4C, 0xC4, 0x5A, 0xA7, 0xF9, 0xCC } }; 32 | class IDesktopWallpaperPrivate : public IDesktopWallpaper 33 | { 34 | public: 35 | STDMETHOD(SetWallpaper2) (LPCWSTR, LPCWSTR) = 0; 36 | STDMETHOD(PrivateB) (LPVOID) = 0; 37 | STDMETHOD(GetWallpaperColor) (PULONG) = 0; 38 | STDMETHOD(GetMonitorNumber) (LPCWSTR, LPUINT) = 0; 39 | STDMETHOD(PrivateE) (LPVOID, LPVOID, LPVOID) = 0; 40 | STDMETHOD(PrivateF) (LPVOID) = 0; 41 | STDMETHOD(PrivateG) (LPVOID) = 0; 42 | STDMETHOD(PrivateH) (LPVOID) = 0; 43 | }; 44 | 45 | #endif // IDESKTOPWALLPAPERPRIVATE_H 46 | -------------------------------------------------------------------------------- /sdk/docs/lsapi/LM_GETREVID.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LM_GETREVID 6 | 7 | LiteStep sends this message to request version information from modules. 8 | 9 | 10 | 11 | wParam 12 | 13 | This parameter should be ignored. It is currently set to 14 | 0. Old LiteStep builds may set it to 1. 15 | 16 | WPARAM 17 | 18 | 19 | lParam 20 | 21 | Pointer (LPTSTR) to a buffer to be filled with the version 22 | string. Modules should assume a buffer size of 64. 23 | 24 | LPARAM 25 | 26 | 27 | 28 | 29 | If a module handles this message, it should return the number of 30 | characters copied to the buffer pointed to by lParam. 31 | 32 | 33 | 34 |

35 | To receive this message, modules need to register for it by using 36 | LM_REGISTERMESSAGE. 37 |

38 |

39 | It is recommended that all modules implement this. 40 |

41 |

42 | This message is generated by passing ELD_REVIDS to 43 | EnumLSData. This is typically done by LiteStep when it populates 44 | the "Revision IDs" part of the about box. 45 |

46 |
47 | 48 | 49 | case LM_GETREVID: 50 | { 51 | LPCTSTR pszVersion = TEXT("Module 1.0"); 52 | 53 | LPTSTR pBuffer = (LPTSTR)lParam; 54 | 55 | _tcsncpy(pBuffer, 64, pszVersion); 56 | 57 | return _tcslen(pszVersion); 58 | } 59 | 60 | 61 | LM_REGISTERMESSAGE 62 | 63 |
-------------------------------------------------------------------------------- /sdk/examples/tutorial/window/utility.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(UTILITY_H) 18 | #define UTILITY_H 19 | 20 | #include "common.h" 21 | #include "utility.h" 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 | */ 32 | void ModifyWindowStyle(HWND hWnd, UINT uRemove, UINT uAdd); 33 | 34 | /** 35 | * Concatenates a string to the contents of a string buffer. 36 | */ 37 | int StrCat(LPTSTR pszDest, int cchDest, LPCTSTR pszSrc); 38 | 39 | /** 40 | * Compare two strings lexicographically. 41 | */ 42 | int StrCompare(LPCTSTR pszLeft, LPCTSTR pszRight); 43 | 44 | /** 45 | * Compare two strings lexicographically, ignoring differences in case. 46 | */ 47 | int StrCompareIgnoreCase(LPCTSTR pszLeft, LPCTSTR pszRight); 48 | 49 | /** 50 | * Copies a string into a string buffer. 51 | */ 52 | int StrCopy(LPTSTR pszDest, int cchDest, LPCTSTR pszSrc); 53 | 54 | /** 55 | * Returns the length of a string. 56 | */ 57 | int StrLen(LPCTSTR pszSrc); 58 | 59 | /** 60 | * Formats a string. 61 | */ 62 | int StrPrintf(LPTSTR pszDest, int cchDest, LPCTSTR pszFormat, ...); 63 | 64 | 65 | #endif // UTILITY_H 66 | -------------------------------------------------------------------------------- /sdk/docs/lsapi/LM_SYSTRAY.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LM_SYSTRAY 6 | 7 | LiteStep sends this message whenever the state of a tray icon has changed. 8 | 9 | 10 | 11 | wParam 12 | 13 | Specifies the action to be taken. This can be any of the NIM constants 14 | used with the Shell_NotifyIcon function. 15 | 16 | WPARAM 17 | 18 | 19 | lParam 20 | 21 | Pointer to an LSNOTIFYICONDATA structure. 22 | 23 | LPARAM 24 | 25 | 26 | 27 | 28 | If a module successfully handles this message, it should return 29 | TRUE. 30 | If there was an error, it should return FALSE. 31 | 32 | 33 | 34 |

35 | To receive this message, modules need to register for it by using 36 | LM_REGISTERMESSAGE. 37 |

38 |

39 | This message is generated when a module sends LM_SYSTRAYREADY 40 | or when the state of an icon has changed. The latter usually means an 41 | application has called Shell_NotifyIcon. 42 |

43 |
44 | 45 | 46 | case LM_SYSTRAY: 47 | { 48 | DWORD dwMessage = (DWORD)wParam; 49 | PLSNOTIFYICONDATA pnid = (PLSNOTIFYICONDATA)lParam; 50 | 51 | if (dwMessage == NIM_ADD) 52 | { 53 | return AddIcon(pnid); 54 | } 55 | else 56 | { 57 | // handle other messages 58 | } 59 | 60 | return FALSE; 61 | } 62 | 63 | 64 | LM_REGISTERMESSAGE 65 | LM_SYSTRAYREADY 66 | LM_SYSTRAYINFOEVENT 67 | 68 |
-------------------------------------------------------------------------------- /sdk/examples/tutorial/bang/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)\bang.o \ 25 | $(OBJ_DIR)\Label.o \ 26 | $(OBJ_DIR)\main.o \ 27 | $(OBJ_DIR)\trace.o \ 28 | $(OBJ_DIR)\utility.o 29 | 30 | ifeq ($(OS), Windows_NT) 31 | NULL = 32 | else 33 | NULL = nul 34 | endif 35 | 36 | .PHONY: all directories clean 37 | 38 | all: directories $(OUTPUT_DIR)\$(TARGET) 39 | 40 | directories: 41 | -@if not exist $(OUTPUT_DIR)\$(NULL) mkdir $(OUTPUT_DIR) 42 | -@if not exist $(OBJ_DIR)\$(NULL) mkdir $(OBJ_DIR) 43 | 44 | clean: 45 | @echo Deleting intermediate files 46 | -@del $(OBJ_DIR)\*.o 47 | @echo Deleting $(TARGET) 48 | -@del $(OUTPUT_DIR)\$(TARGET) 49 | 50 | $(OUTPUT_DIR)\$(TARGET): $(DEF) $(OBJS) 51 | @echo Linking $(TARGET) 52 | @$(DLLWRAP) --driver-name $(CXX) $(LDFLAGS) --def $(DEF) $(OBJS) $(LIBS) -o $(OUTPUT_DIR)\$(TARGET) 53 | 54 | $(OBJ_DIR)\bang.o: bang.cpp bang.h common.h Label.h trace.h 55 | @echo Compiling $< 56 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 57 | 58 | $(OBJ_DIR)\Label.o: Label.cpp common.h Label.h msgcrack.h trace.h utility.h 59 | @echo Compiling $< 60 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 61 | 62 | $(OBJ_DIR)\main.o: main.cpp bang.h common.h Label.h trace.h 63 | @echo Compiling $< 64 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 65 | 66 | $(OBJ_DIR)\trace.o: trace.cpp trace.h 67 | @echo Compiling $< 68 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 69 | 70 | $(OBJ_DIR)\utility.o: utility.cpp common.h trace.h utility.h 71 | @echo Compiling $< 72 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 73 | -------------------------------------------------------------------------------- /sdk/examples/tutorial/skin/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)\bang.o \ 25 | $(OBJ_DIR)\Label.o \ 26 | $(OBJ_DIR)\main.o \ 27 | $(OBJ_DIR)\trace.o \ 28 | $(OBJ_DIR)\utility.o 29 | 30 | ifeq ($(OS), Windows_NT) 31 | NULL = 32 | else 33 | NULL = nul 34 | endif 35 | 36 | .PHONY: all directories clean 37 | 38 | all: directories $(OUTPUT_DIR)\$(TARGET) 39 | 40 | directories: 41 | -@if not exist $(OUTPUT_DIR)\$(NULL) mkdir $(OUTPUT_DIR) 42 | -@if not exist $(OBJ_DIR)\$(NULL) mkdir $(OBJ_DIR) 43 | 44 | clean: 45 | @echo Deleting intermediate files 46 | -@del $(OBJ_DIR)\*.o 47 | @echo Deleting $(TARGET) 48 | -@del $(OUTPUT_DIR)\$(TARGET) 49 | 50 | $(OUTPUT_DIR)\$(TARGET): $(DEF) $(OBJS) 51 | @echo Linking $(TARGET) 52 | @$(DLLWRAP) --driver-name $(CXX) $(LDFLAGS) --def $(DEF) $(OBJS) $(LIBS) -o $(OUTPUT_DIR)\$(TARGET) 53 | 54 | $(OBJ_DIR)\bang.o: bang.cpp bang.h common.h Label.h trace.h 55 | @echo Compiling $< 56 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 57 | 58 | $(OBJ_DIR)\Label.o: Label.cpp common.h Label.h msgcrack.h trace.h utility.h 59 | @echo Compiling $< 60 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 61 | 62 | $(OBJ_DIR)\main.o: main.cpp bang.h common.h Label.h trace.h 63 | @echo Compiling $< 64 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 65 | 66 | $(OBJ_DIR)\trace.o: trace.cpp trace.h 67 | @echo Compiling $< 68 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 69 | 70 | $(OBJ_DIR)\utility.o: utility.cpp common.h trace.h utility.h 71 | @echo Compiling $< 72 | @$(CXX) $(CXXFLAGS) -c $< -o $@ 73 | -------------------------------------------------------------------------------- /sdk/docs/lsapi/GetResStrEx.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GetResStrEx 6 | 7 | Loads a format string resource and returns the formatted output in 8 | pszBuffer. 9 | 10 | 11 | 12 | hInstance 13 | 14 | Handle to the file instance containing the string resource. 15 | 16 | HINSTANCE 17 | 18 | 19 | uID 20 | 21 | Specifies the resource index identifier of the format string to be 22 | loaded. 23 | 24 | UINT 25 | 26 | 27 | pszBuffer 28 | 29 | Buffer that receives the formatted string output. If the formatted 30 | string is too large to fit in the buffer, it is truncated. 31 | 32 | LPTSTR 33 | 34 | 35 | cchBuffer 36 | 37 | Size of the buffer in characters. 38 | 39 | UINT 40 | 41 | 42 | pszDefault 43 | 44 | Default format string. If the specified string resource cannot be found, 45 | GetResStrEx uses this string as the format string. If this 46 | parameter is NULL, it is treated as an empty string. 47 | 48 | LPCTSTR 49 | 50 | 51 | ... 52 | 53 | Format string parameter list. 54 | 55 | 56 | 57 | 58 |

59 | Any printf-style format string is allowed. 60 |

61 |
62 | 63 | GetResStr 64 | 65 |
66 | -------------------------------------------------------------------------------- /utility/Base.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(BASE_H) 23 | #define BASE_H 24 | 25 | #include "common.h" 26 | 27 | class Base 28 | { 29 | protected: 30 | ULONG __BaseRefCount; 31 | 32 | virtual ~Base() 33 | { 34 | // do nothing 35 | } 36 | 37 | inline ULONG BaseAddRef() 38 | { 39 | InterlockedIncrement((LONG *) & __BaseRefCount); 40 | return (ULONG)__BaseRefCount; 41 | } 42 | 43 | inline ULONG BaseRelease() 44 | { 45 | return (ULONG)InterlockedDecrement((LONG *) & __BaseRefCount); 46 | } 47 | 48 | public: 49 | Base() 50 | { 51 | __BaseRefCount = 1; 52 | } 53 | }; 54 | 55 | 56 | class CountedBase: public Base 57 | { 58 | public: 59 | ULONG AddRef() 60 | { 61 | return BaseAddRef(); 62 | }; 63 | ULONG Release() 64 | { 65 | ULONG cRefs = BaseRelease(); 66 | 67 | if (cRefs == 0) 68 | { 69 | delete this; 70 | } 71 | 72 | return cRefs; 73 | }; 74 | }; 75 | 76 | #endif // BASE_H 77 | -------------------------------------------------------------------------------- /sdk/docs/lsapi/LCReadNextCommand.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LCReadNextCommand 6 | 7 | Gets, from a configuration file, the next line that does not begin with an 8 | asterisk (*), or more specifically any punctuation character. 9 | 10 | 11 | 12 | pFile 13 | 14 | Handle to an open file. The file must have been opened with 15 | LCOpen. 16 | 17 | LPVOID 18 | 19 | 20 | pszBuffer 21 | 22 | Buffer that receives the next line from the configuration file. If the 23 | line is too large to fit in the buffer, it is truncated. 24 | 25 | LPTSTR 26 | 27 | 28 | cchBuffer 29 | 30 | Size of the buffer in characters. 31 | 32 | UINT 33 | 34 | 35 | 36 | 37 | If the next line was successfully retrieved, the return value is 38 | nonzero. If there are no more lines in the configuration file or an 39 | error occurs, the return value is zero. 40 | 41 | BOOL 42 | 43 | 44 |

45 | LCReadNextCommand retrieves the entire unparsed line from the 46 | configuration file, including the key name. 47 |

48 |

49 | Note: In LiteStep 0.24.7 and 0.24.8 this function 50 | incorrectly returned every line from the configuration file, including 51 | ones that began with a punctuation character. LiteStep 0.25.0 and later 52 | correct this behavior. 53 |

54 |
55 | 56 | LCClose 57 | LCOpen 58 | LCReadNextConfig 59 | LCReadNextLine 60 | 61 |
62 | -------------------------------------------------------------------------------- /sdk/examples/clock/clock.mdsp: -------------------------------------------------------------------------------- 1 | [Project] 2 | name=Clock 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\clock.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\clock.dll 69 | libraries=lsapi 70 | extraLinkerOptions=--def exports.def 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=Clock.cpp 85 | 2=bang.cpp 86 | 3=main.cpp 87 | 4=trace.cpp 88 | 5=utility.cpp 89 | [Header] 90 | 1=Clock.h 91 | 2=bang.h 92 | 3=msgcrack.h 93 | 4=trace.h 94 | 5=utility.h 95 | 6=version.h 96 | [Resource] 97 | [Other] 98 | 1=exports.def 99 | [History] 100 | -------------------------------------------------------------------------------- /sdk/docs/lsapi/LoadLSIcon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LoadLSIcon 6 | 7 | Loads an icon file. 8 | 9 | 10 | 11 | pszPath 12 | 13 | Path to the icon resource to load. Refer to the Remarks 14 | section for details. 15 | 16 | LPCTSTR 17 | 18 | 19 | pReserved 20 | 21 | Reserved. Must be NULL. 22 | 23 | LPVOID 24 | 25 | 26 | 27 | 28 |

29 | If the icon is loaded successfully, the return value is a handle to 30 | the icon. If an error occurs, the return value is NULL. 31 |

32 |

33 | The returned handle must be freed with a call to 34 | DestroyIcon. 35 |

36 |
37 | HICON 38 |
39 | 40 |

41 | pszPath specifies the Icon resource to load and can be of 42 | the following formats: 43 | 44 |

45 |
Directly load an icon file
46 |
"\path\to\file.ico"
47 |
48 | Extract an icon from a resource library (.icl, .dll, .exe, et cetera) 49 | using the specified resource index n 50 |
51 |
"\path\to\library.ext,n"
52 |
Extract the associated icon from a folder's "desktop.ini" file
53 |
"\some\folder\"
54 |
55 |

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 | --------------------------------------------------------------------------------