Symbian/C++ Documentation
Areas of interest
PIM & Files/Data - S60/Symbian C++

S60 Platform: Rich Text Editor Example
This C++ code example demonstrates the usage of Rich Text Editor. Most of the features are handled automatically when the dialog framework creates the editor. However, some steps, such as inserting an image, setting the text input type, or showing the scroller require the use of methods or classes. Main classes: CEikRichTextEditor, CFbsBitmap, TPictureHeader, CPicture.

S60 Platform: FileList Example
This C++ code example demonstrates how to list files from a specific directory. It helps developers in creating user-friendly applications that allow users to choose files from a list of specific file types. Main classes: PathInfo ja CDocumentHandler.

S60 Platform: Document Handler API Developer's Guide
See this C++ document to learn how to use the Document Handler API to show different content in dedicated applications. These handler applications have been registered to be able to handle files with certain MIME types (for example, Notes can handle text format and Image Viewer can show different types of images). In the file opening process, the MIME type recognition is done using Recognizers (implemented as Ecom plugins from S60 3rd Edition onwards). Besides viewing, file operations like move and copy are used in many S60 applications. The document refers to a code example that is available at www.forum.nokia.com.

Open C: FTP Client Example
This C/C++ code example demonstrates porting standard C software to the S60 platform. In this example, an open source FTP library (ftplib and qftp; released under GNU General Public License) written in C has been ported to Open C. In addition, a simple UI has been written in Symbian C++ to provide a GUI application. A document about porting experiences and example architecture is also included in the package. The updated version adds support for the GCCE compiler and Carbide.c++ v1.2 IDE. Main Symbian C++/S60 classes: CAknSingleNumberStyleListBox, CAknSearchField, CAknTextQueryDialog, CFileMan, StringLoader. C/Open C classes: connect, socket, setsockopt.

S60 3rd Edition: Preinstalled/Preloaded Applications v1.2
Learn how to create, upgrade, and unistall preinstalled Symbian C++ applications in S60 3rd Edition. MIDlet preinstallation is also briefly discussed. The document also includes information about preloaded Symbian applications and MIDlets in S60 3rd Edition. An example launcher application is included in the package.

S60 Data Persistence eLearning
This eLearning module addresses how files are accessed through the File Server and covers how to store information using Streams. It also addresses stores in terms of what they are, the different types and store transactions, and shows how databases are used in the context of the Symbian operating system.

S60 Platform: Descriptor Example v2.0
This C++ code example demonstrates how to use descriptors (Symbian OS strings) and related APIs. The example is an S60 application that is used to run one or all example methods. The methods write a log to the screen or to a file that demonstrates the results of different statements. Main classes: TBuf, HBufC, RBuf.

S60 Platform: Bluetooth OBEX Example
This C++ code example provides a method for transferring objects or chunks of data from one device to another via Bluetooth. These chunks are typically files or other blocks of binary data. This example demonstrates how to run OBEX on top of the Bluetooth RFCOMM protocol, but OBEX can also be used with other transport media, such as IrDA and USB. In addition, the usage of a high-level messaging API, SendUI, is demonstrated. Main classes: TObexBluetoothProtocolInfo, TObexBaseObject, MObexServerNotify, CObexClient, CObexServer, CDocumentHandler, KPowerModeSettingNotifierUid, CSendUi, CSendAppUi.

S60 Platform: Document Handler Example
This C++ example demonstrates how to use the Document Handler and the Recognizer to open and handle certain file types in a dedicated application. The example consists of three components: a caller application trying to open a specific file, a recognizer (a dll component implemented as an ECom plugin from S60 3rd Edition onwards) detecting the file extension, and a document handler opening the file. Note that for the recognizer, a developer certificate is needed due to its ProtServ capability requirement. Usage of the document handler is described in the S60 Platform: Document Handler API Developer's Guide document, available at www.forum.nokia.com. Main classes: CDocumentHandler, CApaDataRecognizerType.

S60 Platform: Contacts Model API Example v2.0
This C++ example demonstrates the use of the Contacts Model API. It allows viewing contact items from the default contacts database. Each contact is shown using a custom text definition. New contacts can be imported from files that contain vCard items. A contact item can also be selected and exported to a file in the vCards format. Main classes: CContactTextDef, CContactIdArray.

S60 Platform: Time Zone Localizer Example
This C++ code example demonstrates how to convert UTC time to local time using the time zone server (RTz) and how to add/remove or find a city from the database using TZLocalizer API. These APIs were introduced in Symbian OS v.9.1 (S60 3rd Edition). In earlier releases the WorldServer API can be used for similar functions. Main classes: RTz, CTzLocalizer

S60 3rd Edition: Calendar Interim API Example
This C++ application demonstrates how to add and modify anniversary entries using the Calendar Interim API (also known as CalInterim API). The Calendar Interim API replaced the Agenda Model API in Symbian OS v9.1 (S60 3rd Edition). For S60 1st and 2nd Edition there is a separate example available on the usage of the Agenda Model. Important classes: CCalEntry, CCalEntryView, CCalInstance, CCalInstanceView, CCalAlarm, CCalSession, MCalProgressCallBack.

S60 Platform: DBMS Example v2.0
This C++ example application demonstrates the usage of Database Management System (DBMS) APIs. The example includes a bookstore database engine and a simple Avkon GUI for testing the engine. The example complements the “S60 Platform: Using DBMS APIs v2.0” document. Main classes: RDbStoreDatabase, RFs.

S60 Platform: Using DBMS APIs v2.0
This C++ document demonstrates how to use the relational database APIs available on Symbian OS. Collectively, this functionality is known as the Database Management System (DBMS) APIs. Symbian OS DBMS provides features for creating and maintaining databases, and implements reliable and secure data access to these databases via both native and SQL calls. These calls are supported by a transaction/rollback mechanism that ensures that either all data is written or none at all. The document provides a sample of code snippets from “S60 Platform: DBMS Example” to demonstrate key techniques by creating and manipulating a simple database of books. The code snippets embedded throughout the document are predominantly gathered or adapted from this example. Although the document focuses specifically on describing the support of DBMS APIs in the S60 platform, it is mostly applicable to other Symbian OS devices too.

S60 Platform: Audio Streaming Example v2.0
Audio Streaming Example demonstrates the use of Audio Streaming API that provides functionality for recording audio stream into a buffer and playback of the audio buffer. Besides playing, recording, and stopping the audio stream, the recorded audio stream can be saved into a file and further loaded to be played again. PCM and AMR-NB-encoded sample files are included in the package. Audio Streaming API is part of the Symbian Multimedia Framework (MMF) and supported from S60 2nd Edition onwards. Main classes: CMdaAudioInputStream, CMdaAudioOutputStream, MMdaAudioInputStreamCallback, MMdaAudioOutputStreamCallback.

S60 Platform: Image Converter Example v2.0
This C++ example demonstrates how to use the image conversion APIs available in the S60 platform (Image Conversion Library, ICL) to open, rotate, scale, and save the image in the same or a different format. Main classes: CBitmapRotator, CBitmapScaler, CImageEncoder, CImageDecoder.

S60 Platform: World Server Example
This C++ example demonstrates the usage of the Symbian World Server. The example has methods for retrieving city/country-related information from the world server, writing new information to it, deleting information from it, performing basic calculations supported by the world server, and resetting the world server database to the original (ROM memory) state. The World Server API is supported until Symbian OS v9.1 (S60 3rd Edition) where it is deprecated and replaced by the Time Zone Localizer API (not covered in this example).

S60 Platform: How To Enable Backup And Restore For Installed C++ Applications
In S60 3rd Edition installed applications will not be backed up by default. If you are developing C++ applications targeted for S60 3rd Edition, you will have to enable backup and restore for the application. This technical note describes how to do that.

S60 2nd Edition: FTP Example
This C++ example demonstrates the usage of the FTP (File Transfer Protocol) Service API that allows connecting to and disconnecting from a remote FTP server. The FTP library package provided within the example is required in order to use FTP. It is supported in S60 2nd Edition FP1, FP2, and FP3 devices.

S60 Platform 1st/2nd Edition: Agenda Model API Example
This C++ example demonstrates how to add and modify anniversary entries using the Agenda Model API . The Agenda Model API is supported in S60 1st and 2nd Edition. It was replaced in Symbian OS v9.1 (S60 3rd Edition) with the Calendar Interim API. Important classes: CAgnAnniv, TAgnWhichInstances, MAgnProgressCallBack. Revision on August 31, 2006: Example renamed and minor editorial changes.

Series 60 Developer Platform 1.0/2.0: Using The Phone Book Engine v1.0 (With Example)
This document outlines the capabilities of the Phone Book engine that can be utilized within an application.

Using the Series 60 Calendar APIs
This document examines the capabilities of the Calendar APIs that are available on Series 60.




