SYMBIAN OS V9.2
»
Index
»
Document Tree
Tree Index
Symbian OS v9.2
About the Symbian OS Library
Overview
Finding your way around
Documentation conventions
Using the indexes
What's new
API item reference documentation changes
Guide documentation changes
Documentation change history
Acknowledgements
FAQ Knowledgebase
C++ FAQs
Java FAQs
General FAQs
Application development tutorial
The basics
Symbian OS essentials
Building, debugging and deploying an application
The filesystem browser application
Appendix: Symbian OS APIs
Additional resources
Symbian OS guide
About Symbian OS development
Subsystems and APIs
Versions and devices
User interfaces
Standards support
Programming languages
C++ development processes
Localisation support
Essential idioms
Naming conventions
Layout conventions
Class types
C++ and machine architecture
Object orientation basics
Object lifetimes and cleanup
Multiple inheritance and interfaces
Descriptors
Thin templates
Code efficiency
Defensive programming
Static data
Frameworks, libraries and DLLs
UIDs
Ordinal growth and the extension DLL pattern
How to optimise application start-up time
Exporting and Importing Classes in Symbian OS
Platform security
Symbian OS v9 Security Architecture
Symbian OS changes for platform security
Capability report v9.1
Capability report v9.2
Capability report v9.3
Application engines
Using Calendar (CalInterimAPI)
Calendar overview
Migration Guide for Symbian OS v9.1 Group Scheduling Interim APIs
Using Contacts Model (CNTMODEL)
Contacts Model overview
The contact database
Contact items
Contact fields
Mapping between vCard properties and Symbian-specific constants
Application framework
Using Animation
Animation overview
How to create a basic animation
Using Application Architecture (APPARC)
How To Access and Manipulate Running Applications
How To Make Help Files Upgradeable on the Secure Platform
How To Port Guide: Apps to Exes
How To Port Guide: Control Panel Plugins
How To Port Guide: Data Caged Applications
How To Port Guide: Data Recognizers
How To Port Guide: Notifiers
Using Bitmap Animation
Bitmap Animation Overview
Using Clock
Clock overview
Message Window overview
Using the Converter Architecture
Converter Architecture overview
How to use converters
How to get a suitable converter
How to request conversions
How to write a conversion observer
How to write a converter DLL
How to write a converter DLL project file
How to write a converter information file
How to implement the ECOM framework code
How to implement a converter
The UI Control Framework (CONE)
UI Control Framework overview
View Architecture overview
UI Control Framework concepts
- Controls
Window-owning controls and non-window-owning controls
Simple controls and compound controls
The run-time control hierarchy
The control environment
Control observers
Control contexts
Object provider mechanism
Text and Zooming
Layout Management
- The Application User Interface
A control stack.
How to write controls
How to create a Singleton
Using UI Graphics Utilities (EGUL)
UI Graphics Utilities overview
Using MIME
How are data recognizers used?
How to write a data recognizer
Using Text and Text Attributes (ETEXT)
Text and Text Attributes overview
Text content
Introduction to text content
Text objects
The Symbian OS text model
Fields
Pictures
Files and clipboard
Viewing and user interfaces
Examples of use
Formatting
Introduction to formatting
Format layering
Paragraph styles
Style behaviour
How to use styles
How to manipulate simple global text
How to manipulate rich text
How to store and restore text
Using Front End Processor (FEPBASE)
Front End Processor overview
How to write a FEP
Using Text Views (FORM)
Text Views overview
Text Views concepts
Introduction to Text Views
Editing
Printing
Special requirements
How to use text views
How to set up the text view
How to handle changes to the text view
How to select text
How to set the cursor
How to use wrapping
How to implement scrolling
How to reset
How to use system colours
Using Print Framework
Print Framework overview
Print Preview overview
How to insert a field into the header
How to start the print process
Using Uikon
Uikon overview
Using the extended notifier framework
Application protocols
Using HTTP Client
HTTP Client overview
A simple HTTP Client session
Handling request body data
Cancelling and closing transactions
Session and transaction properties
Filters
Headers
Security server certificates
HTTP string table
Using InetProtUtils
InetProtUtils Overview
How to create a URI
How to parse a URI
How to extract the URI components
How to generate filename from URI
How to validate a URI
How to parse delimited data
How to modify the data and the delimiter
How to escape encode and decode
How to manipulate URI data
Using URI utilities
Using date and time utilities
How to encode and decode WSP header
Application services
Using the Alarm Server
Alarm Server Overview
Types of alarms
Alarm Server functionality
Alarm states
Alarm Server issues
Using Calendar Conversion (CALCON)
Calendar Conversion Overview
Time zone Conversion
Time zone Conversion Overview
How to convert between UTC and local time
Using Versit
Versit Overview
How to Import Contact and Calendar Data
How to Export Contact and Calendar Data
Using World Server
World Server Overview
World Server functionality
How to obtain city/country data
How to modify city/country data
Session notification messages
Importing/exporting databases
Base
Using User Library (E32)
Arrays and Lists
Arrays And Lists Overview
Doubly Linked Lists Overview
Singly Linked Lists Overview
Dynamic Arrays Overview
Fixed Size Arrays Overview
Array Keys Overview
Using Doubly Linked Lists
Doubly linked lists
Links
Headers
Iterators
How to form links
How to construct a header
How to construct an iterator
How to construct and manipulate a doubly linked list
Using Singly Linked Lists
Singly linked lists
Links
Headers
Iterators
How to form links
How to construct a header
How to construct an iterator
How to construct and manipulate a singly linked list
Using Dynamic Arrays
Dynamic Arrays
Introduction to dynamic arrays
Array implementation
The array buffer
Flat or segmented buffer?
Identifying elements
Array capacity and granularity
The types of array
Array of same length elements, flat buffer
Array of same length elements, segmented buffer
Array of variable length elements, flat buffer
Array of variable length elements, segmented buffer
Array of packed elements, flat array
When to choose the RArray and RPointerArray types
How to Use Dynamic Arrays
How to use dynamic arrays
How to append and insert elements
How to remove elements
How to expand the array
How to reserve space in a fixed flat array
How to resize an array
How to find elements
How to access elements
How to destroy the array
How to create a generic array
Pointers to the start and end of contiguous regions
Using CArrayFixFlat<TAny>
Using CArrayFixSeg<TAny>
Using CArrayPak<TAny>
Using CArrayVar<TAny>
Using RArray<class T>
Using RPointerArray<class T>
Using TArray<class T>
Using Fixed Size Arrays
The range checking wrapper for fixed length C++ arrays
How to replace a C++ array with a wrapper
How to use the range checking wrapper
Using Array Keys
Array keys
Key type
Key comparison
Key length and location
How to use array keys
Implementing TKey derived classes
Basic Types
Basic Types Overview
Integral types
Text types
Boolean type
Floating-point numbers
Templated functions
Using TRefByValue<class T> Class
Buffers and Strings
Buffers And Strings Overview
Circular Buffers Overview
Descriptors Overview
Dynamic Buffers Overview
Lexical Analysis Overview
Literals Overview
Package Buffers Overview
Raw Memory Overview
Using Circular Buffers
Circular Buffer structure
Using CCirBuf
Using CCirBuffer
Using Descriptors
Descriptor concepts
Descriptor basics
Text and binary data
8 bit variant, 16 bit variant and build independence
Length, maximum length and size
Folding and collation (comparing strings)
Safe data access
Descriptor Types
Buffer descriptors
Heap descriptors
Pointer descriptors
Resizable buffer descriptors
Abstract base descriptor classes
The relationship between descriptor classes
How to Use Descriptors
How to use the non-modifiable buffer descriptor TBufC<TInt>
How to use modifiable buffer descriptor TBuf<TInt>
How to use the non-modifiable pointer descriptor TPtrC
How to use the modifiable pointer descriptor TPtr
How to use the heap descriptor HBufC
How to use the resizable buffer descriptor RBuf
Descriptors for function interfaces
How to represent general binary data
Using TDes
Using TDes16
Using TDes8
Using TDes8Overflow
Using TDesC
Using TDesC16
Using TDesC8
Format string syntax
Using Dynamic Buffers
Introduction to dynamic buffers
Dynamic buffers versus descriptors, arrays and heap cells
Buffer position
Space management and granularity
Contiguousness
Choices with buffers
How to use standard buffer operations
How to allocate buffers
How to pre-expand a buffer
Using Lexical analysis
Introduction to Lexical Analysis
How to use Lexical Aanalysis
Using TLitC operators
Using Literal Descriptors
Constant literal text
Coding literal descriptors
The NULL constant literals
How to use literal descriptors
Using Package Buffers
Packages as type-safe descriptors
Types of package
External and internal representations
How to use a package buffer
Date and Time Handling
Date And Time Handling Overview
Using Date And Time Handling
Using TDateTime
Using TTime
Dynamically Loading Link Libraries
Dynamically Loading Link Libraries Overview
The polymorphic interface DLL
UID protection
Module definition file
Locating a DLL
How to define the interface to a polymorphic interface DLL
How to use a polymorphic interface DLL
How to implement a polymorphic interface DLL
Supporting polymorphic interface DLLs with static interface DLLs
Handles
Handles overview
Handle numbers
Kernel side object containers
Thread relative and process relative handles
Local and global handles
Duplicating handles to Kernel side objects
Opening a handle to an existing global Kernel object
Preventing closure of a handle
Inter Process Communication
Inter Process Communication Overview
Asynchronous Services Overview
Client/Server Overview
Notification Services Overview
Using Asynchronous Services
Asynchronous Programming
Introduction to asynchronous programming
Asynchronous service providers
Low Level Asynchronous Service Handling
What asynchronous service providers do
Asynchronous service provider's responsibilities
How to handle a single asynchronous request
How to handle multiple asynchronous requests with a wait loop
Cancelling an asynchronous request
High Level Asynchronous Service Handling
Introduction to active objects and the active scheduler
Active objects
Active Scheduler
How to construct an active object
How to issue requests
How to complete requests
How to handle completed requests
How to cancel requests
How to start active objects
How to renew a request from the active scheduler
How to use multiple active objects
Long-running services and background objects
Non pre-emptive servicing
Simple encapsulation of a service provider
Life cycle of active objects
Using CActive
Using CAsyncOneShot
Using CIdle
Using TCallBack
Using TRequestStatus
Types of Service
About the types of services
Kernel services
Server services
Same-thread services
Device driver services
Using Client/Server
Introduction to the client-server architecture
Features of the client-server architecture
Getting started with Symbian OS client-server
Getting started with Symbian OS client-server
BWINS
T-CLIENTU.DEF
T-TESTCU.DEF
EABI
t-clientU.DEF
t-testcU.DEF
Src
client.cpp
clientserver.h
server.cpp
server.h
t-client.h
t-client.mmp
t-server.mmp
Test
plugin.h
test.cpp
testclient.cpp
testclient.h
t-test.mmp
t-testc.mmp
bld.inf
Migrating to V2 client/server APIs
Sessions and requests
Sharable sessions
Subsessions within a session
Initialising a subsession
Inter-thread data transfer
How to implement a simple client interface
How to implement a simple server interface
How to implement a client interface with subsessions
How to implement a server interface with subsessions
Using Notification Services
Change notifier
Thread-death notifier
Notifier
How to use a change notifier
How to use a thread-death notifier
How to use a notifier to display a simple dialog, asynchronously
How to use a notifier to display a single line message, synchronously
Locale Settings
Locale settings overview
Introduction to locale settings
Date and time formatting
Units of measurements
How to set the locale
How to format the date and time
How to format date and time independent of locale
How to format date as text
How to implement universal time and home time
How to format currency values
Maths
Maths Overview
Character Representation Of Real Numbers Overview
Maths Services Overview
Using Maths Services
Math functions
Memory Management
Memory Management Overview
Cleanup Support Overview
Memory Allocation Overview
Memory Management concepts
Address Space and Process
Chunks
Heaps
Structure of a heap
Virtual machine model
Using Memory Allocation
How to share heaps
How to switch heaps
How to walk the heap
Using Cleanup Support
Exception Handling
Types of error and recovery
C++ exception handling
Basic exception support
How to use User::Leave()
How to use TRAP
How to use new with automatic leave on failure
Where to put trap harnesses?
Restrictions on the use of TRAP
Cleanup Stack Basics
Cleanup requirements
How to use the cleanup stack
How to pop and destroy
How to use the trailing-C naming convention
Destructor requirements
How to allocate and de-allocate cleanup stacks
Summary of cleanup rules
Two Phase Construction
CBase-derived classes and two-phase construction
How to implement two-phase construction
How to implement and use NewLC()
How to write a derived class with two-phase construction
Advanced Cleanup
Cleanup stack support for non-CBase classes
How to clean up non-CBase classes
Cleanup utilities
Cleanup for heap arrays
How to use CleanupDeletePushL()
How to use CleanupClosePushL()
How to use CleanupReleasePushL()
Cleanup following trap harnesses
Using TAutoClose
Message Queue
Message Queue Overview
Using Message Queue
Publish and Subscribe
Publish and Subscribe Overview
Properties
Using Publish and Subscribe
Security issues
Notifier framework
Reference Counting Objects
Reference Counting Objects Overview
The reference counting object
The object container
The object container index
The object index
Ownership of reference counting objects
Find-handle number
Names and fullnames
Accessing reference counting objects in object containers
How to access reference counting objects in object containers
The handle-number and the object index
System Macros
Using __ASSERT_ALWAYS
Using __DECLARE_TEST
Using MUTABLE_CAST macro
System Static Functions
System Wide Error Codes
Thread And Process Management
Thread And Process Management Overview
Critical Sections Overview
Mutexes Overview
Semaphores Overview
Threads And Processes Overview
Using Critical Sections
Using Mutexes
Using Semaphores
Using Threads and Processes
Introduction to Threads and Processes
Thread and process priorities
Assigning a relative priority value to a thread
Assigning an absolute priority value to a thread
Assigning priority value EPriorityRealTime
Thread and process Id
The process type
Fixed processes
Exception handling
Thread termination
Inter-thread data transfer
Timers And Timing Services
Timers And Timing Services overview
How to use simple timers
How to create an RTimer
How to wait for a given time period
How to wait for a given time
How to close an RTimer
Using RTimer class
How to use periodic timers
How to start a periodic timer
How to stop a periodic timer
How to use heartbeat timers
How to start a heartbeat timer
How to stop a heartbeat timer
UID Manipulation
UID Manipulation Overview
UID Manipulation Classes
How to Declare a UID
Version Handling
Using File Server (F32)
File Server Client Side
File Server Client Side overview
Introduction to the file server
File names
Media types
File systems
File server session
Directories
Files
Units, drives and volumes
Management and searching
How to use sessions, files, and directories
How to use file server sessions
How to share file handles between processes
How to use sessions efficiently
How to list directories and files
How to create directories
How to delete files and directories
How to create and open a file
How to get and change file details
How to move a file
How to read and write a file
How to track changes
How to retrieve drive and volume information
How to rename files
Using RFormat
Using TFileText
File management and searching
File management with CFileMan
How to search for files with TFindFile
Using CDirScan
Parsing paths and filenames
Structure of paths and filenames
TParse, TParsePtr and TParsePtrC
How to parse a pathname
Other file-related components
File locations
Stream store
Database manager
The system drive
Bluetooth
Bluetooth
Bluetooth Overview
Short Link Services
Short Link Collection
Short Link Collection Overview
Bluetooth Protocol Client APIs
Introduction to Bluetooth Protocols
Using Bluetooth Sockets
Bluetooth Sockets overview
How to find and connect to remote devices
Methods for selecting a remote device
How to inquire about remote devices
How to inquire about services on a remote device
How to connect and transfer data to a remote device
How to use security on outgoing sockets
Listening for incoming Bluetooth connections
How to get and set the local device name
How to perform low-level configuration
How to send vendor specific debug commands to the host controller
How to disconnect ACL links
Using Bluetooth Security Manager
Bluetooth Security Manager overview
How to connect to the security manager
How to set service security requirements
Bluetooth Manager
Bluetooth Manager Overview
Using the Bluetooth UI
How to prompt the user to select a remote device
Bluetooth SDP
Bluetooth SDP Overview
Using Bluetooth Service Discovery Database
Bluetooth Service Discovery Database overview
Service records and attributes
How to connect to the service discovery database
How to create and manipulate attributes
How to register a service in the database
How to set an attribute in a service record
Using Bluetooth Service Discovery Agent
Bluetooth Service Discovery Agent overview
How to query for a remote service
How to read remote service attributes
How to create an object to handle inquiry results
Bluetooth Profiles
Introduction to Bluetooth Profiles
Bluetooth Profiles Overview
Bluetooth PAN Profile
Bluetooth PAN Profile Overview
Bluetooth GAVDP
Bluetooth GAVDP Overview
Bluetooth Remote Control Framework
Bluetooth Remote Control Framework overview
Short Link Collection Overview
Short Link Protocol Plugins Collection
Short Link Protocol Plugins Collection Overview
Bluetooth Stack PRT
Bluetooth Stack PRT overview
Short Link Protocol Plugins Collection Overview
Serial Comms Server Plugins Collection
Serial Comms Server Plugins Collection Overview
Bluetooth CSY
Bluetooth CSY Overview
Serial Comms Server Plugins Collection Overview
Comms infrastructure
CommDb
CommDb Overview
CommDb Configuration Overview
The communications database
How to access tables in the database
Transactions and locking
How to use transactions and locks
Two box device model
How to use the global settings to manage modems/locations for two-box device
Notification service
Connection preferences
Template records
Hidden records
Override settings
CommDb CDMA fields
Configuring Mobile IP to Simple IP Fallback
Table summary
Using Sockets Server (ESOCK)
Sockets Client Overview
Socket Server Protocols Overview
Using Sockets Client
Introduction to Sockets
Sockets Client API Classes
Socket Server Interface
Socket Interface
Read socket functions
Connection Management
Connection Management overview
Progress information for connections
Getting progress information asynchronously
Getting progress information synchronously
Getting the last error which occurred
Using Socket Server Protocols
Introduction to writing socket server protocol modules
Protocol modules and families
Protocols and binding
Socket Service Providers
How to define a protocol module entry point
How to write CProtocolFamilyBase::Install()
How to write CProtocolFamilyBase::ProtocolList()
How to write CProtocolFamilyBase::Open()
Using Nifman
NifMan Overview
How to write a NIFMAN configuration daemon
Connectivity
Connectivity
How-To Write Backup-aware Software
Graphics
Using Font and Bitmap Server (FBSERV)
Introduction to Font and Bitmap Server
Operation of the Font and Bitmap Server
Using Open Font System (FNTSTORE)
Open Font System overview
Framework behaviour
How to use an Open Font System font
How to install a rasterizer DLL
How to install a font file
How to write a rasterizer DLL
How to derive from COpenFontRasterizer
How to derive from COpenFontFile
How to derive from COpenFont
How to derive from COpenFontRasterizerContext
Using Graphics Device Interface
Graphics Device Interface Overview
Drawing and Graphics Contexts
Introduction to drawing and graphics contexts
Graphics context settings
Shape operations
Text operations
Bitmap operations
Geometry classes
Colours
The linear DDA