Description:

    The TicTacToe game is a OpenDoc part sample provided to anyone with
    an interest in OpenDoc for Windows 95/NT. It plays TicTacToe at a
    very elementary level.

Files:

    iodt3.txt    --  This file.
    iodt3.idl    --  SOM idl definitions for SOM class T3GamePart and
                     meta class M_T3GamePart.
    iodt3.h      --  Class definitions of T3GameModel, and
                     T3GameException
    iodt3.cpp    --  Class member functions + global objects
    iodt3.msg    --  English message file
    iodt3.def    --  Library definitions
    makefile     --  NMAKE file (To build part run: nmake)


How to Build:

    To build this part you will need the OpenDoc for Windows toolkit.

    From the iodt3 source directory run

    nmake -f makefile.win

    To register the part with OpenDoc, run

    nmake ForceRegistry

Usage:

    To run the T3GamePart, issue the command:

    docshell -k T3GamePart

    The docshell displays the tic-tac-toe grid with nine spaces. To finish
    setting up the game, select the Embed | T3GamePart menu option and click
    in the upperleft area in one of the nine spaces.  Repeat this embedding
    process until you have a tic-tac-toe part in each of the nine spaces.

    You can now begin to play all nine games by clicking on the embedded parts.
    You are the X's and the computer is the O's.

    To exit the application select menu option Document | Close.

    If you wish to see the OpenDoc calls being made to the T3GamePart part, run
    the MSGDISP.EXE program.  While running the T3GamePart the MSGDISP window
    will display messages being printed from the iodt3.cpp code, including
    when the T3GamePart methods are being called.  See the Log() function
    comments in iodt3.cpp for more details.

Design Notes:

    The TicTacToe game application is written using the OpenDoc for Windows
    toolkit.

    The TicTacToe Game is composed of two primary classes, the
    T3GameModel class, and the T3GamePart SOM class. The
    T3GameModel handles the internals of the TicTacToe game engine.

    The T3GamePart class handles the screen representation,
    and mouse interaction. Both classes together comprise an embeddable
    component.

Known Restrictions:

    The T3GamePart does not correctly perform the Document | Save followed
    by a Document | Open.  Technically, it is not performing the
    Externalize and Internalize from the Bento storage.

    The embedded T3GamePart parts are not notifying the container T3GamePart
    of the winners in the embedded parts.

    The T3GamePart does not provide printing support.
