示例#1
0
void CPingAppUi::StorePreferencesL(const TPreferences &aPreferences)
{
    CDictionaryStore *iniFile = Application()->OpenIniFileLC(iCoeEnv->FsSession());
    RDictionaryWriteStream writeStream;
    writeStream.AssignLC(*iniFile, KUidPingApp);
    writeStream.WriteUint8L (aPreferences.iFlags);
    writeStream.WriteUint16L (aPreferences.iLastSecWait);
    writeStream.WriteUint16L (aPreferences.iPacketDataSize);
    writeStream.WriteUint16L (aPreferences.iSecWait);
    writeStream.WriteUint16L (aPreferences.iTotalPackets);
    writeStream.WriteInt16L (aPreferences.iHostname.Length());
    writeStream.WriteL (aPreferences.iHostname);
    writeStream.WriteInt16L (aPreferences.iPattern.Length());
    writeStream.WriteL (aPreferences.iPattern);
   
#ifdef IAPSETTING
	writeStream.WriteUint16L (aPreferences.iIAP);
#endif
    //.... // and whatever

    writeStream.CommitL();
    CleanupStack::PopAndDestroy(); // write stream

    // in this replace XXVersionUid with another unique UID - usually the next one up from XXUid
    writeStream.AssignLC(*iniFile, KUidPingVersionUid); // write version 1.0 (major.minor)
    writeStream.WriteInt8L(1); // major
    writeStream.WriteInt8L(0); // minor
    writeStream.CommitL(); // flush
    CleanupStack::PopAndDestroy(); // writeStream;

    // commit changes to the store
    if (iniFile->Commit()!=KErrNone)
        iniFile->RevertL();

    CleanupStack::PopAndDestroy();
}