home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / SAMPLES / SAMPLES.DOC < prev   
Text File  |  1995-08-24  |  33KB  |  774 lines

  1.   SAMPLE PROGRAMS
  2.   _______________
  3.  
  4.  
  5.   This file describes the sample programs available with the Developer's
  6.   Toolkit.  Most sample programs are written in C language and demonstrate the
  7.   use of the functions of the control program (base OS/2 operating system), the
  8.   Presentation Manager (PM) interface, the Multimedia (MM) interface, and the
  9.   Workplace Shell (WPS).  Each sample program serves as a template that can be
  10.   easily modified for your own purposes.  Most samples contain the overhead
  11.   routines necessary to create a Presentation Manager application, as well as
  12.   stubs for the basic menu items that all applications should have.  There are
  13.   many comments within the source code that clarify technical information.
  14.  
  15.   Names of the sample programs below correspond to their Toolkit subdirectory
  16.   names.
  17.  
  18.  
  19.   STARTING A SAMPLE PROGRAM
  20.   _________________________
  21.  
  22.   FROM THE DESKTOP
  23.  
  24.   When installed, all sample programs, with the exception of the bidirectional
  25.   samples, some of the Multimedia samples and some of the WPS samples, appear in
  26.   the sample programs folders in the Toolkit folder.  To start a sample program,
  27.   select the Toolkit folder, select the folder representing the type of samples
  28.   you wish to execute, then select the appropriate sample program.
  29.  
  30.   FROM AN OS/2 COMMAND PROMPT
  31.  
  32.   To start a non-WPS sample program from an OS/2 command prompt, type the name
  33.   of the executable file and press Enter.  If you have edited source code of a
  34.   sample program and want to recompile, link, and run the files, use the NMAKE
  35.   tool.  Your output is the executable file.  For information about the NMAKE
  36.   utility, see the OS/2 Tools Reference.
  37.  
  38.  
  39.  
  40.   C REXX Sample Programs
  41.   ______________________
  42.  
  43.   CALLREXX - The REXX Interpreter Invocation Sample
  44.   =================================================
  45.   This sample demonstrates how a C-language application calls a REXX
  46.   application.  To run the REXX application BACKWARD.FNC, CALLREXX.C issues
  47.   RexxStart.  RexxStart calls the REXX interpreter and passes it a parameter
  48.   string.  BACKWARD.FNC returns a result string to the C-language application.
  49.  
  50.  
  51.   DEVINFO - The REXX Variable Pool Interface Sample
  52.   =================================================
  53.   This program issues DosDevConfig and returns the data in a collection of
  54.   compound variables when all available items are requested, or a single
  55.   variable when only one item is requested.  This is a REXX subcommand handler
  56.   and Variable Pool example.  This sample can be run in an OS/2 full-screen
  57.   session, an OS/2 text-window session, or in PMREXX.
  58.  
  59.   PMREXX - The Presentation Manager REXX Interface Sample
  60.   =======================================================
  61.   This sample provides a Presentation Manager window in which the user can
  62.   display the output from a REXX procedure or from any programs called by the
  63.   REXX procedure.  The window has an entry field into which the user can type.
  64.  
  65.   REXXCALC - The Presentation Manager REXX Calculator Sample
  66.   ==========================================================
  67.   This application illustrates the steps required to develop enhanced
  68.   applications.
  69.  
  70.   REXXUTIL - The REXX Utility Functions Sample
  71.   ============================================
  72.   REXXUTIL demonstrates a set of external functions packaged in a dynamic link
  73.   library, including:
  74.  
  75.   - Use of OS/2 system functions in REXX external functions.
  76.   - Techniques for passing large amounts of data to a REXX program using REXX
  77.     compound variables as arrays.
  78.  
  79.   REXXUTIL can be run in an OS/2 full-screen session, an OS/2 window
  80.   session, or in PMREXX.
  81.  
  82.   RXMACDLL - The External Functions in REXX Macrospace Sample
  83.   ===========================================================
  84.   This sample demonstrates the macrospace interface with two C-language
  85.   programs: MACRO.C and RXNLSINF.C, which are compiled into two separate dynamic
  86.   link libraries.
  87.  
  88.   MACRO.C contains REXX external functions, which perform REXX macrospace
  89.   operations.  RXNLSINF.C contains a REXX external function that provides
  90.   information related to National Language Support (for example, as a currency
  91.   symbol and separator).  RXMACDLL.CMD uses MACRO.DLL to load NLSMONEY.CMD into
  92.   the macrospace and calls NLSMONEY.CMD several times to format currency
  93.   amounts.  NLSMONEY.CMD formats the amounts according to the specifications
  94.   provided by RXNLSINF.DLL.
  95.  
  96.   RXMACDLL can be run in an OS/2 full-screen session, an OS/2 window session, or
  97.   in PMREXX.
  98.  
  99.  
  100.  
  101.   Bidirectional (BIDI) Language Support Sample Programs
  102.   _____________________________________________________
  103.  
  104.   These samples demonstrate the use of the Bidirectional Language support
  105.   available in the Arabic and Hebrew versions of OS/2.  There are two sets of
  106.   samples provided: one set for the Arabic language and the other set for the
  107.   Hebrew language.  For both languages, there are two samples.
  108.  
  109.   STYLE - PM Controls Sample
  110.   ==========================
  111.   This is a sample program that demonstrates the Bidirectional Language support
  112.   features of PM controls and other system components.
  113.  
  114.   TELDIR - Telephone Directory Sample
  115.   ===================================
  116.   This program is a simple bilingual telephone directory application which
  117.   demonstrate how language and orientation selections can be set dynamically by
  118.   a "BIDI-aware" application.
  119.  
  120.   Note that the Arabic versions of these samples require the Arabic version of
  121.   OS/2 in order to run, and the Hebrew versions of the samples require the
  122.   Hebrew version of OS/2 to run.
  123.  
  124.  
  125.  
  126.   OS/2 Sample Programs
  127.   ____________________
  128.  
  129.   CONSOLIO - The Console I/O Sample
  130.   =================================
  131.  
  132.   CONSOLIO demonstrates how to call video (Vio), keyboard (Kbd), and mouse (Mou)
  133.   16-bit function from a 32-bit code segment.  This sample program displays
  134.   earth worms aimlessly moving about the screen.  Each worm is a separate thread
  135.   with a unique color combination and movement pattern.  When one worm
  136.   encounters another worm, the color attribute of the worm is set to red.  The
  137.   user can add or delete worms using the keyboard or mouse.
  138.  
  139.  
  140.   DLLAPI - The Dynamic Link Library Sample
  141.   ========================================
  142.  
  143.   DLLAPI demonstrates how to write and use a dynamic link library (DLL).  The
  144.   sample has a DLL file and an executable (EXE) file.  The DLL provides the
  145.   32-bit API function that is called by the EXE file.
  146.  
  147.   The DLL uses protected memory on its shared data, and exception management to
  148.   validate the pointer parameters for a 32-bit API function.  The EXE file
  149.   demonstrates how to handle a divide-by-zero exception, and calls the function
  150.   with invalid pointer parameters, followed by a call with valid pointer
  151.   parameters.
  152.  
  153.  
  154.   EAEDIT - The Extended Attributes Editor
  155.   =======================================
  156.  
  157.   The Extended Attributes Editor demonstrates a multithreaded application that
  158.   retrieves, modifies, or sorts files by their extended attribute value.
  159.   Included in this sample program are Presentation Manager procedures for dialog
  160.   boxes and a standard client window.  The sample lets the user select an
  161.   extended attribute file name from a list, or enter a new name in an entry
  162.   field.  The user can select the extended attribute type from a table.
  163.  
  164.  
  165.   HANOI - The Multithreaded Sample (Towers of Hanoi)
  166.   ==================================================
  167.  
  168.   HANOI demonstrates a multithreaded application with the familiar "towers of
  169.   Hanoi" puzzle.  When the sample program is started, the user sees three poles
  170.   (A, B, and C).  Initially, pole A has on it a stack of disks starting with the
  171.   largest disks on the bottom and succeeding smaller disks on the top.  The main
  172.   thread handles the Presentation Manager interface and lets the user start or
  173.   stop the Hanoi routine.  It also lets the user reset the number of working
  174.   disks.  The second thread is created when START is selected from the Options
  175.   menu.  This thread starts the recursive execution of the Hanoi algorithm, runs
  176.   in the background, and moves and paints the disks.  All disks end up on pole
  177.   C.
  178.  
  179.  
  180.   NPIPE - The Named Pipes Sample
  181.   ==============================
  182.  
  183.   NPIPE demonstrates two-way communication between two unrelated processes using
  184.   named pipe functions.  This sample program implements the game of tic-tac-toe
  185.   with two executable files, CLINPIPE.EXE (the client) and SVRNPIPE.EXE (the
  186.   server).  The server is the computer, and the client is the user.  For
  187.   example, the client will:
  188.  
  189.   -   Connect to the server and acknowledge successful connection (START_MSG).
  190.   -   Notify the server through a pipe when it wishes to begin play (YOU_FIRST
  191.       or CLIENT_MOVE).
  192.   -   Notify the server when it wishes to quit (CLIENT_QUIT).
  193.   -   Send the server a valid move when requested by the server (CLIENT_MOVE).
  194.  
  195.   In turn, the server will:
  196.  
  197.   -   Upon the initial request of a client to play, connect a pipe to the
  198.       client through which play will be executed (START_MSG).
  199.   -   Be able to play with many clients simultaneously.
  200.   -   Notify the client of the server's move, and request a valid move from the
  201.       client (SERVER_MOVE).
  202.   -   Notify the client of game-end (WIN_SERVER, WIN_CLIENT, WIN_DRAW).
  203.  
  204.  
  205.   QUEUES - The Interprocess Communication Queue Sample
  206.   ====================================================
  207.  
  208.   QUEUES demonstrates interprocess communications (IPC) using the 32-bit queue
  209.   component.  It consists of two executable programs, SVRQUEUE.EXE and
  210.   CLIQUEUE.EXE.
  211.  
  212.   SVRQUEUE creates an IPC queue; a named, shared-memory buffer for queue
  213.   elements; and a shared, named, mutex (mutual exclusive) semaphore.  After
  214.   initializing the queue, SVRQUEUE starts a thread to read from the queue,
  215.   prints the contents of the messages read from the queue, and terminates at the
  216.   user's request.
  217.  
  218.   CLIQUEUE opens the queue and accesses the shared-memory element buffer and
  219.   mutex semaphore, and starts a thread to write to the queue.  CLIQUEUE requests
  220.   a string of data from the user, allocates a shared-memory element from the
  221.   buffer, puts the string in the shared-memory element, then uses an event
  222.   semaphore to direct the thread to write the element to the queue.  CLIQUEUE
  223.   terminates at the user's request.
  224.  
  225.  
  226.   SEMAPH - The Semaphore Sample
  227.   =============================
  228.  
  229.   SEMAPH demonstrates the use of mutex and event semaphores.  In the sample,
  230.   several threads share access to the same resource.  A mutex semaphore is used
  231.   to guarantee that only one thread has access to the resource at a time.  An
  232.   event semaphore is used to signal the thread to give up the resource.  The
  233.   event semaphore can be posted by the user, or run in auto mode, in which case
  234.   the event semaphore will be posted at fixed time intervals.  A mutex semaphore
  235.   is used to check for a stop event or for a user signal to give up the
  236.   resource.
  237.  
  238.   Each thread can display as a different colored square; similarly, the resource
  239.   can display as a rectangle, the color of which is that of the first thread
  240.   that owns it.
  241.  
  242.  
  243.   SORT - The Multithreaded Sample (Sorting Algorithm)
  244.   ===================================================
  245.  
  246.   SORT demonstrates the use of multiple threads by performing multiple sorts at
  247.   the same time.  Each sorting algorithm runs from a separate thread.  The main
  248.   thread is used to handle the main window's messages, while the routine that
  249.   updates the display is run from another thread.
  250.  
  251.  
  252.   TIMESERV - The Timer Services Sample
  253.   ====================================
  254.  
  255.   TIMESERV demonstrates how to use and implement window timers and
  256.   system-resource timers.  This sample program displays both an analog and
  257.   digital clock.  To simulate elapsed seconds, the main Presentation Manager
  258.   thread repeatedly sets a one-second window timer that updates the current
  259.   time.  TIMESERV features an audible and visual alarm that the user can set.
  260.   When the time expires, the sample makes use of the DOS timer services and
  261.   notifies the user by sounding an alarm and displaying a message box.
  262.  
  263.  
  264.   VMM - The Virtual Memory Management Sample
  265.   ==========================================
  266.  
  267.   VMM demonstrates the use of virtual memory by using new memory-management
  268.   functions to allocate and set the attributes of memory.  Users can read or
  269.   write data into memory and reset the attributes using a dialog box.  The
  270.   memory manager protects or opens the virtual memory to read or write
  271.   operations according to the different attributes of each memory block.  To
  272.   free memory, the user enters the address of the memory.
  273.  
  274.  
  275.  
  276.   Presentation Manager Sample Programs
  277.   ____________________________________
  278.  
  279.   BMPSAMP - The Bitmap Manipulation Sample
  280.   ========================================
  281.  
  282.   BMPSAMP demonstrates the use of bitmaps in a graphics application.  BMPSAMP
  283.   provides a jigsaw puzzle based on the decomposition of an arbitrary bitmap
  284.   loaded from a file.  The user can jumble the pieces, then drag them with a
  285.   mouse.  The image can be made smaller, larger, scrolled horizontally, or
  286.   scrolled vertically.
  287.  
  288.  
  289.   CLIPBRD - The Clipboard Sample
  290.   ==============================
  291.  
  292.   CLIPBRD demonstrates how to provide a Presentation Manager interface to the
  293.   clipboard.  Initially, CLIPBRD displays a standard window with a bit map.  The
  294.   user can cut and paste data in this window, using the system clipboard as an
  295.   intermediate storage area.
  296.  
  297.  
  298.   CONTROLS - The Presentation Manager Controls Sample
  299.   ===================================================
  300.  
  301.   CONTROLS demonstrates a Presentation Manager application that conforms with
  302.   Common User Access* requirements and implements the following new controls:
  303.  
  304.   -   Container
  305.   -   Notebook
  306.   -   Slider
  307.   -   Spin button
  308.   -   Value set.
  309.  
  310.   This sample program also demonstrates secondary windows, such as dialog and
  311.   message boxes.  The program lets the user edit and save text files.  Help, in
  312.   IPF format, also is provided.
  313.  
  314.   The code in CONTROLS is structured so that the addition of a new function is
  315.   handled in an efficient manner.  For example, to add a new command to an
  316.   existing menu, you need only add the command to the resource file, then add
  317.   the appropriate message-processing routines to the STY_USER.C file.
  318.  
  319.  
  320.   DIALOG - The Introductory Dialog Box Sample
  321.   ===========================================
  322.  
  323.   DIALOG demonstrates how to associate a dialog box with a standard window.  The
  324.   dialog box is defined as a dialog template in a resource file.  This sample
  325.   program also demonstrates how to implement an entry field, pushbutton
  326.   controls, and message boxes.  Message boxes are only displayed for error
  327.   conditions.
  328.  
  329.  
  330.   DRAGDROP - The Direct Manipulation (Dragdrop) Sample
  331.   ====================================================
  332.  
  333.   DRAGDROP demonstrates how to move files between directories with the dragging
  334.   techniques of direct manipulation.  This sample program creates a list box
  335.   that contains a scrollable list of the current directory.
  336.  
  337.   To change the current directory, select the WINDOW option and enter the new
  338.   directory name and press Enter.  The sample program must be started twice so
  339.   there are two running instances of the sample.  Then, using a mouse, the user:
  340.  
  341.   -   Changes the directory file list in the first sample.
  342.   -   Selects a file name from the second sample.
  343.   -   Drags the file name (with mouse button 2) to the directory in
  344.       the first sample.
  345.   -   Drops the file name on the directory in the first sample.
  346.  
  347.   The file is now moved to the chosen directory of the first sample.
  348.  
  349.  
  350.   GRAPHICS - The Non-retained Graphics Sample
  351.   ===========================================
  352.  
  353.   GRAPHICS demonstrates how to use default viewing transformation functions of
  354.   the Presentation Manager.  It also demonstrates how to use an asynchronous
  355.   drawing thread.  The sample program lets the user load metafiles using a
  356.   dialog box.  The dialog box has a help pushbutton.  When the help pushbutton
  357.   is activated, it provides instructions on loading a metafile from another
  358.   directory.  The user also can print a metafile or graphic circle.
  359.  
  360.  
  361.   IPF - The Information Presentation Facility Sample
  362.   ==================================================
  363.  
  364.   IPF demonstrates how to use the Information Presentation Facility to create an
  365.   online document.  This sample program features customized windows that display
  366.   text, graphics, and animation.
  367.  
  368.   Two files are associated with this sample:
  369.  
  370.   -   The IPF online document (.INF) file
  371.   -   The OS/2 dynamic link library (.DLL) file.
  372.  
  373.   The .INF file is the compiled IPF tag document.  The source contains tagging
  374.   that defines different types of windows.  Tags that control the format and
  375.   display of text also are included in this file.
  376.  
  377.   The .DLL file is the compiled OS/2 C language source for the code object that
  378.   is called when the .INF file is read during run time.  A series of bit maps
  379.   used for animation are included in the DLL.
  380.  
  381.  
  382.   PALETTE - The Palette Manager Sample
  383.   ====================================
  384.  
  385.   PALETTE demonstrates the creation of a window using a custom palette and
  386.   animation.  The user can display an IBM logo or OS/2 logo.  When run on a
  387.   system having a fully populated XGA adapter, the sample shows a palette
  388.   animation technique from a second thread of execution.
  389.  
  390.  
  391.   PORTING - The Presentation Manager 16-bit to 32-bit Porting Sample
  392.   ==================================================================
  393.  
  394.   PORTING demonstrates how to migrate from an existing OS/2 16-bit application
  395.   to a 32-bit application.  This program also demonstrates how to display an
  396.   image using the GpiImage function.  The image data comes from a file the user
  397.   must select using the standard File Open dialog procedure.
  398.  
  399.  
  400.   PRINT - The Printer Sample
  401.   ==========================
  402.  
  403.   PRINT demonstrates how to display and print text, metafiles, and bit maps.  It
  404.   also demonstrates how to:
  405.  
  406.   -   Query and display a system printer configuration
  407.   -   Interact with the printer drivers to change job properties
  408.   -   Query and display available printer and screen fonts
  409.   -   Print from an asynchronous thread
  410.  
  411.  
  412.   STDWND - The Standard Window Sample
  413.   ===================================
  414.  
  415.   STDWND demonstrates how to create and display a standard window that conforms
  416.   to Common User Access* requirements.  This sample program also demonstrates
  417.   how to use resources defined in a resource script file.  Initially, STDWND
  418.   displays a standard window with the text "Hello."  The menu bar contains the
  419.   OPTIONS choice.  If the choice is selected, the resulting menu contains three
  420.   choices that each paint a different text string in the window.  This sample
  421.   also shows how to overwrite the "ctrl C" key combination.
  422.  
  423.  
  424.   TEMPLATE - The Application Template Sample
  425.   ==========================================
  426.  
  427.   TEMPLATE demonstrates the structure common to all Presentation Manager
  428.   applications.  This sample program shows how to structure an application that
  429.   has more than one source file.  It includes an initialization file, which is
  430.   used and then discarded, the resident code, and the non-resident code that is
  431.   loaded only when needed.
  432.  
  433.   TEMPLATE also demonstrates how to:
  434.  
  435.   -   Create a standard window
  436.   -   Load resources from a resource file
  437.   -   Create a dialog box and a button control
  438.   -   Display a message box
  439.   -   Open a file
  440.   -   Close a file
  441.   -   Print text
  442.   -   Paint a window
  443.   -   Process a message from a menu
  444.   -   Run a thread in the background
  445.   -   Exit a process.
  446.  
  447.   Help files are provided by the Information Presentation Facility.
  448.  
  449.  
  450.  
  451.   Workplace Shell Sample Programs
  452.   _______________________________
  453.  
  454.   BROWSE - The Workplace Shell ASCII/Hex File Browser
  455.   ===================================================
  456.  
  457.   The BROWSE sample displays file system objects in a hexadecimal or text format
  458.   in a Presentation Manager window.  Open a view of an object in the default
  459.   format (hexadecimal) by dropping a file system object on the Browse-O-Matic
  460.   icon or by double clicking the left mouse button and entering the name of a
  461.   file to view.
  462.  
  463.   A view of an object can be opened in either hex or text format by selecting
  464.   the Open Text View or Open Hex View from the Open menu by clicking the right
  465.   mouse button once on the Browse-O-Matic icon.  The default view format can be
  466.   changed in the settings menu page by selecting the Open menu, Settings, Menu
  467.   notebook tab, ~Open in Available menus, Settings..., Default action, and
  468.   selecting ~Settings, Open ~Hex View, or Open ~Text View.
  469.  
  470.  
  471.   CAR - The Workplace Shell WPDataFile Subclass C Sample
  472.   WPCAR - The Workplace Shell WPDataFile Subclass C++ Sample
  473.   ==========================================================
  474.  
  475.   CAR and WPCAR demonstrate how to create a Workplace Shell object using basic
  476.   object-oriented programming techniques and the System Object Model (SOM),
  477.   including:
  478.  
  479.   -   Initializing an object
  480.   -   Adding settings pages to an object
  481.   -   Saving and restoring the state of an object
  482.   -   Modifying object context menus (adding and deleting menu items)
  483.   -   Querying of object class data
  484.   -   Processing context menu items
  485.   -   Implementing settings page dialog processing.
  486.  
  487.  
  488.   TEXTFLDR - The Text Only Folder Sample
  489.   ======================================
  490.  
  491.   The TEXTFLDR sample allows only Plain Text objects to be placed in the folder.
  492.   Objects that are not Plain Text are rejected.  Objects are considered to be
  493.   Plain Text if the Associated Type in the Settings is set to Plain Text.  If no
  494.   type is set, the folder checks the first 500 bytes.  If any characters are
  495.   control- or extended- ASCII characters, the object is rejected.
  496.  
  497.  
  498.   WPSTUTOR - The Workplace Shell Tutorial Sample
  499.   ==============================================
  500.  
  501.   The WPSTUTOR sample displays the order in which object methods are invoked by
  502.   the Workplace Shell.  As a method for the sample object class is executed, the
  503.   method's name and a description of its function are displayed in a
  504.   Presentation Manager window.  The sample saves its title and the icon title
  505.   backwards.
  506.  
  507.   This object class subclasses the WPDataFile class.  Most Workplace Shell
  508.   instance and class methods are overridden so that information about the
  509.   methods can be displayed to the user.
  510.  
  511.   This sample is designed to be more of a tutorial for Workplace Shell
  512.   programming than a programming example.
  513.  
  514.   NOTE:  The SHOWDESC.EXE file should be renamed to SHOWDESC.BAK (or something
  515.   other than SHOWDESC.EXE) to turn off the sample.  Rename the file back to
  516.   SHOWDESC.EXE to turn the sample back on.
  517.  
  518.   WSFILE - The Workplace Shell File and Folder Sample
  519.   ===================================================
  520.  
  521.   The WSFILE sample displays, creates and installs Workplace objects of two
  522.   classes: WSFILE and WSFOLDER.  Class WSFILE is a subclass of the WPDataFile
  523.   class, and class WSFOLDER is a subclass of class WPFolder.  The sample
  524.   allows you to create a Workplace Shell folder on your desktop.  To do this,
  525.   run the command file called INSTALL.CMD, providing the specification of the
  526.   drive on which your OS/2 Warp system was installed.  For example, enter
  527.   INSTALL C:
  528.  
  529.   The example folder which you create contains a WSFILE object and a WSFOLDER
  530.   object.  You can drag the WSFILE object onto the WSFOLDER object and drop it
  531.   into the folder.
  532.  
  533.  
  534.   Multimedia Sample Programs
  535.   __________________________
  536.  
  537.   ADMCT - The Waveform Audio Media Control Driver Sample
  538.   ======================================================
  539.  
  540.   ADMCT is an example of a Media Control Driver (MCD) that demonstrates how to
  541.   control a streaming device.  Streaming devices use the services of the
  542.   Sync/Stream Manager (SSM) of OS/2 multimedia to control the data stream from a
  543.   source location to a target location.
  544.  
  545.  
  546.   ASYMREC - The Asymmetric Recording Sample
  547.   =========================================
  548.  
  549.   ASYMREC illustrates how to include asymmetric recording function in your
  550.   multimedia application.  Modules include source code extracted from the Video
  551.   IN Recorder application, which enables frame-step recording using Ultimotion
  552.   compression techniques.
  553.  
  554.  
  555.   AVCINST - The AVC I/O Procedure Installation Sample
  556.   ===================================================
  557.  
  558.   AVCINST illustrates how an application can install and remove a I/O procedure
  559.   to use multimedia input/output (MMIO) file services.  The AVC I/O Procedure
  560.   Installation Sample is a simple PM application that allows you to install or
  561.   deinstall the audio AVC I/O procedure, AVCAPROC.DLL.
  562.  
  563.  
  564.   CAPSAMP - The Caption Sample Application
  565.   ========================================
  566.  
  567.   CAPSAMP and the Caption Utility APIs (in the CAPDLL subdirectory) are part of
  568.   the sample captioning system provided with the Toolkit.  CAPSAMP demonstrates
  569.   how captioning can be integrated into applications using caption files in
  570.   conjunction with the Caption Utility APIs.
  571.  
  572.  
  573.   CAPTION - The Caption Creation Utility
  574.   ======================================
  575.  
  576.   The Caption Creation Utility program is part of the sample captioning system
  577.   provided with the Toolkit.  The Caption Creation Utility program enables a
  578.   user to synchronize an audio file with a text file.
  579.  
  580.   NOTE:  This concept can be extended beyond audio and text to apply to many
  581.   possibilities, such as synchronizing audio and video, or synchronizing video
  582.   and text.
  583.  
  584.  
  585.   CASECONV - The Case Converter I/O Procedure
  586.   ===========================================
  587.  
  588.   CASECONV provides a simple example of how to write a file format I/O procedure
  589.   (without illustrating the use of data translation).  This sample performs case
  590.   conversion of text.
  591.  
  592.  
  593.   CDMCIDRV - The CD Audio Media Control Driver Sample
  594.   ===================================================
  595.  
  596.   CDMCIDRV is an example of an MCD that demonstrates how to control a
  597.   nonstreaming device.  Nonstreaming devices stream data within the device.
  598.  
  599.  
  600.   CF - Install Control Files
  601.   ==========================
  602.  
  603.   CF contains control file templates you can utilize when installing a program
  604.   using MINSTALL.
  605.  
  606.  
  607.   CLOCK - The Memory Playlist Sample
  608.   ==================================
  609.  
  610.   CLOCK illustrates the use of the memory playlist feature of OS/2 multimedia.
  611.   The memory playlist feature provides for easy manipulation of multimedia in
  612.   memory to create unique effects based on user input or other dynamic events.
  613.  
  614.  
  615.   CODEC - The Compressor/Decompressor Sample
  616.   ======================================
  617.  
  618.   CODEC illustrates how to write a CODEC procedure to include compression and
  619.   decompression routines in your multimedia applications.  A CODEC procedure
  620.   operates on data within a file or buffer.
  621.  
  622.  
  623.   DIVE - The DIVE (Direct Interface Video Extensions) Sample
  624.   ==========================================================
  625.  
  626.   Direct Interface Video Extensions (DIVE) provide optimized blitting
  627.   performance for motion video subsystems and applications that perform rapid
  628.   screen updates in the OS/2 PM and full-screen environments.  Using DIVE
  629.   interfaces, applications can either write directly to video memory or use the
  630.   DIVE blitter.  The DIVE blitter will take advantage of acceleration hardware
  631.   when present and applicable to the function being performed.
  632.  
  633.  
  634.   DUET1 - Streaming Device Duet Sample
  635.   ====================================
  636.  
  637.   The DUET sample programs illustrate the OS/2 multimedia concept of device
  638.   grouping and integrating multimedia into an application's help information.
  639.   DUET1 illustrates the concepts of grouping two streaming devices.
  640.  
  641.  
  642.   DUET2 - Streaming and Non-Streaming Device Duet Sample
  643.   ======================================================
  644.  
  645.   The DUET sample programs illustrate the OS/2 multimedia concept of device
  646.   grouping and integrating multimedia into an application's help information.
  647.   DUET2 demonstrates how one of the devices in the multimedia device group can
  648.   be a non-streaming device.
  649.  
  650.  
  651.   FSSHT - The File System Stream Handler
  652.   ======================================
  653.  
  654.   FSSHT contains a sample file system stream handler.
  655.  
  656.  
  657.   MCDTBL - Media Control Driver Command Tables
  658.   ============================================
  659.  
  660.   Before an MCD can interpret a string command, the MDM must use a command table
  661.   to change the string into an equivalent procedural command.  Represented as
  662.   resources to the driver, command tables are created using the RCDATA type of
  663.   resource.  The resource number of the RCDATA block is the device type number.
  664.   MCDTBL contains command tables for each of the following devices:
  665.  
  666.   - CD-ROM/XA
  667.   - CD Audio
  668.   - Wave Audio
  669.   - Sequencer
  670.   - Digital Video
  671.   - Amp Mixer
  672.   - Videodisc
  673.  
  674.   If you want to support device-specific messages, you must create a
  675.   device-specific command table.
  676.  
  677.  
  678.   MCDTEMP - The Media Control Driver Template
  679.   ===========================================
  680.  
  681.   MCDTEMP provides a basic template to write an MCD.  Refer to the ADMCT and
  682.   CDMCIDRV subdirectories for specific streaming or MMIO samples.
  683.  
  684.  
  685.   MCISPY - The MCISpy Sample
  686.   ==========================
  687.  
  688.   MCISPY monitors media control interface messages that are exchanged between
  689.   applications and the OS/2 multimedia subsystem.  In addition to teaching you
  690.   about multimedia messages, MCISPY also serves as a powerful debugging aid.
  691.  
  692.  
  693.   MCISTRNG - The Media Control Interface String Test Sample
  694.   =========================================================
  695.  
  696.   MCISTRNG serves as a powerful testing and debugging tool that enables
  697.   developers writing media drivers to control their devices at the application
  698.   level.  The String Test Sample illustrates how an application uses the
  699.   interpretive string interface provided by the media control interface.  It
  700.   also illustrates how notification messages are returned from the media drivers
  701.   to the application.
  702.  
  703.  
  704.   MMBROWSE - The Image Browser Sample
  705.   ===================================
  706.  
  707.   MMBROWSE illustrates how to use the Multimedia I/O subsystem (MMIO) to install
  708.   I/O procedures for various image formats and then convert these image formats
  709.   to OS/2 bitmaps.
  710.  
  711.  
  712.   MMIOPROC - The M-Motion I/O Procedure Sample
  713.   ============================================
  714.  
  715.   MMIOPROC provides an example of how to write an I/O procedure for use with
  716.   image file formats.  This sample enables file format transparency for M-Motion
  717.   still video files and illustrates the use of data translation.
  718.  
  719.  
  720.   MOVIE - The Movie Sample Application
  721.   ====================================
  722.  
  723.   MOVIE demonstrates device control of a software motion video device.  It also
  724.   illustrates how to cut, copy, paste, and delete movie data from an
  725.   application.  A movie can be played in an application-defined window or in the
  726.   system default window provided by the software motion video subsystem.
  727.  
  728.   NOTE:  If you have installed the diskette version of the Toolkit, you must
  729.   copy MACAW.AVI (or any other AVI file) from \MMOS2\MOVIES to the
  730.   \TOOLKIT\SAMPLES\MM\MOVIE subdirectory and rename it MOVIE.AVI.
  731.  
  732.  
  733.   RECORDER - The Audio Recorder Sample
  734.   ====================================
  735.  
  736.   RECORDER illustrates the concept of recording audio through the media control
  737.   interface and how to query a device to find out the recording capabilities.
  738.   RECORDER also illustrates how to change the audio recording and audio device
  739.   properties, such as bits per sample, samples per second, input level, and
  740.   input source.
  741.  
  742.  
  743.   SHORTCF - Control File Templates
  744.   ================================
  745.  
  746.   SHORTCF contains a simple example of control file templates you can utilize
  747.   when installing a program using MINSTALL.
  748.  
  749.  
  750.   SHRCFILE - Stream Handler Resource File Example
  751.   ===============================================
  752.  
  753.   SHRCFILE provides a sample stream handler resource file.
  754.  
  755.  
  756.   ULTIEYES - The Non-Linear Video Sample
  757.   ======================================
  758.  
  759.   ULTIEYES demonstrates the use of non-linear video by displaying segments from
  760.   a movie clip in response to input from the mouse.
  761.  
  762.  
  763.   ULTIMOIO - The Ultimotion I/O Procedure Sample
  764.   ==============================================
  765.  
  766.   The Ultiomotion I/O procedure provides a detailed example of what you need to
  767.   consider when writing I/O procedures for software motion video file formats.
  768.   ULTIMOIO includes CODEC support and illustrates how to integrate common and
  769.   file-format-specific code to support multiple I/O procedures.
  770.  
  771.  
  772.   *Common User Access is a trademark of IBM Corporation.
  773.  
  774.