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