Description:

    The BaseContainer part is a subclassable sample part which demonstrates
    several OpenDoc protocols such as registration, embedding, internalization,
    externalization, cloning, multiple selection, drag/drop, and clipboard
    operations.  It is available on the Windows 95/NT, OS/2, and AIX platforms.

    The BaseContainer part does not have intrinsic contents.  Its contents
    include only embedded frames.  Subclasses of BaseContainer can define/add
    intrinsic contents and let BaseContainer handle them optionally using its
    generic 'Content Object' class.

Files:

    iodbasec.txt  --  This file
    iodbasec.idl  --  SOM IDL definitions for SOM class BaseContainer
                      and metaclass M_BaseContainer
    iodbasec.cpp  --  Class member functions
    bcevent.cpp   --  Event handler functions
    bcxfer.cpp    --  Data transfer functions
    bcmain.h      --  Header file
    iodbcobj.idl  --  SOM IDL definition for SOM class ContentObject and its
                      subclass ContentFrame.
    iodbcobj.cpp  --  Member functions for ContentObject and ContentFrame
    iodbcutl.idl  --  SOM IDL definition for linked list class ALinkedList.
    iodbcutl.cpp  --  Class member functions for ALinkedList
    iodbcitr.idl  --  SOM IDL definition for embedded frames iterator
                      class BCIterator.
    iodbcitr.cpp  --  Class member functions for BCIterator
    iodbcset.idl  --  SOM IDL definition for ODSettingsExtension subclass
                         BCPageSettingsExt.
    iodbcset.cpp  --  Class member functions for BCPartSettingsExt
    iodbcpag.idl  --  SOM IDL definition for ODPropertyPage subclass 
                         BaseContainerPage (AIX only).
    iodbcpag.cpp  --  Class member functions for BaseContainerPage (AIX only).
    iodbcvwt.cpp  --  BaseContainer private methods for ViewType support.
    iodbcres.h    --  Header file containing resource ids (OS/2 and NT only)
    os2plat.cpp   --  Helper functions (OS/2 only)
    iodbasec.msg  --  English message file
    iodbasec.def  --  Library definitions (platform specific)
    iodbasec.rc   --  Resource file (NT and OS/2 only)
    iodbasec.ico  --  Document Icon File (platform specific)
    iodbcsta.ico  --  Stationery Icon File (NT only)
    iodbcedt.ico  --  Editor Icon File (NT only)
    makefile      --  NMAKE file (To build part run: nmake)


How to Build:

    To build this part you will need the OpenDoc Release 1.1 toolkit.

    From the basecntr source directory run

    nmake

    To register the part with OpenDoc, run

    nmake ForceRegistry

Usage:

    To run the BaseContainer, issue the command:
       docshell
    and select "IBM BaseContainer Kind" from the dialog box.

    Other parts can now be embedded in the BaseContainer.
    Following editing operations can be performed on BaseContainer:

    Embed -- Click on "Embed" pull-down menu of base container. A list
             of all part handlers that are installed on the system is
             displayed.  This list is created dynamically when base
             container is loaded.  Select a part handler and click in
             base container's client area to embed a part.  BaseContainer
             allows multiple levels of embedding.

    Select -- An embedded part can be selected by 4 ways
             1) Activate the embedded part and click on its activation border
             2) If the embedded part is not active then Shift-Click or
                Ctrl-Click on it
             3) Lasso selection: Hold and drag left mouse button down in
                BaseContainer's client area to get a selection rectangle.
                All the embeds that are in the selection rectangle when the
                mouse button is released are selected
             4) Use 'Select All' menu option from 'Edit' menu.

             BaseContainer allows multiple selection.  Upon Ctrl-Click or
             Shift-Click the selection state of the embed is toggled.
             When the part is deactivated, all the selected parts are deselected.

    Move --  Selection can be moved using the selection border.  One cannot
             move the selection outside the container's boundaries. A single
             selected part can also be moved using 'Move' menu item in 'Edit'
             menu.

    Resize -- A selected part can be resized by stretching its corner or edge
             selection handles.  One can also use 'Resize' menu option from
             'Embed' menu.

    Delete -- Use 'Delete Selection' menu option from 'Edit' menu

    Copy/Paste -- To copy selection, use 'Copy' menu option form 'Edit' menu.
              To paste clipboard contents, select 'Paste' menu and then click
              in client area of the active BaseContainer.

    Drag/Drop -- Press drag-mouse-button in the client area of selection and
              drag it to the desired location either in same docshell or
              another one.  Modifier keys can be used to force a drag-copy or
              a drag-move.

Design Notes:
   For information on how to subclass from the BaseContainer and
   the ContentObject classes, see appendix D of the "IBM OpenDoc
   Programming Guide."

Known Restrictions:

    BaseContainer does not allow "Open As Window" functionality.
    BaseContainer supports icon views, however, the thumbnail view is
    not fully implemented yet. At this time it just displays a large icon
    on a thumbnail size frame.

