Data Types
ACCEL
ACCELTABLE
APIRET
APSZ
ARCPARAMS
AREABUNDLE
ATOM
BITMAPARRAYFILEHEADER
BITMAPARRAYFILEHEADER2
BITMAPFILEHEADER
BITMAPFILEHEADER2
BITMAPINFO
BITMAPINFO2
BITMAPINFOHEADER
BITMAPINFOHEADER2
BIT8
BIT16
BIT32
BOOL
BOOKPAGEINFO
BOOKTEXT
BTNCDATA
BYTE
CATCHBUF
CDATE
CHAR
CHARBUNDLE
CLASSINFO
CNRDRAGINFO
CNRDRAGINIT
CNRDRAWITEMINFO
CNREDITDATA
CNRINFO
CNRLAZYDRAGINFO
COLOR
CONVCONTEXT
CREATESTRUCT
CSBITMAPDATA
CTIME
CTLCOLOR
Control-Data
CURSORINFO
DDEINIT
DDESTRUCT
DELETENOTIFY
DESKTOP
DEVOPENSTRUC
DLGTEMPLATE
DLGTITEM
DRAGIMAGE
DRAGINFO
DRAGITEM
DRAGTRANSFER
DRIVDATA
ENTRYFDATA
ERRINFO
ERRORID
ESCMODE
ESCSETMODE
FACENAMEDESC
FATTRS
FFDESCS
FIELDINFO
FIELDINFOINSERT
FILEDLG
FIXED
FONTDLG
FONTMETRICS
FRAMECDATA
GETPORTFROMQ
GRADIENTL
GRIDINFO
GRIDSQUARE
HAB
HACCEL
HAPP
HATOMTBL
HBITMAP
HCINFO
HDC
HDDF
HELPINIT
HELPSUBTABLE
HELPTABLE
HENUM
HEV
HINI
HLIB
HMF
HMODULE
HMQ
HMTX
HMUX
HOBJECT
HPOINTER
HPROGRAM
HPS
HRGN
HSAVEWP
HSEM
HSPL
HSTR
HSWITCH
HWND
ICONINFO
IMAGEBUNDLE
IPT
LBOXINFO
LHANDLE
LINEBUNDLE
LONG
MARKERBUNDLE
MATRIXLF
MB2D
MB2INFO
MENUITEM
MINIRECORDCORE
MLE_SEARCHDATA
MLECTLDATA
MLEMARGSTRUCT
MPARAM
MQINFO
MRESULT
NOTEBOOKBUTTON
NOTIFYDELTA
NOTIFYRECORDEMPHASIS
NOTIFYRECORDENTER
NOTIFYSCROLL
OBJCLASS
MLEOVERFLOW
OWNERBACKGROUND
OWNERITEM
PAGEINFO
PAGESELECTNOTIFY
PANOSE
PARAM
PCH
PCSZ
PDEVOPENDATA
PFN
PFNWP
PID
PIX
PKERNPAIRS
POINTERINFO
POINTL
POINTS
PORTFROMQ
PQMOPENDATA
PRDINFO3
PRDRIVINFO
PRESPARAMS
PRFHOOKPARMS
PRFPROFILE
PRINTDEST
PRINTERINFO
PRJINFO2
PRJINFO3
PRJINFO4
PROGCATEGORY
PROGDETAILS
PROGRAMENTRY
PROGTYPE
PRPORTINFO
PRPORTINFO1
PRPORTINFO2
PRQINFO3
PRQINFO6
PRQPROCINFO
PSZ
PVOID
PWPOINT
QMJOBINFO
QMSG
QUERYRECFROMRECT
QUERYRECORDRECT
RECORDCORE
RECORDINSERT
RECTL
RENDERFILE
RGB
RGB2
RGNRECT
SBCDATA
SEARCHSTRING
SEGOFF
SHORT
SIZEF
SIZEL
SLDCDATA
SMHSTRUCT
SPBCDATA
SPLERR
STR8
STR16
STR32
STR64
STYLECHANGE
SWBLOCK
SWCNTRL
SWENTRY
SWP
TID
TRACKINFO
TREEITEMDESC
TREEMOVE
UCHAR
ULONG
USERBUTTON
USHORT
VIDEOMODEINFO
VIOFONTCELLSIZE
VIOSIZECOUNT
VOID
VSCDATA
VSDRAGINFO
VSDRAGINIT
VSTEXT
WNDPARAMS
WPOINT
WRECT
XYWINSIZE
Errors
Error Number and Name
Error Name and Explanation
Atom Tables
About Atom Tables
System Atom Table
Private Atom Tables
Atom Types
String Atoms
Integer Atoms
Atom Creation and Usage Count
Atom Deletion
Atom Queries
Atom String Formats
Using Atom Tables
Creating Unique Window-Message Atoms
Creating DDE Formats and a Unique Clipboard Format
Button Controls
About Button Controls
Button Types
Push Buttons
Radio Buttons
Check Boxes
Three-State Check Boxes
Application-defined Buttons
Button Styles
Default Button Behavior
Button Notification Messages
Button States
Custom Buttons
Using Button Controls
Using Buttons in a Dialog Window
Using Buttons in a Client Window
Creating Buttons with Icons and Icon/Text Combinations
Clipboards
About the Clipboard
Shared Memory and the Clipboard
Clipboard Operations
Cut and Copy Operations
Paste Operation
Standard Clipboard-Data Formats
Private Clipboard-Data Formats
Format Identification Number
Display Formats
Delayed Rendering
Clipboard Viewer
Clipboard Owner
Using the Clipboard
Putting Data on the Clipboard
Retrieving Data from the Clipboard
Viewing Data on the Clipboard
Combination Box
About Combination-Box Controls
Combination-Box Styles
Combination-Box Notification Codes
Using Combination-Box Controls
Container Controls
About Container Controls
Container Control Functionality
Container Items
Container Views
Icon View
Name View
Non-Flowed Name View
Flowed Name View
Text View
Non-Flowed Text View
Flowed Text View
Tree View
Tree Icon View and Tree Text View
Tree Name View
Details View
Determining the Width of a Column in a Details View
Split Bar Support for the Details View
Using Container Controls
Creating a Container
Allocating Memory for Container Records
Allocating Memory for Container Columns
Inserting Container Records
Removing Container Records
Setting the Container Control Focus
Using Container Views
Changing a Container View
Creating a Grid for Icons
Graphical User Interface Support for Container Controls
Scrolling
Dynamic Scrolling
Selecting Container Items
Selection Types
Selection Techniques
Selection Mechanisms
Providing Emphasis
Using Direct Manipulation
Enhancing Container Controls Performance and Effectiveness
Positioning Container Items
Scrollable Workspace Areas
Workspace and Work Area Origins
Specifying Space between Container Items
Providing Source Emphasis
Providing Target Emphasis
Specifying Deltas for Large Amounts of Data
Direct Editing of Text in a Container
Searching for Exact Text String Matches
Specifying Container Titles
Specifying Fonts and Colors
Drawing Container Items and Painting Backgrounds
Filtering Container Items
Optimizing Container Memory Usage
Allocating Memory for when Using MINIRECORDCORE
Sharing Records among Multiple Containers
Invalidating Records Shared by Multiple Containers
Freeing Records Shared by Multiple Containers
Sample Code for Container Controls
Container Application Sample Code
Control Windows
About Control Windows
Using Control Windows
Using Control Windows in a Dialog Window
Using Control Windows in a Non-Dialog Window
Creating a Custom Control Window
Cursors
About Cursors
Cursor Creation and Destruction
Position and Size
Other Cursor Characteristics
Cursor Visibility
Using Cursors
Creating and Destroying a Cursor
Dialog Windows
About Dialog Windows
Modal and Modeless Dialog Windows
Dialog Items
Dialog-Item Groups
Message Boxes
Standard Message Boxes
Enhanced Message Boxes
Minimizing Dialog Windows
Dialog Data Structures
Dialog Resources
Using Message Boxes and Dialog Windows
Creating a Standard Message Box
Creating a System-Modal Standard Message Box
Creating an Enhanced Message Box
Using a Dialog Window
Creating a Dialog Template
Creating a Modal Dialog Window
Creating a Modeless Dialog Window
Initializing a Dialog Window
Adding a Menu in a Dialog Window
Creating a Dialog Procedure
Manipulating Dialog Items
Direct Manipulation
About Direct Manipulation
Application-Defined Drag Operations
Rendering Mechanism and Format
Non-Standard Rendering Mechanisms
Responsibilities of a Source Application
Responsibilites of a Target Application
Messages Sent to a Target Application
Response to Messages Sent to a Target Application
Two-Object Drag Operation
Conversation after the Drop
Canceling a Drag Operation
About Pickup and Drop
Data Structure Handling
Message Handling
About Rendering Mechanisms
OS/2 File Rendering Mechanism
Mechanism Name
Messages
Native Mechanism Actions
Preventing a Target from Rendering an Item
Requesting the Source to Render the Item
Allocating and Freeing a DRAGTRANSFER Data Structure
Operation Specifics
Non-Native Mechanism Actions
Naming Conventions
Types
Print Rendering Mechanism
Mechanism Name
Messages
Native Mechanism Actions
Naming Conventions
Dynamic Data Exchange (DDE) Rendering Mechanism
Mechanism Name
Messages
Native Mechanism Actions
Operation Specifics
Non-Native Mechanism Actions
Naming Conventions
Types
Application-Defined Rendering Mechanisms
Mechanism Name
Native Mechanism Actions
Naming Conventions
Performance Considerations
Using Direct Manipulation
Allocating Memory for the Drag Operation
Initializing DRAGITEM Data Structure
Type
True Type
Rendering Mechanism and Format
Native Rendering Mechanism and Format
Suggested Name at Target
Container Name
Source Name
Sample Code for Initializing DRAGITEM Data Structure
Initializing DRAGIMAGE Data Structure
Starting the Drag Operation
Responding to the DM_DRAGOVER Message
Providing Target Emphasis
Providing Customized Images
Responding to the DM_DRAGLEAVE Message
Responding to the DM_DROP Message
Exchanging Data
Performance Considerations
Using Pickup and Drop
Graphical User Interface Support for Direct Manipulation
Keyboard Augmentation
Sample Code for Direct Manipulation
Source Application Sample Code
Target Application Sample Code
Drawing in Windows
About Window-Drawing Functions
Points
Rectangles
Using Window-Drawing Functions
Working with Points and Rectangles
Determining the Dimensions of a Rectangle
Filling a Rectangle
Scrolling the Contents of a Window
Drawing a Bit Map
Drawing Text
Dynamic Data Exchange
About Dynamic Data Exchange
Client and Server Interaction
DDE System Example
Applications, Topics, and Items
The System Topic
DDE Initiation
Shared-Memory Object
Transaction Status Flags
Transaction and Response Messages
Request and Poke Transactions
Advise and Unadvise Transactions
Execute Transaction
DDE Termination
Unique Data Formats
Synchronization Rules
Language-Sensitive DDE Applications
Using Dynamic Data Exchange
Initiating a DDE Conversation
Creating a Shared-Memory Object for DDE
Sending a Positive Acknowledgment
Sending a Negative Acknowledgment
Performing a One-Time Data Transfer
Establishing a Permanent Data Link
Terminating a Permanant Link
Executing Commands in a Remote Application
Terminating a DDE Conversation
Sample Code for Dynamic Data Exchange
Client Application Sample Code
Server Application Sample Code
Entry-Field Controls
About Entry Fields
Entry-Field Styles
Entry-Field Notification Codes
Default Entry-Field Behavior
Entry-Field Text Editing
Entry-Field Control Copy and Paste Operations
Entry-Field Text Retrieval
Using Entry-Field Controls
Creating an Entry Field in a Dialog Window
Creating an Entry Field in a Client Window
Changing the Default Size of an Entry Field
Retrieving Text From an Entry Field
File Dialog Controls
About File Dialog Controls
Customizing the File Dialog
Using File Dialog Controls
Creating a File Dialog
Creating an Open Dialog
Creating a SaveAs Dialog
Graphical User Interface Support for File Dialog Controls
Name Field
File List Box
Directory List Box
Drive Field
Type Field
Standard Push Button and Default Action
Subclassing the Default File Dialog Procedure
Font Dialog Controls
About Font Dialog Controls
Customizing the Font Dialog
Using Font Dialog Controls
Creating a Font Dialog
Graphical User Interface Support for Font Dialog Controls
Name Field
Style Field
Size Field
Emphasis Group Box
Preview Area
Filter Check Box
Standard Push Button and Default Action
Subclassing the Default Font Dialog Procedure
Frame Windows
About Frame Windows
Main Window
Frame Controls
Client Window
Additional Frame-Window Items
Frame-Control Identifiers
Frame-Window Creation
Frame Window Controls and Styles
Frame-Window Resources
Frame-Window Class Data
Frame-Window Data
Frame-Window Operation
Nonstandard Frame Windows
Default Frame-Window Behavior
Using Frame Windows
Creating a Main Window
Retrieving a Frame Handle
Hooks
About Hooks
Hook Lists
Hook Chains
Hook Types
HK_CHECKMSGFILTER - Check Message Filter Hook
HK_CODEPAGECHANGE - Code Page Changed Hook
HK_DESTROYWINDOW - Destroy Window Hook
HK_FINDWORD - Find Word Hook
HK_FLUSHBUF - Flush Buffer Hook
HK_HELP - Help Hook
HK_INPUT - Input Hook
HK_JOURNALPLAYBACK - Journal Playback Hook
HK_JOURNALRECORD - Journal Record Hook
HK_LOADER - Loader Hook
HK_LOCKUP - Lockup Hook
HK_MSGCONTROL - Message Control Hook
HK_MSGFILTER - Message Filter Hook
HK_MSGINPUT - Message Input Hook
HK_PLIST_ENTRY - Program List Call Hook
HK_PLIST_EXIT - Program List Exit Hook
HK_REGISTERUSERMSG - Register User Message Hook
HK_SENDMSG - Send Message Hook
HK_WINDOWDC - Device Context Hook
Using Hooks
Installing Hook Functions
Releasing Hook Functions
Freeing Memory
Recording and Playing Back Input Events
Sample Code for Hooks
Hooks Application Sample Code
Initialization Files
About Initialization Files
Using Initialization Files
Creating, Opening, and Closing Initialization Files
Reading and Writing Settings
Identifying the OS/2 Initialization Files
Keyboard Accelerators
About Keyboard Accelerators
Accelerator Tables
Accelerator-Table Resources
Accelerator-Table Handles
Accelerator-Table Data Structures
Accelerator-Item Styles
Using Keyboard Accelerators
Creating an Accelerator-Table Resource
Including an Accelerator Table in a Frame Window
Modifying an Accelerator Table
List-Box Controls
About List Boxes
Using List Boxes
Creating a List-Box Window
Using a List Box in a Dialog Window
Adding or Deleting an Item in a List Box
Responding to a User Selection in a List Box
Handling Multiple Selections
Creating an Owner-Drawn List Item
Default List-Box Behavior
Menus
About Menus
Menu Bar and Pull-Down Menus
Pop-Up Menus
System Menu
Menu Items
The Help Item
Menu-Item Styles
Menu-Item Attributes
Menu-Item Structure
Menu Access
Mnemonics
Accelerators
Using Menus
Defining Menu Items in a Resource File
Including a Menu Bar in a Standard Window
Creating a Pop-up Menu
Adding a Menu to a Dialog Window
Accessing the System Menu
Responding to a User's Menu Choice
Setting and Querying Menu-Item Attributes
Adding and Deleting Menu Items
Creating a Custom Menu Item
Messages and Message Queues
About Messages and Message Queues
Messages
Message Queues
Message Handling
Message Loops
Window Procedures
Posting and Sending Messages
Message Types
System-Defined Messages
Application-Defined Messages
Semaphore Messages
Message Priorities
Message Filtering
Using Messages
Creating a Message Queue and Message Loop
Examining the Message Queue
Posting a Message to a Window
Sending a Message to a Window
Broadcasting a Message
Using Message Macros
Multiple-Line Entry Field Controls
About Multiple-Line Entry Field Controls
MLE Styles
MLE Notification Codes
MLE Text Editing
MLE Text Formatting
MLE Text Import and Export Operations
MLE Cut, Copy, and Paste Operations
MLE Search and Replace Operations
MLE Colors
Using Multiple-Line Entry Field Controls
Creating an MLE
Importing and Exporting MLE Text
Importing MLE Text
Exporting MLE Text
Searching MLE Text
Mouse and Keyboard Input
About Mouse and Keyboard Input
System Message Queue
Window Activation
Keyboard Focus
Keyboard Messages
Message Flags
Key-Down or Key-Up Events
Repeat-Count Events
Character Codes
Virtual-Key Codes
Scan Codes
Accelerator-Table Entries
Mouse Messages
Capturing Mouse Input
Button Clicks
Mouse Movement
Using the Mouse and Keyboard
Determining the Active Status of a Frame Window
Checking for a Key-Up or Key-Down Event
Responding to a Character Message
Handling Virtual-Key Codes
Handling a Scan Code
Mouse Pointers and Icons
About Mouse Pointers and Icons
Mouse-Pointer Hot Spot
Predefined Mouse Pointers
System Bit Maps
Using Mouse Pointers and Icons
Changing the Mouse Pointer