CImIAPPreferences Class Reference

class CImIAPPreferences : public CBase

Encapsulates preferences relating to IAPs for an email service.

An IAP defines all of the variable factors that determine how an Internet connection is made. These variable factors can include the bearer (CDMA, GSM or GPRS), dial-in number. network login names and passwords.

The Comms Database is capable of storing details of several IAPs, which can then be used to initiate different types of connection. The database also stores the preference order of the IAPs: this defines which IAP should be used as the first choice, and also an optional second choice to be used if the first choice is not available.

The CImIAPPreferences class associates a first choice, and optionally a second choice IAP to use with a particular email service. The preference object is stored in the service entry's message store.

For SMTP, if no object has been stored in the service, then the SMTP client will attempt to use any default Internet settings in the Comms Database, or will use the existing Internet connection if one does already exist. Note that SMTP sessions will normally fail to send any email messages if the SMTP session is not created using an IAP which the SMTP server does not accept.

Note that in Symbian OS v6.0 a single IAP was associated with an email service entry through the iMtmData1 field.

Inherits from

Constructor & Destructor Documentation



CImIAPPreferences(CImIAPPreferences &)

CImIAPPreferences(CImIAPPreferences &aOther)[private]


CImIAPPreferences & aOther




Member Functions Documentation

AddIAPL(TImIAPChoice, TInt)

IMPORT_C voidAddIAPL(TImIAPChoiceaIap,
TIntaIndex = 0

Adds the given IAP with the given preference value.

Any existing IAPs of equal or lower preference will have their preference lowered further to make way for the new IAP. For example, if an IAP of preference value 0 is already associated with the current service and another IAP of preference 0 is added, then the existing IAP will be relegated to preference value 1. Currently the number of IAPs per service is limited to two.

Leaves with KErrNotSupported if a SNAP is defined


TImIAPChoice aIapIAP
TInt aIndex = 0Preference value for this IAP



FindIAPL(TUint32, TInt &)

TInt &aLocation

Finds the preference value for a specified IAP.


TUint32 aIAPThe identifier of the IAP to find, as specified in the CommDb record for the IAP
TInt & aLocationOn return, if the specified IAP was found, its preference value


IMPORT_C TImIAPChoiceIAPPreference(TIntaPreference)const

Gets the IAP choice of the given preference value.

Note that preference values run from 0 to n, with 0 being the first choice. Currently the number of IAPs per service is limited to two.


TInt aPreferencePreference value


IMPORT_C CImIAPPreferences *NewLC()[static]

Allocates and creates a new CImIAPPreferences object, leaving the object on the cleanup stack.


IMPORT_C TIntNumberOfIAPs()const

Gets the number of IAPs that are assigned to the current service entry.


voidPanic(interr)const [private]


int err


IMPORT_C voidRemoveIAPL(TIntaPreferenceNumber)

Removes the IAP of the given preference.

Any existing IAPs of lower preference will have their preference increased to fill the gap created by the IAP that has been removed. For example, if two IAPs are associated with the current service with the preference values 0 and 1. If the IAP of preference value 0 is later removed, then the other IAP is promoted to preference value 0. It should be noted that adding or removing an IAP from a CImIAPPreferences object does not change any global IAP settings, it only changes the behaviour associated with a particular with a particular email service.


TInt aPreferenceNumberPreference value


IMPORT_C voidRemoveSNAP()

Removes the SNAP id for this Email account.

ReplaceIAPL(TInt, TImIAPChoice)

IMPORT_C voidReplaceIAPL(TIntaPreferenceNumber,

Replaces the current IAP at a specified preference value.

A panic occurs if an IAP is not already set for the preference value.


TInt aPreferenceNumberThe preference value for which to set the IAP
TImIAPChoice aIapThe new IAP value for the preference value




IMPORT_C TBoolSNAPDefined()const

Used to check if SNAP settings are defined for this Email account.


IMPORT_C TUint32SNAPPreference()const

Returns the current SNAP Id for the email account.


IMPORT_C voidSetSNAPL(TUint32aSnap)

Sets the SNAP id for the email account, to the value specified in aSnap.

Leaves with KErrNotSupported if IAP list already defined


TUint32 aSnapSpecifies the new SNAP id to be used by this email account.


IMPORT_C TIntVersion()const

Gets the version number of the preferences structure.

operator=(CImIAPPreferences &)

intoperator=(CImIAPPreferences &aOther)[private]


CImIAPPreferences & aOther

Member Enumerations Documentation

Enum anonymous


KSanityCheckOldWins = 0xEFBEADDE
KSanityCheck = 0xDEADBEEF

Member Data Documentation

const TUid KUidMsgFileInternetAccessPreferences

const TUidKUidMsgFileInternetAccessPreferences[static]

ID of the stream used to store IAP preference information in a message store.

CArrayFixFlat< TImIAPChoice > * iChoices

CArrayFixFlat< TImIAPChoice > *iChoices[private]

TUint32 iSnapId

TUint32 iSnapId[private]

TInt iVersion

TInt iVersion[private]