//***************************************************************************
//
//	Library:
//      FM_UTILS.DLL - version 1.1a
//
//	Purpose:
//		FM_UTILS is a File Manager extension DLL. An extension DLL adds
//		a menu to File Manager, contains an entry point that processes menu
//		commands and notification messages sent by File Manager, and
//		queries data and information about the File Manager windows. The 
//		purpose of an extension DLL is to add administration support 
//		features to File Manager, for example, file and disk utilities.
//		Up to five extension DLLs may be installed at any one time.
//
//		FM_UTILS adds a menu (called "Utilities" by default) to File Manager
//		and processes all the messages that are sent by File Manager to an 
//		extension DLL. In order to retrieve any information, it sends 
//		messages to File Manager.
//
//	Usage:
//		File Manager installs the extensions that have entries in the 
//		[AddOns] section of the WINFILE.INI initialization file. An entry 
//		consists of a tag and a value. To load FM_UTILS.DLL as a File 
//		Manager extension, add the following to WINFILE.INI (assuming the 
//		DLL resides in c:\win\system):
//
//			[AddOns]
//			FM_Utils Extension=fm_utils.dll
//
//		In addition, a section specific to this Extension DLL is added to
//		WINFILE.INI. There are several elements to this section:
//		For each utility to appear on the menu, there is a 'UserProgn=' tag,
//		and a 'UserDescn=' tag. Comments (preceded by semicolons) are optional.
//		You may have up to twenty separate utilities specified.
//		You can also specify up to five utilities to load at the same time as
//		FileMan, and exit when you close FileMan. You use the 'PreLoadn='
//		tag for this. All of the utilities are started with the SW_SHOWMINNOACTIVE
//		setting (minimized, but not activated).
//		And, you can specify the name of the added menu. If you choose not to,
//		the default is "&Utilities". This provides foreign language support,
//		as well as allowing you to use a very short name, to keep the menu bar
//		from growing too long. The tag to use is 'UserMenuName='.
//
//			[FM_Utils Extension]
//			;Name the menu
//			UserMenuName=&Util
//			;add Upper Deck Editor to menu
//			UserDesc1=&Edit File(s)
//			UserProg1=D:\UDE\UDE.EXE
//			;add V. Buerg's LIST to menu
//			UserDesc2=&View File(s)
//			UserProg2=LIST.PIF
//			;PreLoad Trash Can
//			PreLoad1=TRASH.EXE
//
//	Revision History:
//		1.0 - March '92 - initial release
//
//		1.1 - April '92 - added ability to PreLoad utilities. This seems even
//							more popular than the original DLL.
//
//		1.1a - August '92 - added ability to specify menu name; changed
//							SendMessage(...WM_CLOSE...) to PostMessage(...WM_CLOSE...)
//							since it seemed to make more sense.
//
//	Notes:
//		Portions of the base code for this utility is based on, and borrowed
//		from, the XTENSION sample code provided with the Microsoft Windows
//		3.1 SDK.
//
//		FM_UTILS attempts to close any auto-started utilities by posting a
//		WM_CLOSE to it's main window. There's no guarantee that this method
//		will work for *all* programs. If you know of a better way to handle
//		this situation, I'd be *really* happy to hear about it.
//
//		While it's not properly documented anywhere, it seems that the maximum
//		command line to pass to WinExec() is 128 characters. Since we have to
//		pass in complete pathnames for all files in order for this to work,
//		we may not be able to pass *all* selected file names.
//
//	Copyright (c) 1992 by Brad P. Smith - all rights reserved
//
//		snail:	R.R. #2 - 777 Crozier Rd.
//				Oxford Mills, Ontario, CANADA
//				K0G 1S0
//		E-Mail:	'B.P.Smith' on BIX, or 'B.P.Smith@BIX.com' on Internet
//
//		This utility DLL is FreeWare. Don't let *anybody* charge you
//		for it.
//		However, I would *really* appreciate hearing from you if you find
//		FM_UTILS useful. Drop me a postcard or E-mail. I could use the moral
//		support. :-)
//
//***************************************************************************
