### Task and Samples Cross-Reference Table

The following table contains a list of some Open Class Class Library tasks and cross-references them to the samples and examples used in the information that show you how to complete the task.

Tasks | Sample or Example | Class Usage
--- | --- | ---
Create a basic frame window with a line of text centered in the middle of the window | See Hello World version 1. |
    IFrameWindow
    IStaticText
Align a text string within a static text control | See Hello World version 2 and the Split Canvas Example. | IStaticText
Display information about an application in an information area below the client window | See Hello World versions 2-6. |
    IFrameExtension
    IInfoArea
Title your application using an .rc file | See Hello World versions 2-6. | IFrameWindow
Display application status in a status area | See Hello World versions 3-6. |
    IFrameExtension
    IFrameWindow
    IStaticText
Process menu bar items | See Hello World versions 3-6. |
    ICommandHandler
    IMenuBar
Let the user perform functions using accelerator keys | See Hello World versions 4-6. |
    IFrameWindow
    IMenuBar
Request text information from users using a modal dialog | See Hello World versions 4-6. | IFrameWindow
Display multiple controls in a client area using a canvas control | See Hello World version 5, Set Canvas Sample, Split Canvas Sample, and the Multicell Canvas Sample. |
    IMultiCellCanvas
    ISplitCanvas
    ISetCanvas
    ICanvas
Display information to a user in a list | See Hello World version 5 and the List Box Sample. | IListBox
Perform an action when a user selects an item from a list | See Hello World version 5. |
    IListBox
    IListBox::Cursor
    ISelectHandler
Display and repaint an IDrawingCanvas | See Hello World versions 5 and 6. |
    IDrawingCanvas
    IResizeHandler
Add help to an application (requires use of IPFX/X on Motif and Windows) | See Hello World versions 5 and 6. |
    IHelpHandler
    IHelpWindow
Perform an action when an user selects an item from a combo box in a dialog window | See Hello World version 6. |
    IComboBox
    ICommandHandler
    IFrameWindow
Show multiple components on a status line | See Hello World version 6. |
    IFrameExtension
    ISplitCanvas
Display a digital clock (long and short form) | See Hello World version 6 and the Own Handler Sample. |
    IString
    ITime
    ITimer
Display the date (long and short form) | See Hello World version 6. |
    IDate
    IString
Let the user dynamically change the font of an application using a font dialog | See Hello World version 6, Tool Bar 1, and Tool Bar 2. |
    IFontDialog
    ISelectHandler
Customize an application using a notebook control | See Hello World version 6. |
    ICommandHandler
    IFrameWindow
    INotebook
Customize an application using a pop-up menu | See Hello World version 6. |
    IMenuHandler
    IPopUpMenu
Record a user's settings of an application | See Hello World version 6. | IProfile
Customize a control | See the Adding Styles section. |
    IBitFlag
    IWindow
Create a message box | See Specifying Message Box Information and the Message Box Sample. | IMessageBox
Save data from a user-edited control to a file | See Viewing and Editing MLE Fields and the Multi-Line Entry Field Sample. | IMultiLineEdit
Display a list of choices to a user | See Creating and Using List Controls and Hello World versions 5 and 6. |
    IListBox
    ISelectHandler
Displaying a discrete set of choices to a user | See Creating and Using List Controls. |
    INumericSpinButton
    ITextSpinButton
Arrange child controls in rows or columns | See Creating and Using Canvas Controls and the Set Canvas Sample. | ISetCanvas
Arrange child controls in a grid of rows and columns | See Understanding Multicell Canvas and the Multicell Canvas Sample. | IMultiCellCanvas
Provide a scrollable view area | See Understanding View Ports and the View Port Sample. | IViewPort
Let the user make a file selection using a file dialog control | See Creating and Using File and Font Dialogs, Multi-Line Entry Field Sample, Multi-Media Remote Sample, and the Multi-Media Stereo Sample. |
    IFileDialog
    IFileDialog::Settings
Create pop-up menus | See Creating Menu Bars and Pull-Down Submenus, Hello World version 6, and the Tool Bar 1 Sample. |
    IMenuHandler
    IPopUpMenu
Create and populate a container control | See Creating and Using Containers and the Container Sample. |
    ICNRAllocator
    IContainerControl
    IContainerObject
Enable direct manipulation support | See Supporting Direct Manipulation. | IDM* classes
Enable direct manipulation for an entry field or an MLE control | Direct Manipulation Sample 1 |
    IDMHandler
    IEntryField
    IMultiLineEdit
Enable a bitmap control as a drop target | Direct Manipulation Sample 2 (OS/2 only) |
    IBitmapControl
    IDMHandler
    IDMItem
    IDMItemProviderFor
    IDMTargetDropEvent
    IDMTargetEvent
Enable direct manipulation for intra-process (source and target containers in the same process) container support | Direct Manipulation Sample 3 |
    IContainerColumn
    IContainerControl
    IContainerObject
    IDMHandler
Enable direct manipulation for inter-process (source and target containers in the separate processes) container support | Direct Manipulation Sample 4 |
    IContainerControl
    IContainerObject
    IDMCnrItem
    IDMHandler
    IDMSourceDiscardEvent
    IDMSourceOperation
    IDMTargetDropEvent
Enable a static text control as a drag source | See Enabling a Control as a Drag Source. |
    IDMHandler
    IDMItem
    IDMItemProvider
    IDMItemProviderFor
    IDMSourceOperation
    IStaticText
Process different events (time changes on a clock) | See Extending Event Handling. | IHandler
Add mouse handlers | See Handling Mouse Events. | IMouseHandler
Use clipboards in your applications | See Adding Clipboard Support and the Container Clipboard Sample. | IClipboardHandler IClipboard
Provide tool bars that the user can manipulate and customize | See Adding Tool Bars, Tool Bar 1 Sample, and the Tool Bar 2 Sample. |
    IToolBar
    IFlyOverHelpHandler
Add 2-dimensional graphics support to your applications | See Using Graphics in Your Application, 2D Graphics Sample, and Hello World version 5 and 6. | IG* Classes
Create a remote control interface using multimedia classes | See Creating and Using Multimedia Controls and the Multimedia Sample 1 (Multimedia Remote Sample). | IMM* classes
Create a stereo interface using multimedia classes | See Creating and Using Multimedia Controls and the Multimedia Sample 2 (Multimedia Stereo Sample). | IMM* classes
Use a multiline entry field to create a simple editor | See the Multiline Entry Field Sample. | ICommandHandler IFileDialog IFontDialog IFrameWindow IHandler IMenuHandler IMultiLineEdit
Use a view port canvas displaying a bitmap as a page in a notebook control | See the Notebook Sample. |
    IBitmapControl
    IBitmapHandle
    INotebook
    IViewPort

Note: | All samples are located in the following directory: `\samples\ioc`

Using the Sample Applications
Hello World Version 1: Creating a Main Window
Hello World Version 2: Adding Resource Files and Frame Extensions
Hello World Version 3: Adding Command Handlers and Menu Bars
Hello World Version 4: Adding Dialogs and Push Buttons
Hello World Version 5: Adding Canvases, a List Box, Native System Functions, and Help
Hello World Version 6: Adding a Font Dialog, Pop-up Menus, Notebooks, and Graphics

IBitFlag
IBitmapControl
IBitmapHandle
ICNRAllocator
ICanvas
IClipboard
IClipboardHandler
IComboBox
ICommandHandler
IContainerColumn
IContainerControl
IContainerObject
IDMCnrItem
IDMHandler
IDMItem
IDMItemProvider
IDMItemProviderFor
IDMSourceDiscardEvent
IDMSourceOperation
IDMTargetDropEvent
IDMTargetEvent
IDate
IDrawingCanvas
IEntryField
IFileDialog
IFileDialog::Settings
IFlyOverHelpHandler
IFlyText
IFontDialog
IFrameExtension
IFrameWindow
IHandler
IHelpHandler
IHelpWindow
IInfoArea
IListBox
IListBox::Cursor
IMGraphic
IMenuBar
IMenuHandler
IMessageBox
IMouseHandler
IMultiCellCanvas
IMultiLineEdit
IMultimedia
INotebook
INumericSpinButton
IPopUpMenu
IProfile
IResizeHandler
ISelectHandler
ISetCanvas
ISplitCanvas
IStaticText
IString
ITextSpinButton
ITime
ITimer
IToolBar
IViewPort
IWindow