Annotation of mstools/mfc/readme.txt, revision 1.1.1.1

1.1       root        1: =======================================================================
                      2:                    MICROSOFT (R) FOUNDATION CLASSES
                      3: =======================================================================
                      4: 
                      5: ***********************************************************************
                      6: ***               for Microsoft Windows (R) NT (tm)                 ***
                      7: ***********************************************************************
                      8: 
                      9:                           BETA RELEASE 1
                     10: 
                     11: This is the Beta Release of the Microsoft (R) Foundation Classes for
                     12: Microsoft Windows NT.  ENJOY!  Release notes can be found at
                     13: the end of this file.
                     14: 
                     15: 
                     16: -----------------------------------------------------------------------
                     17: 
                     18: This subdirectory contains the source code and example code for
                     19: the Microsoft Foundation Class (MFC) C++ library.  The MFC library is
                     20: a C++ Application Framework designed primarily for use in developing 
                     21: applications for Microsoft Windows.  The MFC library is used in
                     22: conjunction with the tools provided with the NT beta release.
                     23: 
                     24: The MFC library consists of two groups of classes.  One set is
                     25: designed for use with Microsoft Windows and includes classes
                     26: tailored for GUI application programming, such as classes for
                     27: windows, dialogs, controls, and menus.  The other classes
                     28: are a set of lower level, non-graphical, general purpose classes
                     29: designed to make it easier to write the part of your application 
                     30: that is independent of the user interface, and includes classes 
                     31: supporting collections, files, memory management, and 
                     32: runtime support.  The Windows classes take advantage of the
                     33: features provided by these general purpose classes.
                     34: 
                     35: The MFC library is designed to be efficient in both space
                     36: and time.  There is a minimal execution time overhead, and
                     37: the entire library, all 60 classes, is under 39K of executable code.
                     38: 
                     39: A complete introduction to the MFC library can be found in the
                     40: Overview section of the "Class Reference" book.
                     41: 
                     42: 
                     43: Windows Classes
                     44: ---------------
                     45: Microsoft Windows and C++ are "object-oriented" and the MFC
                     46: library exploits the Windows operating environment.  The Windows
                     47: C++ classes offer the following features:
                     48: 
                     49:     o  Robust Application Framework for Windows
                     50:     o  Tight coupling to the Windows API
                     51:     o  Significant reduction in API "surface area"
                     52:     o  Complete classes for nearly all Windows objects
                     53:     o  Efficient processing of Windows messages with message maps
                     54:     o  Customizable window classes using C++ inheritance
                     55:     o  Utility classes to make Windows programming easier
                     56: 
                     57: The Windows classes can be used in conjunction with all the standard
                     58: Windows APIs and can easily incorporate existing Windows code.  In
                     59: addition, the MFC Windows classes provide a seamless migration to
                     60: the forthcoming 32-bit Windows API.
                     61: 
                     62: 
                     63: General Purpose Classes
                     64: -----------------------
                     65: The general purpose classes are useful both with and without Windows.
                     66: If you are writing a program that does not use Windows, you can
                     67: still take advantage of the MFC library for your application's
                     68: user interface independent code.  All of the features are optional
                     69: and will incur no runtime overhead if you choose not to use them.  The
                     70: general purpose C++ classes include the following features:
                     71: 
                     72:     o  Common base class for many classes
                     73:     o  Runtime type and metaclass support
                     74:     o  Persistent objects
                     75:     o  Collection classes based on ANSI C++ template syntax
                     76:     o  String class
                     77:     o  Time and Date classes
                     78:     o  File classes
                     79:     o  Exception handling based on ANSI C++ syntax
                     80:     o  Diagnostic and debugging support
                     81: 
                     82: 
                     83: Support for Windows 3.1 features
                     84: --------------------------------
                     85:      The Microsoft Foundation classes provide support for the
                     86:      enhancements provided in Windows version 3.1. The following
                     87:      features are described in technical notes in the
                     88:      \NT\MSTOOLS\MFC\DOC directory and demonstrated in sample programs in
                     89:      \NT\MSTOOLS\MFC\SAMPLES. These API functions are documented only in
                     90:      the Help system. The following list describes the enhancements 
                     91:      that can be used to develop applications for both Windows 3.0 
                     92:      and Windows 3.1.
                     93: 
                     94:      o The development and use of custom controls is supported. In
                     95:        addition, owner draw controls and bitmap buttons are provided. 
                     96:        See TN014.TXT and the sample application CTRLTEST.
                     97: 
                     98:      o To improve robustness, the Microsoft Foundation Class Library 
                     99:        fully supports the STRICT data types defined in the Windows 3.1 
                    100:        interface file, WINDOWS.H.
                    101: 
                    102:      o Common dialog operations are now supported with easily
                    103:        customized classes including CFileDialog (for both File Open
                    104:        and File Save As), CFindReplaceDialog (to implement modeless
                    105:        find and replace), CColorDialog (for color selection),
                    106:        CPrintDialog (for both print setup and print), and
                    107:        CFontDialog (for font selection). These new dialogs are
                    108:        described in TN013.TXT.
                    109: 
                    110:      o Dialog boxes now feature a gray background which is easily 
                    111:        customized.
                    112: 
                    113:      o OLE servers now register themselves at startup so that
                    114:        users do not need to use REGEDIT.EXE.
                    115:     
                    116:      o Using multiple inheritance with Microsoft Foundation
                    117:        classes is demonstrated in the sample application MINSVRMI,
                    118:        a small OLE server that uses multiple inheritance.
                    119: 
                    120:      o For applications that target Windows 3.1 only, the Microsoft 
                    121:        Foundation Class Library supports the most useful new Windows 
                    122:        3.1 API functions and messages.
                    123: 
                    124: 
                    125: Why use the Microsoft Foundation library instead of C and the SDK?
                    126: ------------------------------------------------------------------
                    127: The MFC library has many advantages over using the traditional
                    128: C techniques in the Microsoft Software Development Kit for Windows.
                    129: Some of these advantages include:
                    130: 
                    131:     o  MFC decreases the API surface area; the SDK is a catalog of
                    132:     hundreds of functions, whereas the MFC library takes advantage
                    133:     of the inheritance and polymorphism supported by C++ to organize
                    134:     the Windows APIs in a logical and manageable manner.
                    135: 
                    136:     o  MFC provides a standard Windows application startup; the
                    137:     MFC class CWinApp implements the functionality normally provided
                    138:     in WinMain.
                    139: 
                    140:     o  MFC encapsulates Windows behavior; the class structure
                    141:     and data encapsulation supported by C++ safely hides many
                    142:     of the details that programmers need not concern themselves
                    143:     with.
                    144: 
                    145:     o  MFC handles many details of Windows programming;  gone are
                    146:     the days of registering Window classes or MakeProcInstance.
                    147: 
                    148:     o  MFC provides a object-oriented mechanism for routing
                    149:     Windows messages;  the message map supported by each window
                    150:     C++ class provides a cleaner and less error prone mechanism for
                    151:     handling the mapping of Windows messages to member functions.
                    152:     Messages, commands, and notifications can be handled in this
                    153:     object-oriented manner.
                    154: 
                    155:     o  MFC taps the power of C++.  C++ supports many features that
                    156:     make writing programs easier, such as type safety, encapsulation,
                    157:     inheritance, and polymorphism, that when used in conjunction with
                    158:     MFC provides the best technique for writing Windows programs
                    159:     in C++.
                    160: 
                    161: 
                    162: Usage
                    163: -----
                    164: Source code is provided so that you can build the library target
                    165: that you require.  The file SRC\README.TXT contains instructions for
                    166: building the library.
                    167: 
                    168: Before using the MFC library in your own code be sure that the
                    169: MFC\INCLUDE subdirectory is in your INCLUDE environment variable.
                    170: 
                    171: 
                    172: Subdirectories
                    173: --------------
                    174: The MFC subdirectory contains several subdirectories.  Nearly every
                    175: subdirectory contains a README.TXT file that describes the
                    176: directory's contents.  The following subdirectories are present:
                    177: 
                    178:     DOC\        - MFC technical notes describing implementation details.
                    179:     INCLUDE\    - MFC header files.
                    180:     SRC\        - MFC source files and instructions for building a library.
                    181:     LIB\        - MFC libraries in binary form.
                    182:     SAMPLES\    - MFC sample applications.
                    183: 
                    184: 
                    185: Documentation
                    186: -------------
                    187: The NT release of the MFC library ships with both on-line Quickhelp
                    188: documentation only. No MFC printed documentation is available with this
                    189: release, but the printed MFC documentation provided with the Microsoft
                    190: C/C++ 7.0 compiler can be used 'as-is'.
                    191: 
                    192: If you have any comments or suggestions regarding the Microsoft
                    193: Foundation Classes, please let Microsoft know through the beta program
                    194: liaison.
                    195: 
                    196: 
                    197: NOTE
                    198: ----
                    199: 
                    200: The Microsoft Foundation Classes (MFC) library source code is
                    201: shipped "as is" and is designed for your own use and modification.
                    202: Microsoft Product Support can only offer limited support regarding
                    203: the MFC source code because of this benefit. 
                    204: 
                    205: Microsoft grants you a non-exclusive royalty-free right to use and 
                    206: modify the source code contained in any Microsoft Foundation Classes 
                    207: source code file for purposes of creating a software product.  
                    208: However, you may not include this code in source form (or 
                    209: any modified version of it) within any software product.   
                    210: 
                    211: Notwithstanding the Microsoft End User License Agreement, THIS SOURCE 
                    212: CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  YOU AGREE THAT 
                    213: NEITHER MICROSOFT NOR ANYONE ELSE INVOLVED IN CREATING, PRODUCING OR 
                    214: DELIVERING THE SOURCE CODE SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, 
                    215: CONSEQUENTIAL, OR INCIDENTAL DAMAGES RELATING TO THE SOURCE CODE.
                    216: 
                    217: 
                    218: Windows NT Release Notes:
                    219: -------------------------
                    220: 
                    221: -- This beta release is a strict superset of the Microsoft C/C++ 7.0 release
                    222:    of MFC.  Any applications written for the MFC C++ Windows API will
                    223:    need only be recompiled using the 32 bit tools in this release in order
                    224:    to run in full 32 bit mode.  For those familiar with MFC, you will
                    225:    note that the sample applications included in this release are 
                    226:    unchanged from the 16 bit release.  This release of MFC can be used
                    227:    interchangeably with the Microsoft C/C++ 7.0 release.
                    228: 
                    229: -- In order to build the MFC sample applications you should have your
                    230:    environment set as follows:
                    231:         set NTMFC=1
                    232:        set LIB=c:\mstools\lib   (note this is not a ';' list)
                    233:        set INCLUDE=c:\mstools\mfc\include;c:\mstools\h
                    234:    These may also be set on the NMAKE command lines if you wish.  If your
                    235:    installation is on another drive or in another directory, then you
                    236:    should change c:\nt\mstools accordingly.
                    237: 
                    238:    NOTE: THE INCLUDE PATH ESTABLISHED BY THE NT SDK SETUP PROGRAM WILL
                    239:    NOT WORK FOR MFC COMPILES.  BEFORE COMPILING MFC CODE YOU MUST CHANGE
                    240:    THE INCLUDE PATH AS DESCRIBED ABOVE.
                    241: 
                    242: -- The MFC\INCLUDE directory for this release contains copies of the
                    243:    Windows NT header files.  The copies have several modifications made
                    244:    in order to make them more consistent with C++ and the Windows 3.1
                    245:    header files.  This is only for this beta release and these changes
                    246:    will be folded into the header files in MSTOOLS\H for the next release.
                    247:    You must use these in order to successfully build the MFC library or
                    248:    any MFC sample applications.
                    249: 
                    250: -- Your PATH must include the Windows SDK Tools and Microsoft C/C++.
                    251: 
                    252: -- Online documentation is available via QuickHelp (QH.EXE).  The .HLP
                    253:    files are located on the CD-ROM in MSTOOLS\HELP\QH. You must copy
                    254:    the help files and the QuickHelp application (QH.EXE) from the CD-ROM
                    255:    to your target hard disk yourself -- the NT SDK setup program will not
                    256:    install Quickhelp documentation.
                    257: 
                    258:    Windows WinHelp files for MFC are not currently available.
                    259: 
                    260: -- This beta release of MFC does not include DLL support.
                    261: 
                    262: -- Do not use the /Zp switch for MFC applications.  If you do some system
                    263:    calls may not work (such as COMMDLG).
                    264: 
                    265: -- The COFF linker emits a warning when it does not extract any modules
                    266:    from a .LIB.  The MFC sample applications will emit this warning which can
                    267:    be ignored.
                    268: 
                    269: -- You may experience problems printing with the sample applications that
                    270:    print.
                    271: 
                    272: -- The CHART sample application currently has several low level compiler
                    273:    warnings that can be ignored.  These will be addressed.
                    274: 
                    275: -- The MULTIPAD sample application currently has an inconsistency with the
                    276:    way it maintains the file MRU menu items.  This will be fixed.
                    277: 
                    278: -- The retail version of the MULTIPAD sample may fault on exit.        This
                    279:    will be fixed in a future release.
                    280: 
                    281: -- The "self-draw" control functionality for custom menu items (demonstated
                    282:    in the CTRLTEST sample application) currently behaves inconsistently.
                    283:    This will be fixed.
                    284: 
                    285: -- The MINSVRMI sample application may fault.  This will be fixed.
                    286: 
                    287: -- CListBox::FindStringExact and CComboBox::FindStringExact do not
                    288:    work correctly.  This will be fixed.
                    289: 
                    290: -- Debugging C++ applications is quite "challenging" with this release.  We
                    291:    recommend the liberal use of trace statements and { _asm int 3 } lines
                    292:    in your code.  The NTSD debugger does not currently permit the setting
                    293:    of breakpoints on C++ member functions.  If you have global functions
                    294:    that are not overloaded, then using the extern "C" construct will prevent
                    295:    name decoration and permit the setting of breakpoints.  If all else fails,
                    296:    you can always debug your MFC application using C/C++ 7.0 
                    297:    on a machine running CodeView 4.0 and Windows 3.1.  The C++ expression
                    298:    evaluator for WinDebug will be made available as soon as practical.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.