home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional Developers Kit 1992 November / Disc01 / Disc01.mdf / os2tk20 / read.me < prev    next >
Encoding:
Text File  |  1992-10-22  |  23.2 KB  |  726 lines

  1.    Welcome to the IBM Developer's Toolkit for OS/2
  2.    2.0.  This information has been prepared to
  3.    assist you in your application development
  4.    activities.
  5.  
  6.  
  7.  
  8. ADDITIONAL DEVELOPER INFORMATION
  9. ________________________________
  10.  
  11.    IBM participates in CompuServe forums.  If you
  12.    are online as a CompuServe member, simply type
  13.    "GO IBMOS2" at the ! prompt and you will be
  14.    provided with a menu of the available OS/2
  15.    forums.
  16.  
  17.  
  18. TOOLKIT INSTALLATION
  19. ____________________
  20.  
  21.    The toolkit installation program has been
  22.    updated to take advantage of new features in
  23.    the Workplace Shell.  The Toolkit folder on the
  24.    desktop, illustrated by the toolbox icon,
  25.    contains three other folders.  These folders
  26.    are:
  27.  
  28.    o   PM Development Tools
  29.    o   Toolkit Information
  30.    o   Sample Programs
  31.  
  32.    You may install the Toolkit for OS/2 2.0 on a
  33.    1.3 system.  The installation program will
  34.    transfer your files and update the environment
  35.    variables; however, no programs will be
  36.    registered on the desktop.
  37.  
  38.    The toolkit installation program has the
  39.    following problems:
  40.  
  41.    o   If you install this version of the Toolkit
  42.        on top of a previous version of the OS/2
  43.        2.0 Toolkit, duplicate program objects may
  44.        appear in the Toolkit folder.  To avoid this,
  45.        remove the toolkit folder and all of its
  46.        contents from the desktop.  NOTE: You may
  47.        not be able to remove the Car Sample or
  48.        the Class Lister objects.  If not, just
  49.        remove all other toolkit objects.
  50.  
  51.    o   The jigsaw sammple and the clock sample do
  52.        may not appear in the Samples folder, but
  53.        the source code will be installed.
  54.  
  55.  
  56. KWIKINF UTILITY
  57. _______________
  58.  
  59.    KwikINF provides a convenient method of
  60.    accessing information in OS/2 2.0 online
  61.    documents.  Once KwikINF starts, pressing a
  62.    hot-key sequence causes the program to pop up
  63.    and search for a text string of your choice.
  64.  
  65.    You can specify three KwikINF options from the
  66.    command line.  An example of the command line
  67.    syntax follows:
  68.  
  69.             KwikINF [/C] [/T] [/?]
  70.  
  71.    where:
  72.  
  73.  
  74. KWIKINF
  75.  
  76.    Entering KwikINF at the command prompt with no
  77.    options starts KwikINF.  After entering this
  78.    command, the default hot-key sequence (ALT + Q)
  79.    is enabled.
  80.  
  81.    /T        Entering the /T option will terminate
  82.              KwikINF and disable the hot-key
  83.              sequence.  KwikINF will be terminated
  84.              for all active sessions.
  85.    /C        Entering the /C option will display
  86.              the "Configure KwikINF" window.  Use
  87.              the "Configure KwikINF" window to
  88.              customize KwikINF values.
  89.    /?        entering the /? will display the
  90.              following information.
  91.  
  92.                       Usage: KwikINF [Option]
  93.                        Option    Description
  94.                          /C      Configure KwikINF
  95.                          /T      Terminate KwikINF
  96.                          /?      This short help list
  97.  
  98.  
  99.    Pressing the hot-key sequence brings to the
  100.    foreground KwikINF's "Search" window.  KwikINF
  101.    will work in any of the OS/2 sessions types:
  102.    full screen, AVIO window, and PM window.  If
  103.    your application is running in a full-screen
  104.    session, an AVIO window, or an active PM window
  105.    is a multi-line entry (MLE) field, KwikINF will
  106.    retrieve the word the cursor is on and
  107.    automatically place it in the entry field of
  108.    the "Search" window.  In PM windows, you can
  109.    use the hot-key sequence to display the search
  110.    window; however, you must enter the search
  111.    string manually.  KwikINF does not pre-fill the
  112.    search string field for PM windows.  KwikINF
  113.    cannot determine the word under the cursor in
  114.    these types of sessions because they are
  115.    graphics sessions and the characters are stored
  116.    as bit maps rather than as characters.
  117.  
  118.    To find information on a string, do the
  119.    following:
  120.  
  121.    o   If you are in a full-screen session, an
  122.        AVIO window, or MLE window, position the
  123.        cursor on the string you want to search
  124.        for, then press the hot-key sequence.
  125.        KwikINF retrieves the word at the cursor
  126.        and places it in the entry field of the
  127.        "Search" window.
  128.    o   If you are in a PM window or an AVIO
  129.        session, press the hot-key sequence, then
  130.        type the word to search for in the entry
  131.        field of the "Search" window.
  132.  
  133.    KwikINF then takes you to the entry for the
  134.    search string in the online document.
  135.  
  136.    NOTE: You should not add KwikINF to your
  137.    STARTUP.CMD if it is followed by an EXIT
  138.    statement.  Instead, create a KwikINF program
  139.    object.
  140.  
  141.  
  142. LINK386 UTILITY
  143. _______________
  144.  
  145.    It is recommended that the ALIGN, BASE, and
  146.    EXEPACK options be used when linking all
  147.    executables.  This will compress them in size
  148.    and improve their performance.
  149.  
  150.    Use /ALIGN:4 for 32-bit applications, /ALIGN:16
  151.    for 16-bit applications.  For .EXE files,
  152.    /BASE:0x10000 option must be used.  Any other
  153.    value produces a warning.  For .DLL files, use
  154.    /BASE:0x12000000 (or a lesser value).
  155.  
  156.  
  157. ONLINE IPF REFERENCE
  158. ____________________
  159.  
  160.    There is a dynamic link library (IPF.DLL)
  161.    associated with the compiled example of
  162.    "Application-Controlled Window Example."
  163.    However, IPF.DLL is installed with the Sample
  164.    Programs component of the Toolkit.  Therefore,
  165.    unless the Sample Programs component is
  166.    installed, you will be unable to view the
  167.    animation provided by the IPF.DLL in the
  168.    Application-Controlled Window Example in the
  169.    online IPF Reference.
  170.  
  171.  
  172. OS/2 2.0 ENHANCED EDITOR
  173. ________________________
  174.  
  175.    If you attempt to access additional information
  176.    for a text string by pressing Ctrl+H, the
  177.    following message might appear:
  178.  
  179.             epmkwhlp.ndx file not found
  180.  
  181.    To avoid this message, add the following to the
  182.    DPATH statement in CONFIG.SYS:
  183.  
  184.             x:\toolkt20\book;
  185.  
  186.        where "x" is the drive location for the Toolkit.
  187.  
  188.  
  189. SAMPLE PROGRAMS
  190. _______________
  191.  
  192.  
  193.  
  194. WORMS SAMPLE PROGRAM
  195.  
  196.    The WORMS sample will not compile with the
  197.    version of C Set/2 on this release. You can
  198.    compile WORMS with C Set/2 Version 1.0, or use
  199.    the WORMS.EXE file supplied with this release.
  200.    The WORMS sample might cause video corruption
  201.    if executed.  If you encounter problems
  202.    executing WORMS, press Ctrl+Esc and close from
  203.    the Window List.
  204.  
  205.    The following sample programs are new or
  206.    enhanced for this Toolkit update.
  207.  
  208.  
  209. PALETTE MANAGER SAMPLE PROGRAM
  210.  
  211.    PALETTE MANAGER is new and demonstrates 32-bit
  212.    graphics functions including:
  213.  
  214.    o   Creating a window using a custom palette
  215.        and animation.
  216.    o   Using menus with switches, and modifying
  217.        the menu text.
  218.    o   Using multiple threads and semaphores in
  219.        the PM environment.
  220.    o   Displaying graphics on the screen using
  221.        outline fonts and clip paths.
  222.    o   On-line help.
  223.  
  224.    Requirements are a XGA adapter card fully
  225.    populated with 1 megabyte of RAM and the 32-bit
  226.    Graphics Engine.
  227.  
  228.    The 32-bit Graphics Engine is available in
  229.    these versions of OS/2:
  230.  
  231.    o   OS/2 2.00.1
  232.    o   OS/2 2.00.1 Backup Diskette Package for
  233.        Preinstalled Systems
  234.    o   OS/2 2.0 Service Pak.
  235.  
  236.    When started, PALETTE displays a standard
  237.    window with a large IBM logo in the foreground.
  238.    The user has the ability to change the IBM logo
  239.    to the OS/2 logo.  If the user resizes the
  240.    window, the logo is scaled and redrawn to fit
  241.    the new window size.  The user can also control
  242.    the animation speed from the PALETTE menu.
  243.  
  244.    The animation is performed by creating a clip
  245.    path which represents the outline of the logo
  246.    characters (which are displayed using an
  247.    outline font); setting the clip path to the
  248.    presentation space; and then drawing a series
  249.    of lines to the presentation space.  Each line
  250.    is drawn with an incrementing color index.
  251.    Palette animation is performed using the 32-bit
  252.    GpiAnimatePalette function call.
  253.  
  254.    In order for PALETTE to remain responsive to
  255.    system and user messages, no animation is
  256.    performed on the main window procedure thread.
  257.    A second thread is created from which all
  258.    animation is performed.
  259.  
  260.  
  261. STYLE SAMPLE PROGRAM
  262.  
  263.    STYLE has new function that demonstrates the
  264.    detection of a font that does not conform to
  265.    the International Standards Organization (ISO
  266.    9241).  When the user selects a non-compliant
  267.    font in the standard font dialog, a message box
  268.    is displayed to inform the user.
  269.  
  270.    The fsSelection field in the FONTMETRICS
  271.    structure can be tested with the following bit
  272.    to determine if the current font has been
  273.    tested for ISO conformance:
  274.  
  275.        FM_SEL_ISO9241_TESTED
  276.  
  277.    The panose.fbFailedISO field in the FONTMETRICS
  278.    structure can be tested with the following bits
  279.    to determine if the current font fails to
  280.    conform to ISO 9241 standards on specific
  281.    displays that are known to comply:
  282.  
  283.        FM_ISO_9518_640
  284.        FM_ISO_9515_640
  285.        FM_ISO_9515_1024
  286.        FM_ISO_9517_640
  287.        FM_ISO_9517_1024
  288.  
  289.    These defines and additional information can be
  290.    found in OS2DEF.H which is shipped with this
  291.    product.
  292.  
  293.  
  294. WPCAR SAMPLE PROGRAM
  295.  
  296.    WPCAR is the sample program that demonstrates
  297.    how to create a Workplace Shell object.   New
  298.    to WPCAR is its ability to set an exception
  299.    handler for memory access violations.  To
  300.    demonstrate this, a new menu item was added to
  301.    WPCAR that calls a function that causes an
  302.    exception.  A message indicates the program's
  303.    exception handler is returning control to the
  304.    cleanup code.
  305.  
  306.    Additional README files concerning sample
  307.    programs are available in these
  308.    directories:\TOOLKT20\C\SAMPLES\IMAGE and
  309.    \TOOLKT20\C\SAMPLES\TEMPLATE.
  310.  
  311.  
  312. WORKFRAME/2
  313. ___________
  314.  
  315.    The IBM WorkFrame/2 allows you to integrate
  316.    various tools into your application development
  317.    environment.  Tools, such as the Dialog Editor,
  318.    Font Editor, Icon Editor, Information
  319.    Presentation Facility Compiler, and Resource
  320.    Compiler, can then be selected from the "Tools"
  321.    pull-down menu of WorkFrame/2.
  322.  
  323.    This toolkit integration is optional.  To help
  324.    you add the tools into the WorkFrame
  325.    environment easily, a special file
  326.    (TOOLKT20.INI) is provided in the
  327.    \TOOLKT20\OS2BIN directory.
  328.  
  329.    To integrate the toolkit tools into the
  330.    WorkFrame/2, do the following:
  331.  
  332.    1.  After completing Toolkit installation,
  333.        install the IBM WorkFrame/2.  Make sure the
  334.        CONFIG.SYS file is updated for the
  335.        WorkFrame/2, either by selecting the
  336.        "Update CONFIG.SYS" checkbox or by updating
  337.        it manually.
  338.    2.  Reboot your computer, as specified in the
  339.        WorkFrame/2 installation procedure.
  340.    3.  At the OS/2 command line, type:
  341.  
  342.                    addtool \toolkt20\os2bin\toolkt20.ini
  343.  
  344.  
  345.    When you start WorkFrame/2 and select "Tools"
  346.    from the menu bar, entries for the five Toolkit
  347.    tools appear in a pull-down menu.
  348.  
  349.  
  350. BIDIRECTIONAL NATIONAL LANGUAGE SUPPORT
  351. _______________________________________
  352.  
  353.     Information on how to use the BIDI programming
  354.    interface can be found in
  355.    \TOOLKT20\C\SAMPLES\BIDI\READ.ME.
  356.  
  357.  
  358. DEVICE DRIVER PROGRAMMING INTERFACES
  359. ____________________________________
  360.  
  361.    In order to use text capability enhancements,
  362.    the following statement must be added to
  363.    certain header files:
  364.  
  365.    o   Add the following line to the PMDEV.H
  366.        header file:
  367.  
  368.                         #define CAPS_ENHANCED_TEXT       16384
  369.  
  370.  
  371.    The header files contained in the
  372.    \TOOLKT20\C\OS2H\DASD directory define the data
  373.    structures used in the layered DASD/SCSI device
  374.    driver interface.  Documentation is available
  375.    from IBM for constructing device drivers that
  376.    work with this interface.  This document is
  377.    primarily targeted for development
  378.    organizations that:
  379.  
  380.    o   Develop device drivers for SCSI adapters
  381.    o   Develop device drivers for non-standard
  382.        DASD hardware interfaces
  383.    o   Develop OS/2 kernel extensions that add
  384.        value to existing DASD or SCSI subsystems
  385.        DASD data encryption packages, Redundant
  386.        Array of Inexpensive Disks (RAID) packages,
  387.        and other data striping packages fall into
  388.        this category.
  389.  
  390.    Until the SCSI Device Driver Reference is
  391.    published, you can acquire this document by
  392.    contacting: IBM BTIG (Zip 1424), P.O. Box 1328,
  393.    Boca Raton, FL 33432.
  394.  
  395.  
  396. DOS PROGRAMMING INTERFACE
  397. _________________________
  398.  
  399.    The DosSetDOSProperty() and
  400.    DosQueryDOSProperty() functions in BSEDOS.H are
  401.    not supported.  Do not use these application
  402.    programming interfaces.
  403.  
  404.  
  405. GRAPHICS PROGRAMMING INTERFACE
  406. ______________________________
  407.  
  408.    OS/2 2.0 introduces several new graphics
  409.    features not available on previous versions.
  410.    In particular, OS/2 2.0 supports new bit map
  411.    formats, polygons, and flood-fill operations.
  412.    Metafiles and print spool files generated by
  413.    new 32-bit applications that use these
  414.    functions will generate incorrect or incomplete
  415.    output when processed by earlier OS/2 versions,
  416.    for example 1.3.
  417.  
  418.    The GpiDestroyPS will destroy a presentation
  419.    space even it if is currently associated to a
  420.    device context.  This function will attempt to
  421.    disassociate the presentation space from the
  422.    device context and, if successful, continue to
  423.    destroy the presentation space as normal.
  424.  
  425.    The current value set, on VN_SELECT and
  426.    VN_ENTER notifications (both part of
  427.    WM_CONTROL), returns the value set window
  428.    handle instead of the selected row and column
  429.    as documented.  (The value set does return row
  430.    and column information on VN_HELP, as
  431.    documented.)
  432.  
  433.    Developers writing applications that require a
  434.    particular font need to be aware that the OS/2
  435.    2.0 Installation program will copy only those
  436.    fonts required by the displays attached to the
  437.    computer.  In previous OS/2 releases, all fonts
  438.    were copied.
  439.  
  440.    The GpiFloodFill function may produce incorrect
  441.    results if another window is visible on top of
  442.    any of the area being filled.  You will get
  443.    correct results if your application is in the
  444.    foreground, and no windows or dialogs owned by
  445.    your application are visible during flood-fill
  446.    operations.
  447.  
  448.  
  449. WORKPLACE PROGRAMMING INTERFACE
  450. _______________________________
  451.  
  452.  
  453.  
  454. WORKPLACE CLASSES, INSTANCE METHODS, AND CLASS METHODS
  455.  
  456.    o   wpFindViewItem - Do not use method, it may
  457.        be removed from the header files in the
  458.        future.  Use wpFindUseItem to find VIEWITEM
  459.        structures to achieve the same
  460.        functionality.
  461.  
  462.  
  463. WIN PROGRAMMING INTERFACE
  464. _________________________
  465.  
  466.    The kernel debug version of PMWIN.DLL contained
  467.    in the Toolkit executes an INT 3 instruction,
  468.    causing a break in the debugger.  The INT 3 is
  469.    executed only in 32-bit API parameter
  470.    validation on the debug version of PMWIN.DLL;
  471.    all other errors will not execute an INT 3.
  472.  
  473.    For the WinCreateWindow function, the first
  474.    USHORT the control data parameter points to is
  475.    assumed to be the length of the data block.
  476.  
  477.  
  478. DEBUGGING PROGRAMS
  479. __________________
  480.  
  481.    In this release, the DosDebug API will not
  482.    permit the debugging of code that is in use by
  483.    more than one process.
  484.  
  485.  
  486. DDE BETWEEN PM AND WINDOWS PROGRAMS
  487. ___________________________________
  488.  
  489.    Making modifications to Windows programs in
  490.    order to use dynamic data exchange (DDE)
  491.    communications with PM programs helps
  492.    facilitate a gradual migration of applications
  493.    to PM.  Not all data formats are automatically
  494.    converted when doing DDE between Windows
  495.    programs and PM programs  (DDE set PUBLIC).
  496.    The following formats are converted
  497.    automatically by OS/2 2.0:
  498.  
  499.             PM Application               Windows Application
  500.             Data Format                  Interpretation
  501.             --------------------         --------------------
  502.             PM BITMAP                    Windows DIB
  503.             TEXT                         TEXT (codepage 819)
  504.             PM private                   Windows private
  505.  
  506.  
  507.             Windows Application          PM Application
  508.             Data Format                  Interpretation
  509.             --------------------         --------------------
  510.             Windows DIB                  PM BITMAP
  511.             TEXT (codepage 819)          TEXT
  512.             Windows private              PM Private
  513.  
  514.    Notes:
  515.  
  516.    1.  Code page translation (Windows 819 to/from
  517.        current PM codepage) is done for topic name
  518.        in all cases.
  519.  
  520.    2.  When data conversion is not automatically
  521.        done, programs can still communicate via
  522.        DDE if the two programs are able to do the
  523.        data conversion and pass private data
  524.        formats.
  525.  
  526.  
  527. KERNEL DEBUG SUPPORT
  528. ____________________
  529.  
  530.    In order for the debug version of OS2KRNL to
  531.    boot on systems containing future Intel
  532.    processors, two instructions must be modified.
  533.    Future Intel processors might not recognize the
  534.    TR6 and TR7 registers, and both registers are
  535.    referenced once in the debug version of OS2KRNL
  536.    with the following instructions:
  537.  
  538.                 MOV EAX,TR6 and MOV EAX,TR7.
  539.  
  540.    These instructions must be replaced using a
  541.    binary editor.
  542.  
  543.    1.  Search for the opcode 0F24F0h (MOV EAX,TR6)
  544.        and replace with 909090h (3 NOPs).
  545.  
  546.    2.  Search for the opcode 0F24F8h (MOV EAX,TR7)
  547.        and replace with 909090h (3 NOPs).
  548.  
  549.    The debug commands "R TR6" and "R TR7" might
  550.    produce unpredictable results.
  551.  
  552.    If you require the use of the kernel debugger
  553.    on a later version of OS/2, please check the
  554.    OS2DEV forum on CompuServe for details on how
  555.    to obtain the necessary code.
  556.  
  557.    To join CompuServe, call (800) 524-3388 and ask
  558.    for representative 239 for a free introductory
  559.    membership, complete with user ID, plus $15.
  560.    worth of free connect time.
  561.  
  562.  
  563. PM REFERENCE UPDATES
  564. ____________________
  565.  
  566.  
  567.  
  568. RESOURCE COMPILER
  569.  
  570.    See the Tools Reference for updated resource
  571.    compiler information.
  572.  
  573.  
  574. DATA TYPES
  575.  
  576.    o   The following structures are found in the
  577.        Bit-Map File Format section, they should be
  578.        in the datatype section also.
  579.  
  580.        -   BITMAPARRAYFILEHEADER
  581.        -   BITMAPARRAYFILEHEADER2
  582.        -   BITMAPFILEHEADER
  583.        -   BITMAPFILEHEADER2.
  584.  
  585.    o   The following structures are found in the
  586.        Font-File Format section, they should be in
  587.        the datatype section.
  588.  
  589.        -   ADDITIONALMETRICS
  590.        -   FOCAFONT
  591.        -   FOCAMETRICS
  592.        -   FONTDEFINITIONHDR
  593.        -   FONTFILEMETRICS
  594.        -   FONTSIGNATURE
  595.  
  596.  
  597.  
  598. NEW FUNCTIONS FOR THE OS/2 2.0 CONTAINER CONTROL
  599. ________________________________________________
  600.  
  601.    In response to requests from our users, the
  602.    following new functions have been added to the
  603.    OS/2 2.0 container control.
  604.  
  605.  
  606.  
  607.  
  608. DETERMINING THE WIDTH OF A COLUMN IN THE DETAILS VIEW
  609.  
  610.    There are times when you may want to determine
  611.    the width of a column in the details view, such
  612.    as to allow the user to tab the split bar
  613.    between columns.  New function has been added
  614.    to the container control to allow you to
  615.    determine the width of the data in a column.
  616.    You can then compute the width of the entire
  617.    column by adding the width of the data to the
  618.    left and right margins of the column.
  619.  
  620.  
  621.    To determine the width of a column:
  622.  
  623.    1.  Define an attribute with a value of 0X0200
  624.        and give it a name such as CMA_DATAWIDTH.
  625.    2.  Issue the CM_QUERYDETAILFIELDINFO message
  626.        with the following values:
  627.        a.  Provide a pointer to the FIELDINFO
  628.            structure in param1.
  629.        b.  Specify your attribute (see Step 1) in
  630.            param2.
  631.        c.  Request a return value with a type of
  632.            LONG, not PFIELDINFO, to retrieve the
  633.            width of the column in the FIELDINFO
  634.            structure to which you are pointing.
  635.            The value returned is the width of the
  636.            data (text, icon, or bit map) in this
  637.            column.
  638.    3.  Use the GpiQueryFontMetrics function to
  639.        query the average character width of the
  640.        font used by the container.  This value
  641.        will be used to calculate the total column
  642.        width.
  643.    4.  Multiply 3 times the average character
  644.        width and add this to the data width
  645.        returned from step 2 for all columns except
  646.        the following:
  647.        a.  The first and last columns in each
  648.            split window.  In these cases, multiply
  649.            2.5 times the average character width
  650.            and add the column data width returned
  651.            from step 2.
  652.        b.  The only other special case is where
  653.            there is only 1 column in either the
  654.            left or right split windows.  In this
  655.            case you would multiply 2 times the
  656.            average character width and add the
  657.            column data width returned from step 2.
  658.    5.  The value returned is the total width of
  659.        the column.
  660.  
  661.  
  662. PROVIDING SOURCE EMPHASIS FOR CONTAINER ITEMS
  663.  
  664.    Source emphasis is the type of emphasis that
  665.    the Workplace Shell provides when a context
  666.    menu is displayed.  It appears as a dotted box
  667.    with rounded corners that surrounds the item
  668.    for which the context menu is requested and an
  669.    item that is being dragged.
  670.  
  671.    To provide source emphasis for container items:
  672.  
  673.    1.  Define an attribute with a value of
  674.        0X00004000L and give it a name such as
  675.        CRA_SOURCE.
  676.    2.  Issue the CM_SETRECORDEMPHASIS message with
  677.        the following values:
  678.        a.  Provide a pointer to the RECORDCORE or
  679.            MINIRECORDCORE structure in param1.
  680.  
  681.            You can provide source emphasis for the
  682.            entire container by setting param1 to
  683.            NULL.
  684.        b.  Set the usChangeEmphasis parameter to
  685.            TRUE in param2.
  686.        c.  Specify your attribute (see Step 1) in
  687.            the fEmphasisAttribute parameter in
  688.            param2.
  689.  
  690.    To remove source emphasis, follow the same
  691.    procedure outlined above, but set the
  692.    usChangeEmphasis parameter in param2 to FALSE
  693.    instead of TRUE.
  694.  
  695.  
  696. SEARCHING FOR EXACT TEXT STRING MATCHES
  697.  
  698.    There may be times when you need to search the
  699.    container for a text string that is an exact
  700.    match of your search string argument.
  701.  
  702.    To find an exact match:
  703.  
  704.    1.  Define an attribute with a value of
  705.        0X10000000L and give it a name such as
  706.        CV_EXACTMATCH.
  707.    2.  In the SEARCHSTRING data structure, specify
  708.        values for the fields as you normally
  709.        would, with the following exception:
  710.        a.  Specify your attribute (see Step 1),
  711.            along with an attribute for the type of
  712.            view being displayed in the container,
  713.            in the usView field.  For example:
  714.  
  715.                        CV_EXACTMATCH | CV_ICON
  716.  
  717.            NOTE: In the OS/2 2.0 Programming
  718.            Reference, Vol. III, the field for
  719.            specifying the exact match attribute
  720.            and the type of view should be usView,
  721.            not ulView.  The type associated with
  722.            the field, however, is ULONG.  You must
  723.            specify usView to match the information
  724.            in the header file.
  725.  
  726.