GFile 2.1 Tech Notes ===================== Note - If you have not read the file README.1ST, please do so now. It contains particular license terms and warranty information to which you are implicitly agreeing by using this program. Revision History ======================================== Revision 1.0 3/14/92 Original program completed, written in Visual Basic Revision 1.1 3/29/92 Fixed several bugs. Added View/Small and Options menu Made error handling more robust Revision 1.2 4/5/92 Fixed more bugs. Added Disk Info screens Changed order of selecting default destination for Copy/Move. Revision 1.3 4/11/92 Fixed bugs. Added the ability to save configuration between subsequent executions. Revision 1.4 4/19/92 Changed 'Selected File' listing to give date/time and attributes along with filename and length. Added 'About...' item to menu. Extended the configuation save/load to include the drives/directories being displayed, the working directory, and the location of GFile on the screen. Revision 1.5 5/3/92 Completely rewrote the panel display, hilighting and directory selection logic to make it more 'visually intuitive' - incorporating the idea of an 'active pane' and a 'destination pane' similar to many DOS file manipulation utilities. Fixed several minor bugs. Cleaned up the Tab Groups. Enhanced performance of the File Info panels. Decided GFile had progressed as far as it could using 'Out Of The Box' Visual Basic. Considered writing custom controls in C, decided it would be be better in the long run to re-write the entire program in C. Began development of Revision 2.0. Revision 2.0 2/25/93 Released GFile 2.0 Added Program Groups Enhanced command line Added serialized printing/execution Added icons to Program Item list box. Many additional small enhancements. Revision 2.0A 3/12/93 Released GFile 2.0A. Corrected several bugs that appeared after 2.0 release Revision 2.1 11/1/93 Released GFile 2.1 Resizable main window Multiple, resizable panels Recursive (tree) copy/move/delete User configurable button bars Enhanced dialogs - browse and options Enhanced help - graphical hotspots, popups, more text Ported code to C++, cleaned up code Notes ===== Although GFile directly reads the group files to implement the Program Item lists, GFile uses DDE (program to program communication) messages with Program manager to make changes in group files. I chose to do it this way for a couple of reasons: 1. Safety. If Microsoft were to change the format of group files after 3.1, for example, the worst thing that would happen to GFile is that it wouldn't run. In particular, it would not write incorrectly formatted group files, since it is Program Manager that is actually writing the files. 2. Efficiency. Although the code to directly manipulate the group files would be faster than communicating with Program Manager, it would certainly also be much much bigger than the communicating code. Although I'm sure there are people who create dozens of program items a day - they are not the norm. Most of us would rather not waste the disk space re-inventing the wheel - even if it does spin a little bit faster. The main result of this is that when creating, destroying, or changing program items, you will see Program Manager come into existence as an icon (if it is not already running), and then go away again upon completion. If Program Manager is already running, and is not iconized, it will hide while the operation is taking place (to prevent unnecessary screen painting activity), and then re-appear upon completion. You will notice that when a DOS Application is minimized (iconized) the icon that is displayed is the standard blue DOS Icon (actually the icon for the winoldap program that controls the DOS Application) rather than the icon associated with the Program Item. Microsoft has not documented any method to prevent this behavior, and I've yet to discover/figure out the undocumented method Microsoft uses in Program Manager. GFile Hall of Fame ================== Thanks to the following folks for their help in designing, testing, distributing, and improving GFile Jack Cotterman John Gareri Tim Gleason Randy("I've found a GBug") Hoch Tim Wallace