home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac_os2 / inimt30m.zip / MLTMAINT.TXT < prev    next >
Text File  |  1994-05-01  |  39KB  |  764 lines

  1.                          MultiMaint
  2.               Copyright 1993, 1994 by Carry Associates
  3.  
  4. NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
  5.  
  6. This version of MultiMaint is a Beta version. The GA version will be
  7. V3.1.  If you register this version and run it, you must be aware
  8. that it is still considered a Beta and may contain errors.
  9.  
  10. This version of the code has been run in a number of different
  11. environments and, while it has not always done what was expected, it
  12. has not created a problem with corrupting any Desktops. Therefore, we
  13. do not expect that the remaining problems, if there are any, will
  14. cause Desktop corruption. However, there could easily be conditions
  15. where Objects are still not restored correctly or completely.
  16.  
  17. NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
  18.  
  19. MultiMaint is an OS/2 PM program to display and manage *.INI files,
  20. all Extended Attributes and provide for both a snapshot and portable
  21. backup of the Desktop. It is distributed by Carry Associates, 990
  22. Ironwood Court, Marco Island, FL, 33937-4458. Telephone number is
  23. 813-642-9126. The application was written by and is supported by
  24. Larry J. Martin. You can obtain Technical support by calling the
  25. number above, by leaving an Email on Compuserve for 72662,3616 or for
  26. the same ID in the OS2AVEND Forum Section 1.
  27.  
  28. MultiMaint is an upgrade to SysMaint that adds the ability to create
  29. a 'portable' object by object backup of the Desktop that can be used
  30. to recreate the Desktop on a different machine or on a different
  31. version of OS/2 where the Desktop customization was lost because it
  32. was necessary to reformat the Harddisk.
  33.  
  34. SysMaint is an extension of IniMaint and shares many of the same
  35. files with IniMaint. Therefore, some of the discussion below will
  36. appear to apply to IniMaint rather than SysMaint. However, because of
  37. the close relationship between the two programs, the discussion
  38. applies to both programs. SysMaint and IniMaint also share some
  39. common files such as documentation files, the same help file and the
  40. same API DLL. In order to ease compatibility problems with those who
  41. are using IniMaint, these common files will still start with ini...
  42. rather than the expected mlt....
  43.  
  44. The cost for MultiMaint is $69.95 for a single user license and $699.00
  45. for an unlimited corporate license. There is a $7.00 shipping and
  46. handling charge to ship a diskette.  Payment can be made via a check
  47. drawn on a US bank, we will invoice against a corporate purchase
  48. order or we will charge either a Visa or MasterCard credit card.
  49.  
  50. If you are already a licensed owner of SysMaint you can upgrade to
  51. MultiMaint for $15.00, if you purchased it before the GA release of
  52. MultiMaint, and for $25.00 if you purchased it after that date.
  53.  
  54. If you are already a licensed owner of IniMaint you can upgrade to
  55. MultiMaint for $30.00, if you purchased it before GA release of
  56. MultiMaint, and for $45.00 if you purchased it after that date.
  57.  
  58. All of the upgrade amounts above are for a single license, the cost
  59. to upgrade a corporate license is 10 times the appropriate single
  60. license fee.
  61.  
  62. When MultiMaint extracts the Extended Attributes from a file or
  63. directory, the Extended Attributes are placed in a file that has an
  64. internal structure and organization that is very similar to the OS/2
  65. INI files. Therefore, when the user is viewing a set of Extended
  66. Attributes, the appearance of the information is very similar to what
  67. you would see when editing an INI file. This makes the discussions
  68. below, which often refer to INI files, equally applicable to files
  69. which contain Extended Attributes.
  70.  
  71. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
  72.  
  73. MultiMaint gives you the ability to make virtually any change you want
  74. to any of the INI files or any of the Extended Attributes in your
  75. OS/2 environment. Making changes to these files must be done with
  76. care because you can do serious and unpredictable damage to your
  77. environment. It is STRONGLY SUGGESTED that you insure that you have a
  78. usable backup of any INI file or Extended Attribute that you modify in
  79. any way.
  80.  
  81. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
  82.  
  83. The enclosed is Version 3.0m of MultiMaint and has the following known
  84. problems and/or incomplete features:
  85.  
  86. 1. The Initial Dialog cannot be dismissed using the Enter Key, the
  87. Mouse must be used.
  88.  
  89. 2. If the Groups Dialog is displayed, a new Group is selected and
  90. then OK is selected without actually making any changes to any of the
  91. Groups or the Applications in a Group, then the Last Group Displayed
  92. is not updated and a subsequent use of the Groups Dialog will revert
  93. back to the previous Last Group.
  94.  
  95. 3. There is no Help available for the standard OS/2 New File Dialog.
  96.  
  97.  
  98.                  REPORTED COMMENTS OR PROBLEMS
  99.  
  100. The following items are problems that have been reported, but cannot
  101. be reproduced or comments that I have received from one or more
  102. users. Any assistance on the problems or additions to the comments is
  103. more than welcome.
  104.  
  105. 1. It was pointed out that although the Cursor in the Value MLE can
  106. be an Insert Cursor, there is no way to Insert information. My
  107. response is that the only way to change the length of a Value is by
  108. using the Replace Value Dialog because changing the expected length
  109. of an INI Key Value can cause unusual and unexpected errors. I
  110. further responded that the only way to change the cursor is to
  111. change it System wide, therefore, changing it only when it is in the
  112. MLE is a non trivial problem and I have not attempted to do it even
  113. though it leaves the apparent conflict between the appearance of the
  114. Cursor and the actual effect when a key is depressed.
  115.  
  116.                         INSTALLATION
  117.  
  118. To install the this version you must:
  119.  
  120. 1. Run the INSTALL.CMD file that is on the supplied diskette and
  121. follow the instructions.
  122.  
  123. 2. Once all of the files have been copied, the AcsTest.EXE file
  124. should be run to verify that the AccessWPS system is correctly
  125. installed and will run on your system. Simply run the program and you
  126. will hear a series of rising tones, a window will appear and a series
  127. of messages will appear in the window. If the AcsTest program runs
  128. correctly, it will be very obvious from the messages. Use the Close
  129. item on the System menu to terminate AcsTest and you will hear a
  130. falling series of tones. This will verify that AccessWPS is okay for
  131. use.
  132.  
  133. 3. You may optionally add MultiMaint to one of the Groups on your
  134. Desktop.
  135.  
  136. 4. You may optionally add the entry: SET INIMAINT= to your CONFIG.SYS
  137. file specifying the path and filename of an INI file that you want
  138. MultiMaint to use to store it's operational information. If this entry
  139. is not found in the Environment, MultiMaint will store it's operational
  140. information in the OS2.INI file.
  141.  
  142.                      GETTING STARTED
  143.  
  144. If you did not obtain your copy of MultiMaint to address a specific
  145. problem or you are not familiar with INI files, Extended Attributes
  146. and the kinds of things that MultiMaint allows you to do with them,
  147. then it is strongly suggested that you review the Getting Started
  148. entry in the Help file along with the other General Help subjects.
  149.  
  150.  
  151.  
  152.                     VALIDATING INSTALLATION
  153.  
  154. Once the DLL's and the AcsTest program have been installed, it is
  155. suggested that the AcsTest program be run to verify that everything
  156. is working correctly. The AcsTest program has no command line
  157. parameters and, if everything is working correctly it will:
  158.  
  159. 1. Sound a rising series of tones that indicate the program
  160. is starting.
  161.  
  162. 2. A window will appear with a Listbox as the Client area.
  163.  
  164. 3. You will see a series of messages that will appear as the test
  165. program goes through it's cycle. There should be no messages that
  166. indicate that any of the functions was completed unsuccessfully.
  167.  
  168. 4. There will normally be a delay of a few seconds from the time you
  169. see the message that the creation of the Agent Object is starting and
  170. the message that it is complete. This is because the AcsAgent and
  171. Accsswps DLL's are loaded at this point.
  172.  
  173. 5. Once the Object is created. You will see a line with the Version
  174. information on it. If there are any problems, you might be asked for
  175. this version information, so it is worth while noting it.
  176.  
  177. 6. Once the version information has been displayed, several lines of
  178. internal variable information will be displayed. These are the
  179. internal variables for both the Agent Object and the AccssWPS module.
  180. This is done primarily to give the developer some idea of the kind of
  181. information that is returned when the dump lines are requested. It
  182. also provides a sample of how to get the dump information, since the
  183. source code for the AcsTest program is now included in the package.
  184.  
  185. 7. To terminate the AcsTest program, simply use the Close entry on
  186. the System Menu. You will hear a falling series of tones as the
  187. program terminates indicating that the termination was successful.
  188.  
  189. 8. If there is any error during the execution of AcsTest, you will
  190. see the error message surrounded by several lines of asterisks. In
  191. addition, you will see an error message telling you that the test was
  192. not successful at the very end of the display. If you do not see the
  193. error lines at the end of the display, then the test was successful.
  194.  
  195. 9. There are two common errors that can occur because of some sort of
  196. problem installing and/or running AccessWPS. The error codes are
  197. 10200 and 10201. If you see either of these errors during the running
  198. of the test, simply run the test a second time and it should work
  199. without an error. If you get the error two times in a row, then there
  200. is no reason to try any further.
  201.  
  202.  
  203.                  WHAT ARE SAFE BACKUP AND RESTORE?
  204.  
  205. The current version of WPS does not supply all of the methods that
  206. are necessary to Save and Restore all of the pieces of information
  207. that make up an Object. IBM has promised that this will be fixed in a
  208. new release of WPS, but there is no timetable.
  209.  
  210. If you select Safe Save, then only the 'official' methods will be
  211. used to save the instance information for each Object. This will not
  212. be a complete set of instance information. If you do not select Safe
  213. Save, then all of the instance information on an Object will be
  214. saved. The extra information is collected using publicly available
  215. WPS and SOM methods, however, some of them are used in ways that were
  216. not originally thought of by the developers inside of IBM.
  217.  
  218. If you select Safe Restore, then only the instance information that
  219. can be Restored using the 'official' methods will be Restored. Even
  220. if additional information was collected by not using the Safe
  221. this information will be ignored and no attempt will be made to fully
  222. update the Object. If Safe Restore is left off and Safe Save was also
  223. left off, then all of the instance information for the Restored
  224. Objects will be set. Just as with the Save above, public WPS and SOM
  225. methods are used, they are just used in unusual ways.
  226.  
  227. One problem that is caused by the Restore when Safe Restore is not
  228. used is that the settings for the Object and the instance information
  229. that is in the Extended Attributes and the OS2.INI file are not in
  230. synch with each other. It is possible to force the Objects to reload
  231. the instance information from where it is stored, but the Objects
  232. think they know what they are going to get back, but they sometimes
  233. get back something different and this causes problems. Therefore, if
  234. you choose to not use the Safe Restore, the Desktop is reset when the
  235. Restore Dialog is dismissed. This causes all the Objects to start
  236. from scratch and will leave all of them in synch. It might be
  237. possible in the future to bypass this step, but I do not know how to
  238. do it right now.
  239.  
  240.  
  241.                         OPERATION
  242.  
  243. To run MultiMaint simply start it by clicking on the MultiMaint.EXE file
  244. or start it from the Group to which it has been added. When MultiMaint
  245. first comes up, it will default to editing the INI file that is
  246. identified by the system as the user INI file. This is normally
  247. C:\OS2\OS2.INI. The name of the current file is always displayed in
  248. the TITLE bar of the main window.
  249.  
  250. MultiMaint can also be started with an initial INI file specified on
  251. the command line. This allows MultiMaint to be started with a new file
  252. by using the command line, but also allows for it to be started by
  253. dropping a file on the ICON on the desktop or double clicking on an
  254. INI file, once the association is set up.
  255.  
  256. MultiMaint will locate the window in a default location, but you can
  257. move and or size the window as you choose. When MultiMaint is shut
  258. down, it will remember the file that it was currently working with as
  259. well as the size and location of the window and will restore all of
  260. these the next time it is run.
  261.  
  262. There are a number of MultiMaint functions which will take some time
  263. to execute. For example, the maximum length Key Value that MultiMaint
  264. will load into the Key Value Window is 60,000 bytes. Since each line
  265. only displays 8 bytes, this comes to 7,500 lines and it takes well
  266. over a minute. There are other similar types of functions, although
  267. the example is the longest. During these long operations, it is not
  268. possible to do any other MultiMaint operations. However, the long
  269. functions are done in separate threads and the Message Queue is not
  270. blocked, therefore it is possible to go do some other, non-MultiMaint,
  271. function during this time. In addition, since there are a number of
  272. reasons why a user might not want to wait until the lengthy function
  273. is completed, for example, it might have been selected in error,
  274. any MultiMaint operation that takes a long time and displays the Wait
  275. Pointer can be terminated by hitting the ESC key.
  276.  
  277. MultiMaint will normally store the current operating information such
  278. as the size and position of the windows, that INI file that is
  279. currently being edited and a large number of other items, in the User
  280. INI file, OS2.INI. This is sometimes not a convenient location, since
  281. this file gets completely replaced when a new version is installed
  282. and a problem with the OS2.INI file would mean that MultiMaint would
  283. not run. MultiMaint will use a different INI file and will create the
  284. file, if necessary, if an Environment Variable MultiMaint= is placed in
  285. the CONFIG.SYS file or in a CMD file that executes MultiMaint. For
  286. example, if the user wanted MultiMaint to use the file MultiMaint.INI in
  287. the C:\OS2\APPS subdirectory, they would code:
  288.     SET INIMAINT=C:\OS2\APPS\MultiMaint.INI
  289.  
  290.                    MAIN WINDOW DESCRIPTION
  291.  
  292. The Main Window contains three standard child windows. Two of these
  293. windows are Listboxes and the third is a MLE.
  294.  
  295. The upper left Listbox will always contain the list of Applications
  296. for the current INI file or Current set of Extended Attributes.
  297.  
  298. The upper right Listbox will contain the list of Key Names for the
  299. Application that is currently selected in the Application Listbox.
  300.  
  301. The MLE, at the bottom, will contain the hex and ASCII display of the
  302. contents of the Key Name that is selected in the Key Listbox.
  303.  
  304. The Cursor will normally be forced to the MLE and the value of the
  305. data can be modified by changing either the hex or the ASCII fields
  306. of the MLE. The cursor cannot be moved to any portion of the MLE that
  307. does not contain data that can be modified and any modification to
  308. one type of data, hex or ASCII, will immediately be reflected in the
  309. other data.
  310.  
  311. The actual data in the INI or Extended Attribute file is not changed
  312. until the user selects the Update Item on the Action Menu or selects
  313. a different Key or Application in the same INI or Extended Attribute
  314. file. At this time, you will be asked to confirm that you want the
  315. INI or Extended Attribute file modified, unless you have turned the
  316. warning option off, see below.
  317.  
  318.                  MultiMaint POPUP MENUS
  319.  
  320. In addition to the standard menu entries described below, each window
  321. has a Popup Menu that will appear when the standard action is taken,
  322. clicking once with the Right Mouse Button is the default. Each of the
  323. three primary windows has its own Menu and the Menu will contain those
  324. items which are general to the entire Application and those that
  325. apply to the entries in that particular window. Most of the items on
  326. these menus are discussed below, however, there are three items on
  327. each menu that are unique to the Popup Menus and they are:
  328.  
  329. 1. Explain will attempt to give the user an explanation of the
  330. meaning of the currently selected Application and Key. Not every
  331. Application will have an explanation, but an attempt has been made to
  332. explain all of the standard OS/2 entries as completely as possible.
  333.  
  334. 2. Write Window to a File will cause the entries in the window in
  335. question to be written to a file, so they could be reviewed without
  336. MultiMaint running.
  337.  
  338. 3. Print Window will cause the entries in the Window to be printed on
  339. the default printer.
  340.  
  341.                  MultiMaint MENU OPTIONS
  342.  
  343. The various MultiMaint Menu options are:
  344.  
  345. 1. File gives the user the ability to change INI or Extended Attribute
  346. files, refresh the current INI or Extended Attribute file, Dump the
  347. contents of the MultiMaint variables, compare two INI or Extended
  348. Attribute files and Exit from MultiMaint.
  349.  
  350. The Compare option allows the user to Compare two INI or Extended
  351. Attribute files on any one of three different levels:
  352.  
  353.    A. List Applications that are in one INI or Extended Attribute file,
  354.       but not the other.
  355.  
  356.    B. A. above plus any Key Names that are in one file, but not the
  357.       other.
  358.  
  359.    C. A. and B. above plus any Key Values that are in both files, but
  360.       are not equal.
  361.  
  362. The differences are displayed in a Listbox within a Dialog that
  363. allows the user to print or write a listing of the Listbox contents
  364. and/or create an INI or Extended Attribute file with some or all of
  365. the Applications or Keys that have differences.
  366.  
  367. 2. Options will display a Dialog that gives you the ability to:
  368.  
  369.    A. Turn off the display of the opening MultiMaint Dialog.
  370.  
  371.    B. Turn off the dialogs that will ask for confirmation before
  372.       Deleting or Modifying the contents of the Current INI or
  373.       Extended Attribute file.
  374.  
  375. 3. Groups will display a Dialog that allows you to define and manage
  376. the various Groups for this INI or Extended Attribute file. A bit of
  377. explanation is needed here. MultiMaint gives the user the ability to
  378. arrange the applications in any INI or Extended Attribute file into
  379. Groups. These Groups can then be used in a number of different
  380. MultiMaint areas and greatly ease the problems of handling an INI or
  381. Extended Attribute file with a large number of applications. For
  382. example, the OS2.INI or Extended Attribute file might be divided into
  383. two Groups, System and Private. The System Group would be the
  384. applications put in the file by OS/2 Install and the Private Group
  385. would be the remaining applications. More or fewer Groups could be
  386. defined. How the user can use Groups within the MultiMaint structure
  387. will become more clear below. The Groups Dialog gives the user the
  388. ability to define new Groups, to add and delete Applications and
  389. Delete Groups.
  390.  
  391. The procedure for establishing a new Group is to select Groups in the
  392. Group Dialog, select New Group, and supply a name. Once this is done,
  393. the Title of the Dialog will show the current Group and the new Group
  394. will be added to the Group Menu. You add Applications to the Group by
  395. selecting them in the Listbox.
  396.  
  397. The Listbox will display a specific Group or, if you want to know if
  398. there are any Applications that are not in a Group, will display all
  399. Groups. A single Application can be a member of up to 5 different
  400. Groups at any one time, so it is possible to define overlapping
  401. Groups.
  402.  
  403. 4. Size will calculate the minimum amount of Disk Space that would be
  404. required for an INI or Extended Attribute file that contained a
  405. selected set of Applications in the current INI or Extended Attribute
  406. file. When this item is selected, the user will be asked what he
  407. wants to Size. There will always be several choices, the various
  408. standard INI or Extended Attribute files, the current file and the
  409. currently selected Application. If there are any Groups defined, then
  410. they will be included among the selections. If there are more than
  411. one Group defined, then there will be an All Groups selection.
  412.  
  413. 5. Actions gives the user the ability to do a number of things:
  414.    A. Update Current Key will write any changes that have been made
  415.       to the data in the MLE into the current INI or Extended Attribute file.
  416.  
  417.    B. Delete Application and Delete Key will do the obvious.
  418.  
  419.    C. Add Application, Add Key and Replace Key Value are all the same
  420.       function except entered at different points. Add Application
  421.       will ask for the name of a new Application to add to the
  422.       current INI or Extended Attribute file and then fall through to
  423.       the Add Key, since the Applications must have at least one Key.
  424.       The Add Key will ask for the name of the new Key and then fall
  425.       through to the Replace Key Value, since any Key Name must have
  426.       an associated Value. This will cause the Key Dialog box to be
  427.       displayed. The Application and Key Names will be shown at the
  428.       top of the Dialog, followed by the current length of the data,
  429.       the ASCII representation of the data and the hex representation of
  430.       the data. This is the only option that will change the length of
  431.       a Key Value. Care must be taken when doing this, as many
  432.       applications depend on knowing the length of the INI items. As
  433.       the ASCII or hex values are changed, the changes will appear in
  434.       the other window and the length will be updated. The only
  435.       exception is when only a single hex digit is entered. The ASCII
  436.       window is not updated until two hex characters are entered.
  437.  
  438.    D. Rename and Duplicate Key give the user the ability to change
  439.       the name of an existing Key or to make a duplicate copy of the
  440.       Key using a different Key Name.
  441.  
  442.    E. Copy and Move will ask the user to select a Target File for the
  443.       Copy/Move and will then give the user the same choices as Size
  444.       above. The selected Applications will then be moved or copied
  445.       to the Target INI or Extended Attribute file, which will be created, if it does not
  446.       exist. This function is done Key by Key, so it will sometimes
  447.       take some time. However, the PM message queue is not blocked
  448.       while the move/copy is being done. The actual move or copy is
  449.       done by a separate program INICOPY, that can also be run as a
  450.       batch program, see below.
  451.  
  452.    F. Backup allows for an easy Backup of the System INI file, User 
  453.       INI file or both the System and User INI files. Once the user
  454.       has selected names for the normal backups for the two files,
  455.       these files will be presented as the default for additional
  456.       backups. The user can set an Option that will bypass asking
  457.       the user if he wants to use the defaults. This selection will
  458.       always delete the target files before doing the backup, which
  459.       is one of the ways it varies from the Copy selection.
  460.  
  461. 6. Recover contains a list of capabilities designed to give the user
  462. the ability to recover from corrupted INI or Extended Attribute files.
  463. These capabilities are:
  464.  
  465.    A. Change User and/or System INI files give the user the ability
  466.       to change the INI files that OS/2 is currently using to new
  467.       files. The primary use of this capability is to allow the user
  468.       to make changes to the User or System INI files that he knows
  469.       need to be made, but cannot make to the current User or System
  470.       Files because of protection built into OS/2. Great care must be
  471.       exercised when doing this, but it will sometimes represent the
  472.       only way that problem entries can be removed from an INI file.
  473.  
  474.    B. Repair inconsistencies between the INI files and the Desktop.
  475.  
  476.    C. Condense the Current INI file, the System INI file, the User
  477.       INI file or both the System and User INI files. The Condense
  478.       is necessary because of the way updating is done to the INI
  479.       files. The updating will leave empty areas in the INI files and
  480.       these areas tend to get fragmented, thus causing the overall
  481.       size of the INI file to grow, sometimes grow very large.
  482.       Condensing the System or User INI files is not a simple task,
  483.       since they cannot be copied or erased while they are being used
  484.       by OS/2. This item switches the files to the copies long enough
  485.       to erase the old files and copy a condensed backup to the
  486.       original names. The only problem this causes is that it will
  487.       reset the desktop to the boot desktop. This function is removed
  488.       for Version 2.1 of OS/2 and beyond, since the handling of the
  489.       INI files was changed to automatically remove the empty space.
  490.  
  491.    D. There are two items to Test for and Reset the condition where
  492.       the User and System INI files cannot be updated. When this
  493.       condition is found, the user will be asked if he wants to 
  494.       correct the condition and, if he answers yes, the User and
  495.       System INI files will get changed so that they will be able
  496.       to be updated. The process involves making a copy of the INI
  497.       files and switching to them, so it takes a minute or so and
  498.       involves resetting the Desktop.
  499.  
  500. 7. Find allows the user to search the Application Listbox, the Key
  501. Name Listbox, the Key Value MLE, all of the Key Names in the current
  502. INI or Extended Attribute file, all of the Key Values for the current
  503. Application or all of the Key Values in the current INI or Extended
  504. Attribute file for either an Ascii string or a Hex value.
  505.  
  506. 8. The Desktop menu has a number of entries that are associated with
  507. the maintenance of the Desktop.
  508.  
  509.    A. A Defaults Dialog that allows the user to set various Default
  510.       entries and values for the Desktop Items.
  511.  
  512.    B. Reset Desktop will simply reset WPS and is normally used for
  513.       testing purposes. However, there are certain kinds of manual
  514.       changes that can be made to the OS2.INI and OS2SYS.INI files
  515.       that require that the WPS be reset in order for them to become
  516.       effective and this entry will accomplish the reset.
  517.  
  518.    C. Backup Desktop will make a Simple Backup of the Desktop. This
  519.       menu item will maintain the number of backup generations
  520.       currently specified in the Desktop Defaults.
  521.  
  522.    D. Create Backup CMD file will generate a CMD file using the name
  523.       that is specified in the Defaults Dialog and generate a CMD
  524.       file that will create a Simple Backup of the Desktop, including
  525.       maintenance of the number of generations that are specified in
  526.       the Defaults.
  527.  
  528.    E. Create Restore CMD File will create a CMD file that can only be
  529.       run when the PM Shell and WPS are not active, such as after a
  530.       boot from a diskette. This CMD file will accept a generation
  531.       number as a parameter and, if no generation is specified, will
  532.       default to generation 01, tell the user that the default is
  533.       being used and only do the restore with the default if the user
  534.       hits the enter key.
  535.  
  536.    F. Restore the Desktop ID will fix the problem where the Desktop
  537.       Menu has lost the items which are unique to the Desktop, such
  538.       as Shutdown. This condition is caused by a problem in the
  539.       Extended Attributes for the Desktop Directory and this menu
  540.       item will fix that problem.
  541.  
  542.    G. Restore Desktop Directory will restore the Desktop Directory
  543.       structure from any one of the generations of Simple Backup
  544.       files created by the Backup facilities of MultiMaint. While this
  545.       can be done while WPS and PM are active, it can cause a problem
  546.       if there is anything else running at the time.
  547.  
  548.    H. Restore Desktop INI Files is similar to the item above, except
  549.       it will restore the OS2.INI and OS2SYS.INI files from the 
  550.       backup. Once again, it can be done while WPS and PM are active
  551.       but problems can occur if other things are running while this
  552.       restore is being done.
  553.  
  554.    I. Portable Backup Defaults will display a dialog that allows the
  555.       user to customize the options used during the Portable backup
  556.       and Restore activities.
  557.  
  558.    J. Create Portable Backup will do just that, create 4 files that
  559.       represent a portable backup of the current desktop. One of the
  560.       files is a copy of the OS2.INI file, one is a copy of the
  561.       OS2SYS.INI file, one contains the Desktop Extended Attributes
  562.       and the last one contains the Desktop Object information.
  563.  
  564.    K. Do Portable Restore will, eventually, use the Portable Backup
  565.       to do a partial or complete restore of the Desktop.
  566.  
  567. 9. Extended Attributes is the menu used to access Extended Attributes
  568. for a file, directory or a group of files and/or directories. The
  569. menu structure has two levels. The first selection is the function
  570. desired and this will cause a second menu to appear which will allow
  571. selection of which files and/or directories the function should apply
  572. to. All of these are described more completely in the on-line help
  573. files.
  574.  
  575. Many of the Extended Attribute functions involve taking the Extended
  576. Attributes from one set of files and/or directories and adding them
  577. to another set of files and/or directories. In order to do this,
  578. MultiMaint must have a way of deciding which files and directories
  579. match each other. The basic way this is done is by removing the base
  580. information from each path and doing the compare on the remainder of
  581. the name. For example, if the Extended Attributes for all of the
  582. files and directories in the C:\OS2\SOURCE directory were to be
  583. copied to the D:\TARGET directory, then the file
  584. C:\OS2\SOURCE\FILE.NME would be determined to match
  585. D:\TARGET\FILE.NME and the Extended Attributes for the FILE.NME file
  586. would be copied from one file to the other. In addition, the
  587. directory C:\OS2\SOURCE\SUBDIR1 would be determined to match
  588. D:\TARGET\SUBDIR1 and the directory Extended Attributes would be
  589. copied from one directory to the other.
  590.  
  591. Aside from the functions that act on the Extended Attributes, there
  592. are a few utility functions on this menu:
  593.  
  594.    A. Defaults will present a Dialog box that allows the user to set the
  595.       various defaults for the Extended Attribute menu operations.
  596.  
  597.    B. Describe Current File will tell the user the selection criteria
  598.       used to create the set of Extended Attributes that are currently
  599.       being displayed in the window. This information is kept in special
  600.       control areas of the file and is not visible, thus the need to give
  601.       the user some way of verifying the source for the current set of
  602.       Extended Attributes.
  603.  
  604.    C. Update From Current File will use the Extended Attribute
  605.       information in the currently displayed file and the internal control
  606.       information to Join the displayed Extended Attribute information to
  607.       the files and/or directories from which it was extracted. For
  608.       example, if a user want to modify the Extended Attributes for some
  609.       files and/or directories they would use View to extract the Extended
  610.       Attributes to a temporary file, use the normal editing capabilities
  611.       to make the desired modifications and then use Update to replace the
  612.       Extended Attributes for the files and/or directories.
  613.  
  614. The available functions are:
  615.  
  616.    A. View allows the user to view and, if desired, modify the Extended
  617.       Attributes.
  618.  
  619.    B. Test will examine the Extended Attributes for the selected set of
  620.       files and/or directories and present a window that will tell the user
  621.       whether the Extended Attributes are valid or invalid.
  622.  
  623.    C. Save will copy the Extended Attributes to a save file which can
  624.       later be used to View the Extended Attributes or can be used to Join
  625.       them back to the original files and/or directories.
  626.  
  627.    D. Copy will Copy the Extended Attributes from one set of files
  628.       and/or directories to another set of files or directories. The
  629.       Extended Attributes of the original files are not modified. The
  630.       Extended Attributes will be attached to files and/or directories on
  631.       the Target based on the name matching algorithm described above.
  632.  
  633.    E. Move does exactly the same thing as the Copy does with the
  634.       exception that the Extended Attributes for the Source files and/or
  635.       directories will be deleted.
  636.  
  637.    F. Split does the same as Move, except the Extended Attributes are
  638.       added to a file that can be Viewed or used to Join the Extended
  639.       Attributes to another set of files and/or directories.
  640.  
  641.    G. Join takes the Extended Attributes in a Saved, or Split file and
  642.       rejoins them to the files and/or directories selected. If the
  643.       Extended Attributes are not Joined to the original files and/or
  644.       directories, then the matching algorithm above will be used to
  645.       determine which files and/or directories to update.
  646.  
  647.    H. Compare will compare the Extended Attributes for one set of files
  648.       and/or directories to those for another set of files and/or
  649.       directories. The matching algorithm described above is used to
  650.       determine which sets of files and/or directories should be compared
  651.       to each other.
  652.  
  653.    I. Compare to Saved EAs will compare the Extended Attributes for a
  654.       set of files and/or directories to the Extended Attributes in a Saved
  655.       or Split EA file. This can be used to see what kind of changes were
  656.       made to the Extended Attributes for a set of files and/or directories
  657.       because of some action on the Desktop.
  658.  
  659. Once the function is selected, the list of what type files and/or
  660. directories the function should apply to is presented. These
  661. selections and their effects are:
  662.  
  663.    A. Single File will perform the function against a single file. The
  664.       user will be presented with a file selection dialog that will allow
  665.       them to select the file.
  666.  
  667.    B. Single Directory will perform the function against a single
  668.       directory. The user will be presented with a modified file
  669.       selection dialog that will only show the drive and directory entries.
  670.       The directory must be selected by double clicking on the desired
  671.       directory. Simply selecting the directory and then clicking on OK
  672.       will not work because of the way that the file selection dialog
  673.       handles the various messages.
  674.  
  675.    C. All Files in Directory will perform the function against all the
  676.       files in a selected directory. The user will be presented with a
  677.       modified file selection dialog that will only show the drive and
  678.       directory entries.  The directory must be selected by double clicking
  679.       on the desired directory. Simply selecting the directory and then
  680.       clicking on OK will not work because of the way that the file
  681.       selection dialog handles the various messages.
  682.  
  683.    D. All Directories in Directory will perform the function against
  684.       all the subdirectories in a selected directory. The user will be
  685.       presented with a modified file selection dialog that will only show
  686.       the drive and directory entries.  The directory must be selected by
  687.       double clicking on the desired directory. Simply selecting the
  688.       directory and then clicking on OK will not work because of the way
  689.       that the file selection dialog handles the various messages.
  690.  
  691.    E. All Files & Dirs. in Directory will perform the function against
  692.       all the files and subdirectories in a selected directory. The user
  693.       will be presented with a modified file selection dialog that will
  694.       only show the drive and directory entries.  The directory must be
  695.       selected by double clicking on the desired directory. Simply
  696.       selecting the directory and then clicking on OK will not work because
  697.       of the way that the file selection dialog handles the various
  698.       messages.
  699.  
  700.    F. All Files in Directory and SubDirs. is the same as C. above,
  701.       except that MultiMaint will include not only the files in the
  702.       directory but any files found in any subdirectory of the selected
  703.       directory.
  704.  
  705.    G. All Directories in Directory and SubDirs. is the same as D. above,
  706.       except that MultiMaint will include not only the subdirectories in the
  707.       directory but any subdirectories found in any subdirectory of the selected
  708.       directory.
  709.  
  710.    H. All Files & Dirs. in Directory and SubDirs. is the same as E.
  711.       above, except that MultiMaint will include not only the files and/or
  712.       subdirectories in the directory but any files and/or subdirectories
  713.       found in any subdirectory of the selected directory.
  714.  
  715.    I. All Files on Drive will perform the function against all the
  716.       files on a selected drive. The user will be presented with a
  717.       modified file selection dialog that will only show the drive
  718.       entries.  The drive must be selected followed then the OK box.
  719.  
  720.    J. All Directories on Drive will perform the function against all the
  721.       directories on a selected drive. The user will be presented with a
  722.       modified file selection dialog that will only show the drive
  723.       entries.  The drive must be selected followed then the OK box.
  724.  
  725.    K. All Files & Directories on Drive will perform the function against
  726.       all the files and/or directories on a selected drive. The user will
  727.       be presented with a modified file selection dialog that will only
  728.       show the drive entries.  The drive must be selected followed then the
  729.       OK box.
  730.  
  731.                              INICOPY
  732.  
  733. INICOPY is the program that is used by MultiMaint to do the actual
  734. COPY/MOVE operations. This option is implemented as a separate program
  735. so that the user will have the ability to make copies of INI or Extended Attribute files,
  736. including the User and System INI or Extended Attribute files, at any time during the day.
  737.  
  738. The parameters expected by INICOPY are:
  739.  
  740. Required Parameters:
  741.  
  742. -Ifilename  - The fully qualified path and filename of the Source,
  743.               Input, INI or Extended Attribute file.
  744.  
  745. -Ofilename  - The fully qualified path and filename of the Target,
  746.               Output, INI or Extended Attribute file. The Target will be created if it does
  747.               not exist.
  748.  
  749. Optional Parameters:
  750.  
  751. -Fx         - Function requested - Default is C(opy)
  752.               C = C(opy)
  753.               M = M(ove)
  754.  
  755. -E          - COPY/MOVE Entire INI or Extended Attribute file - Default
  756.                                             
  757. -A          - COPY/MOVE All Groups
  758.                                              
  759. -Ggroup     - COPY/MOVE Specific Group
  760.                                              
  761. -Sapp       - COPY/MOVE Specific Application
  762.  
  763. -T          - Use Fast Copy. This is only valid if -E is also specified
  764.