'Type structures... 
TYPE TBoundCommands
	RealName AS STRING * 30
	BoundName AS STRING * 20
	BoundType AS INTEGER
	ExtraInfo AS INTEGER
	BoundFile AS STRING * 255
END TYPE

TYPE TOptions
	'Colours... 
	CommandMsgColour AS INTEGER
	ReturnedMsgColour AS INTEGER
	CLIBackColour AS INTEGER
	CLIForeColour AS INTEGER
	Font AS STRING*50
	FontSize AS INTEGER

	'Background Images... 
	BackGroundImage AS STRING*255
	HowToShow AS INTEGER
	BackGroundColour AS INTEGER

	'The hotkey... 
	KeyModCTRL AS INTEGER
	KeyModALT AS INTEGER
	KeyModSHIFT AS INTEGER
	Key AS STRING*1

	'Animation options... 
	DropPercentScreen AS INTEGER
	DropPixelsPerIteration AS INTEGER
	
	'General Options 
	AutoFillIn AS INTEGER
	ShowTrayIcon AS INTEGER
	SwapEnterForSpace AS INTEGER
	ShowOnStartup AS INTEGER
	ConfirmExit AS INTEGER
	ConfirmShutdown AS INTEGER

END TYPE

TYPE THistory
	History AS STRING*300
	ColIndex AS INTEGER
END TYPE

TYPE TCPanel
	Name AS STRING*50
	File AS STRING*50
END TYPE

'************************************************************** 
'Constants...  (INTERNAL) 
'Console status 
CONST cDown = 1
CONST cUp = 2

'Types of bound items 
CONST bFile = 1
CONST bExec = 2
CONST bFold = 3
CONST bWeb = 4
CONST bCust = 5
CONST bCPanel = 6

'Way to open a folder 
CONST fOpen = 1
CONST fExplore = 2

'Ways to display background image 
CONST sTile = 1
CONST sStretch = 2
CONST sCenter = 3

'History Colour Index 
CONST hCommand = 1
CONST hReturn = 2

'Custom message dialog header types... 
CONST bmMessage = 1
CONST bmWarning = 2
CONST bmError = 3

'Custom message dialog buttons styles... 
CONST btOk = 1
CONST btOkCancel = 2
CONST btYesNo = 3
CONST btYesNoCancel = 4

'A constant for binding files, to determine wether the Bind Editor 
'or the BIND keyword was the source... 
CONST btBindEditor = 1
CONST btCmdLine = 2

'Command line callback actions... 
CONST cbQuit = 1
CONST cbShutdown = 2
CONST cbRun = 3

'Constants relating to API CALLS... 
'Colour chooser... 
CONST CC_RGBINIT = &H1
CONST CC_FULLOPEN = &H2
CONST CC_PREVENTFULLOPEN = &H4
CONST CC_SHOWHELP = &H8
CONST CC_ENABLEHOOK = &H10
CONST CC_ENABLETEMPLATE = &H20
CONST CC_ENABLETEMPLATEHANDLE = &H40
CONST CC_SOLIDCOLOR = &H80
CONST CC_ANYCOLOR = &H100

'Tray Icon... 
CONST NIM_ADD = 0
CONST NIM_MODIFY = 1
CONST NIM_DELETE = 2

CONST NIM_MESSAGE = 1
CONST NIM_ICON = 2
CONST NIM_TIP = 4

CONST WM_USER = &H400
CONST WM_TRAYICON = WM_USER + 400

CONST WM_COMMAND = &H111
CONST WM_SYSCOMMAND = &H112

CONST WM_LBUTTONDOWN = &H201
CONST WM_LBUTTONDBLCLK = &H203
CONST WM_RBUTTONDOWN = &H204
CONST WM_RBUTTONDBLCLK = &H206

CONST SC_MINIMIZE = 61472
CONST SC_CLOSE = 61536

'Global hotkeys... 
CONST WM_HOTKEY = &H312
CONST MOD_CTRL = &H2
CONST MOD_SHFT = &H4
CONST MOD_ALT = &H1

'Directory chooser... 
CONST BIF_RETURNONLYFSDIRS = 1
CONST MAX_PATH = 260

'Shutdown API... 
CONST EWX_LOGOFF = 0
CONST EWX_SHUTDOWN = 1
CONST EWX_REBOOT = 2
CONST EWX_FORCE = 4

'Drag'n'drop... 
CONST WM_DROPFILES = &H233

'************************************************************** 
'Declaring global variables... 
DIM HotkeyFlag AS INTEGER
DIM ConsoleState AS INTEGER
ConsoleState = cUp
DIM LastWindow AS INTEGER
DIM LastKeyID AS INTEGER
LastKeyID = 0
DIM TrayIcon AS INTEGER
TrayIcon = False

DIM Formatted$ AS STRING
DIM BFormatted$ AS STRING
DIM CallBackType AS INTEGER

DIM BindTime AS INTEGER

DIM CMBXReturnVal AS INTEGER

DIM Options AS TOptions

DIM Bound(400) AS TBoundCommands
DIM BoundBlank AS TBoundCommands
DIM BoundSwap AS TBoundCommands

DIM History(50) AS THistory

DIM Dummy AS INTEGER
DIM Dummy2 AS INTEGER
DIM Dummy3 AS INTEGER
DIM Dummy4 AS INTEGER
DIM Dummy5 AS INTEGER
DIM Dummy6 AS INTEGER
DIM Dummy$ AS STRING
DIM Dummy2$ AS STRING
DIM Dummy3$ AS STRING

DIM DummyPID AS INTEGER

DIM Commands$(20) AS STRING

DIM PCharDummy$ AS STRING
DIM PQuoteOpen AS INTEGER
DIM PDoneSomething AS INTEGER
DIM PNoParams AS INTEGER

DIM ADoneSomething AS INTEGER

DIM InternalCount AS INTEGER
DIM InternalCommands$(50) AS STRING
InternalCommands$(1) = "BINDEDIT"
InternalCommands$(2) = "BIND"
InternalCommands$(3) = "OPTIONS"
InternalCommands$(4) = "SHUTDOWN"
InternalCommands$(5) = "HELP"
InternalCommands$(6) = "HELP ADVANCED"
InternalCommands$(7) = "TIME"
InternalCommands$(8) = "DATE"
InternalCommands$(9) = "SHELL"
InternalCommands$(10) = "UP"
InternalCommands$(11) = "EXEC"
InternalCommands$(12) = "EXIT"
InternalCommands$(13) = "QUIT"
InternalCommands$(14) = "ABOUT"
InternalCommands$(15) = "SAVE"
InternalCommands$(16) = "STATS"

InternalCount = 16

DIM BaseDir$ AS STRING
BaseDir$ = CURDIR$ + "\"

DIM SaveFile$ AS STRING

DIM CPanels(50) AS TCPanel
DIM CPTot AS INTEGER

DIM Moving AS INTEGER
DIM FormMoving AS INTEGER
DIM MouseLastX AS INTEGER
DIM MouseLastY AS INTEGER

DIM HKMods AS INTEGER
DIM MsgStr$ AS STRING

DIM ImportStrings$(200) AS STRING

DIM SpecDummy AS LONG
DIM TotHDDSpace AS LONG
DIM TotFreeBytes AS LONG
DIM TotUsedBytes AS LONG
DIM ASpecDummy AS LONG
DIM ASpecDummy2 AS LONG

'DIM SpecDummy AS SINGLE 
'DIM TotHDDSpace AS SINGLE 
'DIM TotFreeBytes AS SINGLE 
'DIM TotUsedBytes AS SINGLE 
'DIM ASpecDummy AS SINGLE 
'DIM ASpecDummy2 AS SINGLE 

'For the commarise function... 
DIM CMRSArray$(50) AS STRING*1
DIM CMRSString$ AS STRING
DIM CMRSFinalString$ AS STRING
DIM CMRSDummy AS INTEGER
DIM CMRSDummy2 AS INTEGER
DIM CMRSDummy3 AS INTEGER

DIM VersionNumber$ AS STRING

VersionNumber$ = "v2.00"