• Introduction
    • The Workplace Shell: Object-Oriented User/Programming Interface
    • Objectives of this Guide
      • Creating and Installing Workplace Shell Objects
      • Debugging Workplace Shell Applications
      • Object Aid: Help Methods
      • Object Containers: Container Methods
      • Object Criteria: Details Methods
      • Object Errors: Error Handling Methods
      • Object Information: Set/Query Methods
      • Object Initialization and Termination: Setup/Cleanup Methods
      • Object Memory: Memory Allocation Methods
      • Object Mobility: Direct Manipulation Methods
      • Object Persistence: Save/Restore Methods
      • Object Properties: Notebook Methods
      • Object Usage: Usage Methods
      • Object User Action: Pop-Up Menu Methods
      • REXX Utility Workplace Shell Functions
      • Workplace Shell and System Object Model
      • Workplace Shell Distributed SOM
      • Workplace Shell Processes and Threads
      • Workplace Shell Programming Interface
      • Workplace Shell Win Functions
  • Creating and Installing Workplace Shell Objects
    • About Workplace Shell Objects
      • Creation of Objects
        • Implementation of the CAR Object
          • Providing for Persistence of the CAR Object
          • Changing Settings Notebook Pages
          • Removing an Item from the Pop-Up Menu
          • Adding Pop-Up Menu Items
          • Creating and Registering a New Open View
          • Processing New Pop-Up Menu Items
          • Processing Help for New Pop-Up Menu Items
      • Creation of New Instances of Objects
      • Printing Objects
      • About Toolbars
        • Toolbar Setup Strings
        • Toolbar Set Methods
        • Toolbar Query Methods
    • Using Workplace Shell Objects
      • Using Toolbars
      • Creating Objects
        • WPStyler Instance Methods
          • Initializing Data and Allocating Memory
          • Dragging Over an Object
          • Dropping an Object
          • Opening a View of an Object
          • Adding the Styler Page to the Settings Notebook
          • Removing the Window Page from the Settings Notebook
          • Removing the General Page from the Settings Notebook
          • Obtaining the Current Style
          • Setting the Object's Style
        • WPStyler Class Methods
          • Initializing Data and Allocating Memory
          • Obtaining the Default Icon
          • Obtaining the Class Style
          • Setting the Default Help
          • Setting the Default View
          • Obtaining the Module Handle
        • WPStyler Dialog Window Procedure
        • WPStyler Functions
      • Installing Workplace Shell Objects
        • Running an Installation Program
        • Running an Installation Batch File
        • Using the Workplace Shell Class List Object Utility
    • Sample Code for Creating Objects
      • Creating Objects Application Sample Code
        • Class Definition File for Styler
        • Source Code for Styler
        • Resource Header File for Styler
        • Resource Code for Styler
        • Help Source for Styler
        • Make File for Styler
      • Representing the Styler Object
  • Debugging Workplace Shell Applications
    • About SOM Debugging Techniques
    • About Workplace Shell Debugging Techniques
    • Using SOM Debugging Techniques
      • Redirecting SOMOutCharRoutine to a File
      • Redirecting SOMOutCharRoutine to a Serial Port
    • Using Workplace Shell Debugging Techniques
      • Debugging with Useful CONFIG.SYS Statements
      • Starting and Restarting the Workplace Shell
      • Debugging with the Kernel Debugger
      • Debugging with IPMD
  • Object Aid: Help Methods
    • About Help Methods
      • Query and Set Object-Specific Help
      • Setup Strings
      • REXX Functions
    • Using Help Methods
      • Displaying the Help Dialog for a Pop-Up Menu Item
      • Requesting Help from an Application Window
  • Object Containers: Container Methods
    • About Container Methods
      • Container Views
      • Container Objects
    • Using Container Methods
      • Workplace Shell and the Container Control
      • Workplace Shell Container Owner Subclass Procedure
      • Inserting Container Objects
        • Inserting One Object
        • Inserting Multiple Objects
      • Removing Container Objects
      • Setting Emphasis on Objects
      • Registering a New Open View
      • Obtaining the Object's MINIRECORDCORE Pointer
        • Obtaining a Pointer to an Object
  • Object Criteria: Details Methods
    • About Details Methods
    • Using Details Methods
      • Including Objects in a Container
        • Adding Criteria
        • Changing Criteria
      • Searching for Objects
      • Sorting Objects
  • Object Errors: Error Handling Methods
    • About Error Handling Methods
    • Using Error Handling Methods
  • Object Information: Set/Query Methods
    • About Set/Query Methods
      • General Characteristics Methods
        • Class Styles
        • Object Styles
      • Data File Related Methods
      • Desktop Related Methods
      • Disk (File-System Device) Related Methods
      • File System Related Methods
      • Folder Related Methods
      • Icon Related Methods
      • Image File Related Methods
      • Network Related Methods
      • Palette Related Methods
      • Power Related Methods
      • Printer and Print Job Related Methods
      • Program Reference and Program File Related Methods
      • Shadow Related Methods
      • View Related Methods
    • Using Set/Query Methods
      • Instance Query Methods
      • Instance Set Methods
      • Class Query Methods
      • Class Set Methods
  • Object Initialization and Termination: Setup/Cleanup Methods
    • About Setup/Cleanup Methods
      • Create the Object
      • Initialize the Object's Instance Data
      • Setup the Object's Characteristics and Behaviors
      • Setup and Query the Object's State
      • Uninitialize the Object
      • Destroy the Object
      • Workplace Shell Setup Strings
    • Using Setup/Cleanup Methods
      • Initializing the Object's Instance Data
      • Initializing a Newly Created Object
      • Setting the Object's Characteristics and Behaviors
      • Notifying the Object Is Ready
      • Uninitializing the Object
      • Destroying the Object
    • Sample Code for Setup/Cleanup Methods
      • Pushing Items onto the Stack
      • Popping Items from the Stack
      • Setup/Cleanup Application Sample Code
        • Class Definition File for Stack
        • Source Code for Stack
        • Resource Header File for Stack
        • Help Source File for Stack
        • Make File for Stack
  • Object Memory: Memory Allocation Methods
    • About Memory Allocation Methods
    • Using Memory Allocation Methods
  • Object Mobility: Direct Manipulation Methods
    • About Direct Manipulation Methods
      • Direct Manipulation on Workplace Shell Objects
      • Direct Manipulation on PM Applications
    • Using Direct Manipulation Methods
      • Starting a Drag Operation
      • Determining whether Data Can Be Exchanged
        • DRM_OBJECT
        • DRM_OS2FILE
          • Messages
      • Dragging over Another Object
      • Ending a Drop Operation
        • When Dropping on a Folder
        • When Dropping on a Printer
        • When Dropping on the Shredder
  • Object Persistence: Save/Restore Methods
    • About Save/Restore Methods
    • Using Save/Restore Methods
  • Object Properties: Notebook Methods
    • About Notebook Methods
    • Using Notebook Methods
      • Inserting Notebook Pages
      • Removing Notebook Pages
  • Object Usage: Usage Methods
    • About Usage Methods
    • Using Usage Methods
      • Adding Items to the Object's In-Use List
      • Removing Items from the Object's In-Use List
      • Increasing or Decreasing the Object's Lock Count
      • Finding an Object's In-Use Item
  • Object User Action: Pop-Up Menu Methods
    • About Pop-Up Menu Methods
      • Support for User Selection of Standard Pop-Up Menu Items
      • Open Views
    • Using Pop-Up Menu Methods
      • Adding and Removing Standard Pop-Up Menu Items
      • Adding and Removing Class Items to a Pop-Up Menu
      • Adding Conditional Cascaded Menus to a Pop-Up Menu
      • Supporting User Selection of New Pop-Up Menu Items
    • Sample Code for Pop-Up Menu Methods
      • Pop-Up Menu Application Sample Code
        • Class Definition File for Hello
        • Source Code for Hello
        • Resource Code for Hello
        • Make File for Hello
        • REXX Files for Hello
  • REXX Utility Workplace Shell Functions
    • About REXX Utility Functions
    • Using REXX Utility Functions
      • Creating Objects
      • Destroying Objects
      • Updating Objects
      • Registering and Deregistering Objects
      • Getting Extended Attributes
        • Extended Attributes and the Workplace Shell
      • Updating Extended Attributes
      • Retrieving All Registered Object Classes
      • Setting, Querying, and Deleting Keys and Applications
      • WorkPlace Shell Setup Strings
  • Workplace Shell and System Object Model
    • About Workplace Shell and SOM
      • SOM Features
        • Encapsulation
        • Inheritance
        • Polymorphism
      • SOM Run-Time Environment
      • Creating SOM Classes
        • Interface Definition Language
          • Include Directive Statement
          • Type, Constant, and Exception Declarations
          • Interface Declarations
          • Implementation Statement
          • Passthru Statement
          • Instance Variables
          • Default Processing Order
          • Release Order List
          • Comments
      • SOM Macros, Functions, and Data
        • Class-Specific SOM Macros
        • General SOM Macros and Functions
          • SOM ID Manipulation
          • SOM Debugging
          • SOM Error Handling
          • Obtaining SOM Object Information
          • Replaceable SOM Functions
    • Using Workplace Shell and SOM
      • Programming with Objects
      • Using a Release Order List
      • Processing IDL Files
      • Implementing a Simple Class
        • Using somSelf
        • Using somThis
        • Tracing Code
        • Completing the Class Implementation
      • Replacing SOM Functions
      • Invoking Methods and Accessing Object Data
      • Creating and Manipulating SOM Objects
        • Compiling a Program
      • Overriding Methods: Inheritance and Polymorphism
        • Accessing Public Methods
        • Defining Metaclasses
        • Defining Methods
        • Implementing Metaclasses
      • Building SOM Class Libraries
      • Converting CSC Files to IDL Files
        • CTOI Program
  • Workplace Shell Distributed SOM
    • About Workplace Shell Distributed SOM
      • Starting DSOM
      • Performance Using DSOM
      • Initializing a Client Workplace Shell Program
      • Exiting from a Client Workplace Shell Program
    • Using Workplace Shell Distributed SOM
      • Source Code for WPDS
      • Resource Definition File for WPDS
      • Make File for WPDS
  • Workplace Shell Processes and Threads
    • About Workplace Shell Processes and Threads
      • The Shell Process
        • The Starter Thread
        • The Shutdown Thread
      • The Workplace Process
        • Mandatory Threads
          • The Object Thread
          • The Lazy Writer Thread
          • The Sleepy Time Thread
          • The Wheel Watcher Thread
          • The Process Queue Thread
          • The Ager Thread
        • Transient Threads
          • The Populate Thread
          • The Asynch Refresh Thread
          • The Add First Child Thread
          • The Vacate Folder Thread
          • The Tasking Thread
          • The Printer Thread
          • The Finder Thread
    • Using Workplace Shell Processes and Threads
      • Multithreading on Workplace Shell Method Invocation
      • Developing User-Defined Threads
  • Workplace Shell Programming Interface
    • About Workplace Shell Programming Interface
      • CUA Guidelines for an Object-Oriented User Interface
        • Objects, Classes, Hierarchies, and Inheritance
        • Views of Objects
        • Classes of Objects
        • Object Relationships
        • Interaction with Objects
        • Designing an Object-Oriented User Interface
          • Defining Objects for a Software Model
          • Determining Object Relationships and Behaviors
          • Determining the Necessary Views
          • Determining the Action Choices
      • OS/2 Object-Oriented User Interface: The Workplace Shell
    • Using OS/2 Workplace Shell Programming Interface
      • Designing Workplace Shell Classes
  • Workplace Shell Win Functions
    • About Workplace Shell Win Functions
      • Object Instance Functions
      • Object Class Functions
    • Using Workplace Shell Win Functions
      • Creating Objects
      • Obtaining the Directory Specification for a Given Object's Handle
      • Obtaining the Directory Specification of the Active Desktop
      • Opening Objects
      • Setting Objects Data
      • Saving Objects
      • Saving the Current Size and Position of a Window
      • Moving Objects
      • Copying Objects
      • Creating a Shadow of Drive A on the Desktop
      • Registering and Deregistering Objects
      • Enumerating All Classes Registered with the System
      • Replacing a Registered Class with Another Registered Class
      • Obtaining the Icon Associated with a File and Displaying it
      • Destroying Objects
      • Shutting Down the System
  • Notices
    • Copyright Notices
    • Disclaimers
    • Trademarks
  • Glossary
    • Glossary Listing