//====================================================================
// WBExec
// Plugin for Stardock's WindowBlinds
// Execute software from the title bar
//--------------------------------------------------------------------
// Copyright (c) 2000..2004 MadIce
//--------------------------------------------------------------------
// Special thanks to
// - PJPowell
// - Hippy
// - Snowman
// - Adam Najmanowicz
//====================================================================
// I. Introduction
//--------------------------------------------------------------------
// If you are not a skinner then read this introduction. Skinners may 
// need to read the rest of this file too.
//--------------------------------------------------------------------
// If a skin supports this plugin it is easy to change some of it its 
// functionality by using the built-in configuration menu. Each button 
// which supports WBExec can invoke the options menu by keeping the 
// Scroll Lock key pressed and clicking the button. Release the key as 
// soon as the menu appears. The menu shows the following sub-menus:
// - Normal
// - Shift
// - Control
// - Explorer
// - Browser
//--------------------------------------------------------------------
// The Normal menu shows the options you can assign to a normal click 
// action (i.e. without Shift or Ctrl being pressed). The Shift menu 
// shows the options that will be invoked when you click the button 
// and press Shift at the same time. The Control menu shows what can 
// be executed when you click the button and press Ctrl. In those 
// sub-menus an item may be tagged with a check mark. This indicates 
// the option currently selected. If no check mark appears then no 
// action has been assigned yet. Just select the item you want. The 
// change is stored in the skin and there is no need to change the 
// skin file.
//--------------------------------------------------------------------
// The Explorer menu has two options:
// - Normal view (the default)
// - Tree view 
// Select the view you want. A lot of WBExec's menus start explorer 
// and and these options select single pane (normal view) or dual pane 
// (tree view) mode. These options do not change how other parts of 
// Windows behave and work for most folders opened by WBExec only.
//--------------------------------------------------------------------
// The Browser menu has also two option:
// - Invoked by Explorer (the default)
// - Use iexplore.exe directly
// Normally there is no need to change this setting. Use this option 
// if internet shortcuts do not work well. WBExec may have detected 
// another browser. That browswer will be shown in the second option. 
// WBExec may not support your browswer. Sorry.
//--------------------------------------------------------------------
// Some of these options may not be available and may be grayed out. 
// This is because the skinner has assigned a custom action to it.
//--------------------------------------------------------------------
// If you do not know how to skin and the skin does not support this 
// plugin then you may need to change the skin yourself and add the 
// graphics for the buttons to it and change the skin files. Note that 
// you cannot distribute the skin with the changes you made without 
// written permission from the skin author.
//--------------------------------------------------------------------
// The rest of this documentation is for skinners not using Stardock's 
// SkinStudio. That application provides user friendly support for 
// WBExec (or it will be added soon).
//--------------------------------------------------------------------
// Skinners need to read the rest of this documentation to learn how 
// to assign the plugin to the buttons.
//====================================================================
// II. Execute a command
//--------------------------------------------------------------------
// WBExec can assign up to 3 functions per button. In the samples
// below we use Button #12, but any number will do and the plugin
// supports more than one button. In those samples you'll need to
// change SkinName for the actual skin name you are using. Each button
// section needs at least tow entries:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
//--------------------------------------------------------------------
// You can add any other valid WB declariations in the rest of the
// button section. In the samples this will not be shown.
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExec=NotePad.exe
//--------------------------------------------------------------------
// In this sample NotePad will be started whenever the user clicks the
// button. Note that you don't have to specify a path. WBExec will try
// to find the application in the following order:
// - The skin folder.
// - The folder registered by the application.
// - The current path (using the Windows settings)
//====================================================================
// III. Adding parameters to the command
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExec=NotePad.exe
// WBExecParams=SkinName.UIS
//--------------------------------------------------------------------
// The above sample loads the skin's UIS file in NotePad. It will find
// the skin file because no other path has been specified. Although
// you can specify qualified paths you shouldn't do so. The user may
// have another folder structure, or may not use drive C or the
// folders may have a different name when the user is in another
// country.
//====================================================================
// IV. Using Shift or Ctrl while clicking
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecShift=NotePad.exe
// WBExecShiftParams=SkinName.UIS
//--------------------------------------------------------------------
// This sample is similar to the previous one, but instead of a normal
// click the user has to press shift while clicking the button. You
// can also specify the Ctrl key instead:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecCtrl=NotePad.exe
// WBExecCtrlParams=SkinName.UIS
//--------------------------------------------------------------------
// Of course you can combine these options. That means you can have up
// to 3 commands per button.
//====================================================================
// V. The Drives menu
//--------------------------------------------------------------------
// You can show a menu which contains all the drives present on the
// system. Pressing an item on the menu starts Explorer and makes it
// show that drive.
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=1
//====================================================================
// VI. The Folder Menu
//--------------------------------------------------------------------
// You can show a menu containing some common used folders. The number
// of folders depends on what Windows version has been installed and
// how the user configured it.
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=2
//====================================================================
// VII. The Start Menu
//--------------------------------------------------------------------
// You can show the Start Menu by specifying menu option #3:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=3
//====================================================================
// VIII. The Player Menu
//--------------------------------------------------------------------
// You can show the Player Menu by specifying menu option #4:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=4
//--------------------------------------------------------------------
// The number of items on the menu depends on the installed software.
// WBExec scans the system and builds the menu using information found
// in the registry. When no compatible registered software can be
// found then this button does nothing. If only one program has been
// detected then the button does not display a menu, but executes that
// program instead.
//====================================================================
// IX. The Graphics Menu
//--------------------------------------------------------------------
// You can show the Graphics Menu by specifying menu option #5:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=5
//--------------------------------------------------------------------
// The number of items on the menu depends on the installed software.
// WBExec scans the system and builds the menu using information found
// in the registry. When no compatible registered software can be
// found then this button does nothing. If only one program has been
// detected then the button does not display a menu, but executes that
// program instead.
//====================================================================
// X. The Office Menu
//--------------------------------------------------------------------
// You can show the Office Menu by specifying menu option #6:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=6
//--------------------------------------------------------------------
// The number of items on the menu depends on the installed software.
// WBExec scans the system and builds the menu using information found
// in the registry. When no compatible registered software can be
// found then this button does nothing. If only one program has been
// detected then the button does not display a menu, but executes that
// program instead.
//====================================================================
// XI. The Quick Launch Menu
//--------------------------------------------------------------------
// You can show the Quick Launch by specifying menu option #7:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=7
//====================================================================
// XII. The Recent Files Menu
//--------------------------------------------------------------------
// You can show the Recent Files Menu by specifying menu option #8:
//-------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=8
//====================================================================
// XIII. The Object Desktop Menu
//--------------------------------------------------------------------
// You can show the Object Desktop by specifying menu option #9:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=9
//====================================================================
// XIV. The Desktop Menu
//--------------------------------------------------------------------
// You can show the Desktop by specifying menu option #10:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=10
//--------------------------------------------------------------------
// The menu is organized as follows:
// - A sub-menu containing all the folders on the desktop.
// - A sub-menu containing all the documents on the desktop.
// - A sub-menu containing the Object Desktop applications.
// - The main menu contains all the shortcuts on the desktop.
// One or more of these may be empty.
//====================================================================
// XV. Special Functions
//--------------------------------------------------------------------
// Some of the option on the menu are available directly:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecFunction=1
//--------------------------------------------------------------------
// The above example shows "My Computer". The number indicates the
// function to be displayed. Below you'll find the complete list:
// 1: My Computer
// 2: My Documents
// 3: My Network
// 4: Recycle Bin
// 5: Printers
// 6: Control Panel
// 7: Scheduled Tasks
//--------------------------------------------------------------------
// Like the othe commands you can use Shift and Control variations:
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecFunction=1
// WBExecShiftFunction=3
// WBExecCtrlFunction=5
//====================================================================
// XVI. Mixing comands
//--------------------------------------------------------------------
// Like the other WBExec options you can specify whether the user
// needs to press Shift or Ctrl when invoking a menu.
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=1
// WBExecShiftMenu=2
// WBExecCtrlMenu=3
//--------------------------------------------------------------------
// ... or ...
//--------------------------------------------------------------------
// [Button12]
// Action=-4
// DllName=SkinName\WBExec.dll
// WBExecMenu=1
// WBExecShift=NotePad.exe
// WBExecShiftParams=SkinName.UIS
// WBExecCtrlFunction=10
//====================================================================
// XVII. Why don't the correct applications appear on the menus?
//--------------------------------------------------------------------
// The following menus learn about what's installed on your system:
// - The Player Menu
// - The Graphics Menu
// - The Office Menu
// If you just installed a new program you may need to reboot first.
// The software also needs to be associated to a file extension.
// WBExec is only able to support the most popular software. Chances
// are most software is supported, but don't be surprised if your
// software does not appear.
// WBExec tries to do its best to add the correct software to the
// menus. However, chances are that it makes a mistake whenever it
// encounters unfamiliar software.
//====================================================================
// XVIII. Which versions of Windows does WBExec support?
//--------------------------------------------------------------------
// Currently only W2K and XP are supoorted. The plugin may not work
// properly in older versions of Windows.
//====================================================================
// XVII. Why don't some options appear on some programs?
//--------------------------------------------------------------------
// Some options require COM and some programs don't support COM. In
// short... The program may not work well in the titlebar of older
// programs.
//--------------------------------------------------------------------
// Some options rely on the registry. The registry is very fragile and
// easily corrupted. This may cause some options to fail.
//====================================================================
