SYMBIAN OS V9.3
»
Index
»
Document Tree
Tree Index
Symbian OS v9.3
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
Kaleidoscope
A Sub-system and their Components View
Application Engines
Agnmodel
Calinterimapi
Cntmodel
Damodel
Sheng
Wpeng
Application Framework
Animation
Apparc
Bmpanim
Clock
Conarc
Cone
Egul
Emime
Etext
Fepbase
Form
Gfxtranseffect
Grid
Numberconversion
Print
Sysstart
Uikon
Viewsrv
Application Protocols
Bookmarks
Http
Inetprotutil
Application Services
Alarmserver
Calcon
Hlpmodel
Timezonelocalization
Tz
TzConversion
Versit
Worldserver
Base
Domain
E32
E32utils
F32
Bluetooth
Btextnotifiers
Hci
Hciproxy
Manager
Profiles
Remotecontrol
Sdp
User
Communications Infrastructure
Commdb
Commsdat
Commsfw
Elements
Esock
Mbufmgr
Nifman
Rootserver
Connectivity
MTP
Securebackupengine
Content Handling
Device Provisioning
Clientprov
Devman
Graphics
Bitgdi
Fbserv
Fntstore
Gdi
Openglesdisplayproperty
Openglesheaders
Palette
Pdrstore
Screendriver
Wserv
Infra Red
Irda
J2ME
Systemamsv1 5
Location Based Services
Lbsnetworktest
Messaging
Biomsg
Email
Framework
Gmxml
Mmssettings
Multimode
OBEX
Schedulesend
Sendas2
Sms
Multimedia
Ecam
Icl
MVS
Mmcommon
Mmf
Tuner
Multimedia Protocols
Connprov
Rtp
SIP
Sip
Subconnprov
Narrow Band Protocols
Cdmasmsstack
Smsstack
Networking
Csdagt
Ether802
Inhook6
Insock
Ipsec
Ppp
Psdagt
Qoslib
Subconnprov
Telnet E
Tls
Tpcip6
Tunnelnif
OBEX
Obexextensionapis
Security
Certman
Crypto
Cryptography
Filetokens
Javamidletinstaller
Sisinstaller
Sppinst
Swi
Tlsprovider
Serial Communications
C32
Usb
SyncML
Datasync
Framework
System Libraries
Bafl
Caf2
Centralrepository
Charconv
Dbms
Ecom
Ezlib
Featreg
Logeng
Pwrcli
Schsvr
Sql
Stdlib
Store
Sysagent2
Sysagt
Xml
Telephony
Dial
Eax
Etel
Etel3rdparty
Etelcdma
Etelmm
Etelpckt
Etelsat
Fax
Phbksync
Simtsy
Tools
Cinidata
WAP Browser
Wapbase
Wappush
Wappushsupport
WAP Stack
Wapmessage
Content Organised by Document Type
Guide Documents
Guide Documents/Examples
Guide Documents/How Tos
Reference Documents
Reference Documents/C++ Reference Documents
Reference Documents/Resource Reference Documents
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
Platsec reports
Component security policies by API
AGNMODEL
ALARMSERVER
APPARC
BAFL
BITGDI
BLUETOOTH_ACCESSHOST
BLUETOOTH_MANAGER
BLUETOOTH_SDP
BLUETOOTH_USER
C32
CAF2
CALINTERIMAPI
CENTRALREPOSITORY
CERTMAN
CNTMODEL
COMMDB_SHIM
CONE
CONNECTIVITY
DBMS
DOMAIN
E32UTILS_EKA2
E32_EKA2
ECAM
ESOCK
ETEL
ETEL3RDPARTY
ETELCDMA
ETELMM
ETELPCKT
ETELSAT
F32_EKA2
FAX
FBSERV
FEPBASE
IPSECV2
IRDA
LOCATIONFRAMEWORK
LOGENGONGOING
MMF
MSG_FRAMEWORK
MSG_SMS8.1
OBEX
PHBKSYNC
ROOTSERVER
SCHSVR_ONGOING
SECURESOFTWAREINSTALL
SIP_COM
SMSSTACK
SQL
SYNCMLCLIENT
TUNER
TZ
UIKON
USB
WORLDSERVER
WSERV8.1
Component security policies by capability
AGNMODEL
ALARMSERVER
APPARC
BAFL
BITGDI
BLUETOOTH_ACCESSHOST
BLUETOOTH_MANAGER
BLUETOOTH_SDP
BLUETOOTH_USER
C32
CAF2
CALINTERIMAPI
CENTRALREPOSITORY
CERTMAN
CNTMODEL
COMMDB_SHIM
CONE
CONNECTIVITY
DBMS
DOMAIN
E32UTILS_EKA2
E32_EKA2
ECAM
ESOCK
ETEL
ETEL3RDPARTY
ETELCDMA
ETELMM
ETELPCKT
ETELSAT
F32_EKA2
FAX
FBSERV
FEPBASE
IPSECV2
IRDA
LOCATIONFRAMEWORK
LOGENGONGOING
MMF
MSG_FRAMEWORK
MSG_SMS8.1
OBEX
PHBKSYNC
ROOTSERVER
SCHSVR_ONGOING
SECURESOFTWAREINSTALL
SIP_COM
SMSSTACK
SQL
SYNCMLCLIENT
TUNER
TZ
UIKON
USB
WORLDSERVER
WSERV8.1
Security policies by capability
AllFiles
CommDD
DiskAdmin
Drm
LocalServices
Location
MultimediaDD
NetworkControl
NetworkServices
PowerMgmt
ProtServ
ReadDeviceData
ReadUserData
SwEvent
Tcb
UserEnvironment
WriteDeviceData
WriteUserData
APIs listed alphabetically
A
B
C
D
M
P
R
S
T
U
Capability assignments
Capability assignments of DLLs and EXEs
Capability assignments of EXEs
EXEs by capability
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
Database Management
Contact Views
Contact Items Management
Searching the Contact Database
Speed Dial Functionality
Change Notification
Introduction to Mapping between Symbian UIDs and vCard Properties
UIDs that Identify vCard Properties
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
Introduction
Implementing the FEP API
Floating and Fixed Windows
Simulating & Intercepting Key Events
Processing Pen Events
Synchronising FEP Instantiations
Detecting Changes in the Environment
Interacting with Text Editors
Miscellaneous
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 Alarm
Alarm Server Functionality
Alarm States
Information about Alarms
Sound Control
System Time Changes
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
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 leaves and TRAPs in destructors
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