Re-enabled smoke test for Language-setting Symbian3
authorMaciej Seroka <maciejs@symbian.org>
Tue, 03 Aug 2010 10:20:34 +0100
branchSymbian3
changeset 57 b8d18c84f71c
parent 56 aa99f2208aad
child 58 7a02f8565ef5
Re-enabled smoke test for Language-setting
Group/bld.inf
Group/smoketest.xml
localisation/apparchitecture/ServiceRegistry/ServiceRegistry.cpp
localisation/apparchitecture/apfile/APFILE.MMP
localisation/apparchitecture/apfile/APFREC.CPP
localisation/apparchitecture/apfile/APFSTD.CPP
localisation/apparchitecture/apfile/APFSTD.H
localisation/apparchitecture/apfile/APRuleBased.CPP
localisation/apparchitecture/apfile/ApLaunchChecker.cpp
localisation/apparchitecture/apfile/ApSidChecker.cpp
localisation/apparchitecture/apfile/apfmimecontentpolicy.cpp
localisation/apparchitecture/apfile/apfmimecontentpolicy.rss
localisation/apparchitecture/apfile/apinstallationmonitor.cpp
localisation/apparchitecture/apfile/apinstallationmonitor.h
localisation/apparchitecture/apfile/aprfndr.cpp
localisation/apparchitecture/apfile/aprfndr.h
localisation/apparchitecture/apfile/apuninstallmonitor.cpp
localisation/apparchitecture/apfile/apuninstallmonitor.h
localisation/apparchitecture/apfile/eshell_reg.rss
localisation/apparchitecture/apgrfx/APGAIR.CPP
localisation/apparchitecture/apgrfx/APGAIR.H
localisation/apparchitecture/apgrfx/APGAIRV2.CPP
localisation/apparchitecture/apgrfx/APGAPLST.CPP
localisation/apparchitecture/apgrfx/APGAPLSTV2.CPP
localisation/apparchitecture/apgrfx/APGCLI.CPP
localisation/apparchitecture/apgrfx/APGCTL.CPP
localisation/apparchitecture/apgrfx/APGDOOR.CPP
localisation/apparchitecture/apgrfx/APGICNFL.CPP
localisation/apparchitecture/apgrfx/APGPRIV.CPP
localisation/apparchitecture/apgrfx/APGPRIV.H
localisation/apparchitecture/apgrfx/APGRFX.MMP
localisation/apparchitecture/apgrfx/APGSTD.CPP
localisation/apparchitecture/apgrfx/APGSTD.H
localisation/apparchitecture/apgrfx/APGTASK.CPP
localisation/apparchitecture/apgrfx/APGWGNAM.CPP
localisation/apparchitecture/apgrfx/APSCLI.CPP
localisation/apparchitecture/apgrfx/apgconstdata.cpp
localisation/apparchitecture/apgrfx/apgnotif.cpp
localisation/apparchitecture/apgrfx/apgrecog.cpp
localisation/apparchitecture/apgrfx/apgstart.cpp
localisation/apparchitecture/apgrfx/apprivate.h
localisation/apparchitecture/apgrfx/apsecutils.cpp
localisation/apparchitecture/apgrfx/apsecutils.h
localisation/apparchitecture/apgrfx/apsecutils.inl
localisation/apparchitecture/aplist/aplappinforeader.cpp
localisation/apparchitecture/aplist/aplappinforeader.h
localisation/apparchitecture/aplist/aplapplist.cpp
localisation/apparchitecture/aplist/aplapplist.h
localisation/apparchitecture/aplist/aplapplistitem.cpp
localisation/apparchitecture/aplist/aplapplistitem.h
localisation/apparchitecture/aplist/aplappregfinder.cpp
localisation/apparchitecture/aplist/aplappregfinder.h
localisation/apparchitecture/aplist/apsiconcaptionoverride.cpp
localisation/apparchitecture/aplist/apsiconcaptionoverride.h
localisation/apparchitecture/aplist/apsidchecker.cpp
localisation/apparchitecture/apparc/APACMDLN.CPP
localisation/apparchitecture/apparc/APADBASE.CPP
localisation/apparchitecture/apparc/APADLL.H
localisation/apparchitecture/apparc/APAFLREC.CPP
localisation/apparchitecture/apparc/APAID.CPP
localisation/apparchitecture/apparc/APAMDR.CPP
localisation/apparchitecture/apparc/APASTD.CPP
localisation/apparchitecture/apparc/APASTD.H
localisation/apparchitecture/apparc/APPARC.CPP
localisation/apparchitecture/apparc/APPARC.MMP
localisation/apparchitecture/apparc/ApaAppClient.cpp
localisation/apparchitecture/apparc/ApaAppServer.cpp
localisation/apparchitecture/apparc/ApaServerAppPriv.h
localisation/apparchitecture/apparc/TRACE.H
localisation/apparchitecture/apparc/apaapp.cpp
localisation/apparchitecture/apparc/apadoc.cpp
localisation/apparchitecture/apparc/apaproc.cpp
localisation/apparchitecture/apserv/APSCLSV.H
localisation/apparchitecture/apserv/APSCONSTDATA.CPP
localisation/apparchitecture/apserv/APSERV.MMP
localisation/apparchitecture/apserv/APSRECCACHE.cpp
localisation/apparchitecture/apserv/APSRECCACHE.h
localisation/apparchitecture/apserv/APSRECUTIL.CPP
localisation/apparchitecture/apserv/APSRECUTIL.H
localisation/apparchitecture/apserv/APSSCAN.CPP
localisation/apparchitecture/apserv/APSSERV.CPP
localisation/apparchitecture/apserv/APSSES.CPP
localisation/apparchitecture/apserv/APSSES.H
localisation/apparchitecture/apserv/APSSTART.CPP
localisation/apparchitecture/apserv/APSSTD.CPP
localisation/apparchitecture/apserv/APSSTD.H
localisation/apparchitecture/apserv/apsiconcaptionoverride.cpp
localisation/apparchitecture/apserv/apsiconcaptionoverride.h
localisation/apparchitecture/apserv/apsnnapps.cpp
localisation/apparchitecture/apserv/apsnnapps.h
localisation/apparchitecture/apserv/apsnnappupdates.cpp
localisation/apparchitecture/apserv/apsnnappupdates.h
localisation/apparchitecture/apserv/apsserv.h
localisation/apparchitecture/apsexe/APSEXE.MMP
localisation/apparchitecture/apsexe/APSMAIN.CPP
localisation/apparchitecture/apstart/apstart.cpp
localisation/apparchitecture/apstart/apstart.h
localisation/apparchitecture/apstart/apstart.mmp
localisation/apparchitecture/apstart/apststd.cpp
localisation/apparchitecture/apstart/apststd.h
localisation/apparchitecture/bwins/APFILEU.DEF
localisation/apparchitecture/bwins/APFILE_9_REMOVE_UI_FRAMEWORKS_V1U.DEF
localisation/apparchitecture/bwins/APFILE_UI_FRAMEWORKSU.DEF
localisation/apparchitecture/bwins/APGRFXU.DEF
localisation/apparchitecture/bwins/APGRFX_9_REMOVE_UI_FRAMEWORKS_V1U.DEF
localisation/apparchitecture/bwins/APGRFX_9_REMOVE_UI_FRAMEWORKS_V1_EXCEPT_REMNANT_FOR_JAVA_MIDLET_INSTALLERU.DEF
localisation/apparchitecture/bwins/APGRFX_UI_FRAMEWORKSU.DEF
localisation/apparchitecture/bwins/APPARCU.DEF
localisation/apparchitecture/bwins/APPARC_9_REMOVE_UI_FRAMEWORKS_V1U.DEF
localisation/apparchitecture/bwins/APSERVU.DEF
localisation/apparchitecture/bwins/TICONFORLEAKSu.DEF
localisation/apparchitecture/bwins/aplistu.def
localisation/apparchitecture/conf/apparchitecture.confml
localisation/apparchitecture/conf/apparchitecture_1028583d.crml
localisation/apparchitecture/conf/apparchitecture_closedcontentextinfo.confml
localisation/apparchitecture/conf/apparchitecture_closedcontentextinfo_10003a3f.crml
localisation/apparchitecture/eabi/APFILEU.DEF
localisation/apparchitecture/eabi/APFILE_9_REMOVE_UI_FRAMEWORKS_V1U.DEF
localisation/apparchitecture/eabi/APFILE_UI_FRAMEWORKSU.DEF
localisation/apparchitecture/eabi/APGRFXU.DEF
localisation/apparchitecture/eabi/APGRFX_9_REMOVE_UI_FRAMEWORKS_V1U.DEF
localisation/apparchitecture/eabi/APGRFX_9_REMOVE_UI_FRAMEWORKS_V1_EXCEPT_REMNANT_FOR_JAVA_MIDLET_INSTALLERU.DEF
localisation/apparchitecture/eabi/APGRFX_UI_FRAMEWORKSU.DEF
localisation/apparchitecture/eabi/APPARCU.DEF
localisation/apparchitecture/eabi/APPARC_9_REMOVE_UI_FRAMEWORKS_V1U.DEF
localisation/apparchitecture/eabi/APSERVU.DEF
localisation/apparchitecture/eabi/TICONFORLEAKSu.DEF
localisation/apparchitecture/eabi/aplistu.def
localisation/apparchitecture/group/APFILE.MMP
localisation/apparchitecture/group/APGRFX.MMP
localisation/apparchitecture/group/APLIST.MMP
localisation/apparchitecture/group/APPARC.MMP
localisation/apparchitecture/group/APSERV.MMP
localisation/apparchitecture/group/APSEXE.MMP
localisation/apparchitecture/group/BLD.INF
localisation/apparchitecture/group/ExeMove.mk
localisation/apparchitecture/group/RELEASE.TXT
localisation/apparchitecture/group/ServiceRegistry.mmp
localisation/apparchitecture/group/Smoketest_AppArchitecture.iby
localisation/apparchitecture/group/app-framework_apparc.history.xml
localisation/apparchitecture/group/app-framework_apparc.mrp
localisation/apparchitecture/group/apparc.iby
localisation/apparchitecture/group/apparcTest.iby
localisation/apparchitecture/group/backup_registration.xml
localisation/apparchitecture/inc/AIFTOOL.RH
localisation/apparchitecture/inc/APACLN.H
localisation/apparchitecture/inc/APACMDLN.H
localisation/apparchitecture/inc/APADBASE.H
localisation/apparchitecture/inc/APADEF.H
localisation/apparchitecture/inc/APAFLREC.H
localisation/apparchitecture/inc/APAID.H
localisation/apparchitecture/inc/APAMDR.H
localisation/apparchitecture/inc/APASVST.H
localisation/apparchitecture/inc/APFCTLF.H
localisation/apparchitecture/inc/APFDEF.H
localisation/apparchitecture/inc/APFFNDR.H
localisation/apparchitecture/inc/APFREC.H
localisation/apparchitecture/inc/APGAPLST.H
localisation/apparchitecture/inc/APGCLI.H
localisation/apparchitecture/inc/APGCTL.H
localisation/apparchitecture/inc/APGDOOR.H
localisation/apparchitecture/inc/APGICNFL.H
localisation/apparchitecture/inc/APGTASK.H
localisation/apparchitecture/inc/APGWGNAM.H
localisation/apparchitecture/inc/APPARC.H
localisation/apparchitecture/inc/APRuleBased.h
localisation/apparchitecture/inc/APSSCAN.H
localisation/apparchitecture/inc/APSSERV.H
localisation/apparchitecture/inc/ApLaunchChecker.h
localisation/apparchitecture/inc/ApSidChecker.h
localisation/apparchitecture/inc/ApaServerApp.h
localisation/apparchitecture/inc/Apcaptionfile.rh
localisation/apparchitecture/inc/AppInfo.rh
localisation/apparchitecture/inc/ServiceRegistry.h
localisation/apparchitecture/inc/apaapp.h
localisation/apparchitecture/inc/apadoc.h
localisation/apparchitecture/inc/apaidpartner.h
localisation/apparchitecture/inc/apainternal.h
localisation/apparchitecture/inc/apaproc.h
localisation/apparchitecture/inc/apfmimecontentpolicy.h
localisation/apparchitecture/inc/apgctllist.h
localisation/apparchitecture/inc/apgicnflpartner.h
localisation/apparchitecture/inc/apgnotif.h
localisation/apparchitecture/inc/apsidcheckermap.h
localisation/apparchitecture/tdata/102081ce_reg.rsc
localisation/apparchitecture/tdata/102081cf_reg.rsc
localisation/apparchitecture/tdata/1028583d.txt
localisation/apparchitecture/tdata/AAA_reg.Rsc
localisation/apparchitecture/tdata/CONTACT.NNA3
localisation/apparchitecture/tdata/Corrupted_reg.RSC
localisation/apparchitecture/tdata/FileWithUnknownMimeType.UnrecognisableExtention
localisation/apparchitecture/tdata/GIF.NNA1
localisation/apparchitecture/tdata/HTML.NNA2
localisation/apparchitecture/tdata/TApsRecogAppTest.mmr
localisation/apparchitecture/tdata/TRApaLsSessionStartAppTest.tst
localisation/apparchitecture/tdata/TSTAPPU.DOC
localisation/apparchitecture/tdata/TXT.NNA4
localisation/apparchitecture/tdata/UpdatedAppsList.bin
localisation/apparchitecture/tdata/file1.txt
localisation/apparchitecture/tdata/file2.txt
localisation/apparchitecture/tdata/mimecontentpolicy/fl_goo.dm
localisation/apparchitecture/tdata/mimecontentpolicy/gif_wallpaper.gif
localisation/apparchitecture/tdata/mimecontentpolicy/jpeg_wes.dm
localisation/apparchitecture/tdata/mimecontentpolicy/propelli.jpg
localisation/apparchitecture/tdata/mimecontentpolicy/sd_goo.dcf
localisation/apparchitecture/tdata/mimecontentpolicy/type-r.jpg
localisation/apparchitecture/tdata/one_byte.txt
localisation/apparchitecture/tdata/recmime_1.rsc
localisation/apparchitecture/tdata/recmime_armv5.dll
localisation/apparchitecture/tdata/recmime_winscw.dll
localisation/apparchitecture/tdata/recupgrade.rsc
localisation/apparchitecture/tdata/recupgrade_armv5_rel.dll
localisation/apparchitecture/tdata/sdk.txt
localisation/apparchitecture/tdata/tapsrecogupgradetest.upg
localisation/apparchitecture/tdata/testfile1.txt
localisation/apparchitecture/tdata/testfile2.txt
localisation/apparchitecture/tdata/testfile3.txt
localisation/apparchitecture/tdata/testfile4.txt
localisation/apparchitecture/tdata/testupdregappuninstallation_reg.rsc
localisation/apparchitecture/tdata/zero_len.txt
localisation/apparchitecture/tdatasrc/Thumbs.db
localisation/apparchitecture/tef/10000180.rss
localisation/apparchitecture/tef/10000181.rss
localisation/apparchitecture/tef/10000182.rss
localisation/apparchitecture/tef/10004c4e.rss
localisation/apparchitecture/tef/10004c5B.rss
localisation/apparchitecture/tef/10004c5C.rss
localisation/apparchitecture/tef/10004c5D.rss
localisation/apparchitecture/tef/10004c5E.rss
localisation/apparchitecture/tef/10004c66.rss
localisation/apparchitecture/tef/102032A5.rss
localisation/apparchitecture/tef/1020d465.rss
localisation/apparchitecture/tef/102722ba.rss
localisation/apparchitecture/tef/A0000B70.rss
localisation/apparchitecture/tef/AppInfo_NoLocalisableGroupName.rh
localisation/apparchitecture/tef/App_CTRL.hrh
localisation/apparchitecture/tef/App_CTRL.rss
localisation/apparchitecture/tef/App_CTRL2.hrh
localisation/apparchitecture/tef/App_CTRL2.rss
localisation/apparchitecture/tef/App_CTRL2_reg.rss
localisation/apparchitecture/tef/App_CTRL_reg.rss
localisation/apparchitecture/tef/App_ctrl_loc.RSS
localisation/apparchitecture/tef/ChildI.hrh
localisation/apparchitecture/tef/ChildI.mmp
localisation/apparchitecture/tef/ChildI.rss
localisation/apparchitecture/tef/ChildII.hrh
localisation/apparchitecture/tef/ChildII.mmp
localisation/apparchitecture/tef/ChildII.rss
localisation/apparchitecture/tef/ChildIII.hrh
localisation/apparchitecture/tef/ChildIII.mmp
localisation/apparchitecture/tef/ChildIII.rss
localisation/apparchitecture/tef/ChildIII_Main.cpp
localisation/apparchitecture/tef/ChildIII_reg.rss
localisation/apparchitecture/tef/ChildII_Main.cpp
localisation/apparchitecture/tef/ChildII_reg.rss
localisation/apparchitecture/tef/ChildI_Main.cpp
localisation/apparchitecture/tef/ChildI_reg.rss
localisation/apparchitecture/tef/CustomiseDefaultIconApp_loc.RSS
localisation/apparchitecture/tef/CustomiseDefaultIconApp_reg.RSS
localisation/apparchitecture/tef/M_CTRL.hrh
localisation/apparchitecture/tef/M_CTRL.rss
localisation/apparchitecture/tef/M_CTRL_V2.CPP
localisation/apparchitecture/tef/M_CTRL_loc.RSS
localisation/apparchitecture/tef/M_CTRL_reg.rss
localisation/apparchitecture/tef/ParentProcess.hrh
localisation/apparchitecture/tef/ParentProcess.mmp
localisation/apparchitecture/tef/ParentProcess.rss
localisation/apparchitecture/tef/ParentProcess_Main.cpp
localisation/apparchitecture/tef/ParentProcess_reg.rss
localisation/apparchitecture/tef/SimpleApparcTestApp.cpp
localisation/apparchitecture/tef/SimpleApparcTestApp.hrh
localisation/apparchitecture/tef/SimpleApparcTestApp.mmp
localisation/apparchitecture/tef/SimpleApparcTestApp.rss
localisation/apparchitecture/tef/SimpleApparcTestApp_Reg.RSS
localisation/apparchitecture/tef/TAppEmbedUids.h
localisation/apparchitecture/tef/TAppEmbeddable.cpp
localisation/apparchitecture/tef/TAppEmbeddableOnly.cpp
localisation/apparchitecture/tef/TAppEmbeddableOnly_reg.rss
localisation/apparchitecture/tef/TAppEmbeddableOnly_v2.mmp
localisation/apparchitecture/tef/TAppEmbeddableUiNotStandAlone.cpp
localisation/apparchitecture/tef/TAppEmbeddableUiNotStandAlone_reg.rss
localisation/apparchitecture/tef/TAppEmbeddableUiNotStandAlone_v2.mmp
localisation/apparchitecture/tef/TAppEmbeddableUiOrStandAlone.cpp
localisation/apparchitecture/tef/TAppEmbeddableUiOrStandAlone_embedded.mmp
localisation/apparchitecture/tef/TAppEmbeddableUiOrStandAlone_reg.rss
localisation/apparchitecture/tef/TAppEmbeddableUiOrStandalone_standalone.cpp
localisation/apparchitecture/tef/TAppEmbeddableUiOrStandalone_standalone.mmp
localisation/apparchitecture/tef/TAppEmbeddable_embedded.mmp
localisation/apparchitecture/tef/TAppEmbeddable_reg.rss
localisation/apparchitecture/tef/TAppEmbeddable_standalone.cpp
localisation/apparchitecture/tef/TAppEmbeddable_standalone.mmp
localisation/apparchitecture/tef/TAppInstall/TestAppInstall.cpp
localisation/apparchitecture/tef/TAppInstall/TestAppInstall.h
localisation/apparchitecture/tef/TAppInstall/TestAppInstall.hrh
localisation/apparchitecture/tef/TAppInstall/TestAppInstall.mmp
localisation/apparchitecture/tef/TAppInstall/TestAppInstall.rss
localisation/apparchitecture/tef/TAppInstall/TestAppInstall_reg.rss
localisation/apparchitecture/tef/TAppLaunchChecker.mmp
localisation/apparchitecture/tef/TAppLaunchChecker2.mmp
localisation/apparchitecture/tef/TAppNotEmbeddable.cpp
localisation/apparchitecture/tef/TAppNotEmbeddable_reg.rss
localisation/apparchitecture/tef/TAppNotEmbeddable_v2.mmp
localisation/apparchitecture/tef/TApparcTestApp.cpp
localisation/apparchitecture/tef/TApparcTestApp.mmp
localisation/apparchitecture/tef/TApparcTestApp.rss
localisation/apparchitecture/tef/TApparcTestApp_reg.rss
localisation/apparchitecture/tef/TBufferOnlyRec/10207f88.rss
localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRec.cpp
localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRec.h
localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRec.mmp
localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRecUid.hrh
localisation/apparchitecture/tef/TCmdLineExe.CPP
localisation/apparchitecture/tef/TCmdLineExe.mmp
localisation/apparchitecture/tef/TCtrlPnlApp_reg.rss
localisation/apparchitecture/tef/TDoNothingFileRecognizer.cpp
localisation/apparchitecture/tef/TDoNothingFileRecognizer_v2.mmp
localisation/apparchitecture/tef/TESTREC/102032A5.rss
localisation/apparchitecture/tef/TESTREC/TESTREC.CPP
localisation/apparchitecture/tef/TESTREC/TESTREC.H
localisation/apparchitecture/tef/TESTREC/TESTREC.MMP
localisation/apparchitecture/tef/TEXE.CPP
localisation/apparchitecture/tef/TEXE_V2.MMP
localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.cpp
localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.h
localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.mmp
localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.rss
localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestAppExternalInterface.h
localisation/apparchitecture/tef/TEndTaskTestApp/EndTask_reg.rss
localisation/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.cpp
localisation/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.h
localisation/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.mmp
localisation/apparchitecture/tef/TLongUrlRecognizer.cpp
localisation/apparchitecture/tef/TLongUrlRecognizer_v2.mmp
localisation/apparchitecture/tef/TMimeRec/102822B7.rss
localisation/apparchitecture/tef/TMimeRec/constants.h
localisation/apparchitecture/tef/TMimeRec/constants.hrh
localisation/apparchitecture/tef/TMimeRec/recmime.CPP
localisation/apparchitecture/tef/TMimeRec/recmime.H
localisation/apparchitecture/tef/TMimeRec/recmime.MMP
localisation/apparchitecture/tef/TMimeRec1/A00025DD.rss
localisation/apparchitecture/tef/TMimeRec1/recmime_1.CPP
localisation/apparchitecture/tef/TMimeRec1/recmime_1.H
localisation/apparchitecture/tef/TMimeRec1/recmime_1.MMP
localisation/apparchitecture/tef/TNonNative/10207f95.rss
localisation/apparchitecture/tef/TNonNative/TNNApp1.cpp
localisation/apparchitecture/tef/TNonNative/TNNApp1.h
localisation/apparchitecture/tef/TNonNative/TNNApp1.mmp
localisation/apparchitecture/tef/TNonNative/TNNApp1_reg.rss
localisation/apparchitecture/tef/TNonNative/TNNApp2.cpp
localisation/apparchitecture/tef/TNonNative/TNNApp2.mmp
localisation/apparchitecture/tef/TNonNative/TNNApp2_reg.rss
localisation/apparchitecture/tef/TNonNative/TNonNativeRec.cpp
localisation/apparchitecture/tef/TNonNative/TNonNativeRec.mmp
localisation/apparchitecture/tef/TNonNativeAppLaunchChecker.cpp
localisation/apparchitecture/tef/TNonNativeAppLaunchChecker.h
localisation/apparchitecture/tef/TNonNativeAppLaunchChecker.mmp
localisation/apparchitecture/tef/TRApaLsSessionStartAppTest.h
localisation/apparchitecture/tef/TRApaLsSessionStartAppTestApp.cpp
localisation/apparchitecture/tef/TRApaLsSessionStartAppTestApp_reg.rss
localisation/apparchitecture/tef/TRApaLsSessionStartAppTestApp_v2.mmp
localisation/apparchitecture/tef/TRApaLsSessionStartAppTestRecognizer.cpp
localisation/apparchitecture/tef/TRApaLsSessionStartAppTestRecognizer_v2.mmp
localisation/apparchitecture/tef/TRApaLsSessionTestUids.h
localisation/apparchitecture/tef/TRecUpgrade_1/A000B461.rss
localisation/apparchitecture/tef/TRecUpgrade_1/recupgrade_1.MMP
localisation/apparchitecture/tef/TRecUpgrade_1/recupgrade_1.cpp
localisation/apparchitecture/tef/TRecUpgrade_2/A000B461.rss
localisation/apparchitecture/tef/TRecUpgrade_2/recupgrade_2.cpp
localisation/apparchitecture/tef/TRecUpgrade_2/recupgrade_2.mmp
localisation/apparchitecture/tef/TSTAPP.CPP
localisation/apparchitecture/tef/TSTAPP.H
localisation/apparchitecture/tef/TSTAPP.hrh
localisation/apparchitecture/tef/TSTAPP.rss
localisation/apparchitecture/tef/TSTAPP_embedded.MMP
localisation/apparchitecture/tef/TSTAPP_standalone.CPP
localisation/apparchitecture/tef/TSTAPP_standalone.MMP
localisation/apparchitecture/tef/TSidChecker/10281FDF.rss
localisation/apparchitecture/tef/TSidChecker/TestSidChecker.cpp
localisation/apparchitecture/tef/TSidChecker/TestSidChecker.h
localisation/apparchitecture/tef/TSidChecker/TestSidChecker.mmp
localisation/apparchitecture/tef/TStartDoc.h
localisation/apparchitecture/tef/TStartDocApp.cpp
localisation/apparchitecture/tef/TStartDocApp_reg.rss
localisation/apparchitecture/tef/TStartDocApp_v2.mmp
localisation/apparchitecture/tef/TTestEcomFileRec.cpp
localisation/apparchitecture/tef/TTestEcomFileRec.mmp
localisation/apparchitecture/tef/TWindowChaining.h
localisation/apparchitecture/tef/T_AppList.cpp
localisation/apparchitecture/tef/T_AppList.h
localisation/apparchitecture/tef/T_AppListFileBootStep.cpp
localisation/apparchitecture/tef/T_AppListFileBootStep.h
localisation/apparchitecture/tef/T_AppListFileUpdateStep.cpp
localisation/apparchitecture/tef/T_AppListFileUpdateStep.h
localisation/apparchitecture/tef/T_ApsScan.cpp
localisation/apparchitecture/tef/T_ApsScan.h
localisation/apparchitecture/tef/T_AutoMMCReaderOpen.cpp
localisation/apparchitecture/tef/T_AutoMMCReaderOpen.h
localisation/apparchitecture/tef/T_BackupStep.cpp
localisation/apparchitecture/tef/T_BackupStep.h
localisation/apparchitecture/tef/T_Capability1.cpp
localisation/apparchitecture/tef/T_Capability1.h
localisation/apparchitecture/tef/T_Capability2.cpp
localisation/apparchitecture/tef/T_Capability2.h
localisation/apparchitecture/tef/T_CaptionStep.cpp
localisation/apparchitecture/tef/T_CaptionStep.h
localisation/apparchitecture/tef/T_CmdlnStep.CPP
localisation/apparchitecture/tef/T_CmdlnStep.h
localisation/apparchitecture/tef/T_ControlPanelTest.cpp
localisation/apparchitecture/tef/T_ControlPanelTest.h
localisation/apparchitecture/tef/T_DataMappingPersistenceA.cpp
localisation/apparchitecture/tef/T_DataMappingPersistenceA.h
localisation/apparchitecture/tef/T_DataMappingPersistenceB.cpp
localisation/apparchitecture/tef/T_DataMappingPersistenceB.h
localisation/apparchitecture/tef/T_DataMappingPersistenceC.cpp
localisation/apparchitecture/tef/T_DataMappingPersistenceC.h
localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1.CPP
localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1.MMP
localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1_loc.rss
localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1_reg.rss
localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2.CPP
localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2.MMP
localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2_loc.rss
localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2_reg.rss
localisation/apparchitecture/tef/T_DataPrioritySystem3_reg.rss
localisation/apparchitecture/tef/T_DataTypeMappingWithSid1.cpp
localisation/apparchitecture/tef/T_DataTypeMappingWithSid1.h
localisation/apparchitecture/tef/T_EndTaskStep.cpp
localisation/apparchitecture/tef/T_EndTaskStep.h
localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots.CPP
localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots.H
localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots.MMP
localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots_loc.rss
localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots_reg.rss
localisation/apparchitecture/tef/T_ExeStep.CPP
localisation/apparchitecture/tef/T_ExeStep.h
localisation/apparchitecture/tef/T_File1Step.cpp
localisation/apparchitecture/tef/T_File1Step.h
localisation/apparchitecture/tef/T_File2Step.cpp
localisation/apparchitecture/tef/T_File2Step.h
localisation/apparchitecture/tef/T_File3Step.cpp
localisation/apparchitecture/tef/T_File3Step.h
localisation/apparchitecture/tef/T_Foreground.cpp
localisation/apparchitecture/tef/T_Foreground.h
localisation/apparchitecture/tef/T_IntegritySupportRebootStep.cpp
localisation/apparchitecture/tef/T_IntegritySupportRebootStep.h
localisation/apparchitecture/tef/T_IntegritySupportStep.cpp
localisation/apparchitecture/tef/T_IntegritySupportStep.h
localisation/apparchitecture/tef/T_LocaleStep.cpp
localisation/apparchitecture/tef/T_LocaleStep.h
localisation/apparchitecture/tef/T_MRUStep.CPP
localisation/apparchitecture/tef/T_MdrStep.cpp
localisation/apparchitecture/tef/T_MdrStep.h
localisation/apparchitecture/tef/T_MruStep.h
localisation/apparchitecture/tef/T_NonNativeAppsStep.cpp
localisation/apparchitecture/tef/T_NonNativeAppsStep.h
localisation/apparchitecture/tef/T_NotifStep.cpp
localisation/apparchitecture/tef/T_NotifStep.h
localisation/apparchitecture/tef/T_OOMStep.cpp
localisation/apparchitecture/tef/T_OOMStep.h
localisation/apparchitecture/tef/T_ProStep.cpp
localisation/apparchitecture/tef/T_ProStep.h
localisation/apparchitecture/tef/T_ProcStep.cpp
localisation/apparchitecture/tef/T_ProcStep.h
localisation/apparchitecture/tef/T_RApaLsSessionStep.cpp
localisation/apparchitecture/tef/T_RApaLsSessionStep.h
localisation/apparchitecture/tef/T_RecUpgrade.cpp
localisation/apparchitecture/tef/T_RecUpgrade.h
localisation/apparchitecture/tef/T_RuleBasedLaunchingStep.cpp
localisation/apparchitecture/tef/T_RuleBasedLaunchingStep.h
localisation/apparchitecture/tef/T_Serv2Step.CPP
localisation/apparchitecture/tef/T_Serv2Step.h
localisation/apparchitecture/tef/T_Serv3Step.cpp
localisation/apparchitecture/tef/T_Serv3Step.h
localisation/apparchitecture/tef/T_ServiceRegistryStep.cpp
localisation/apparchitecture/tef/T_ServiceRegistryStep.h
localisation/apparchitecture/tef/T_ServicesStep.cpp
localisation/apparchitecture/tef/T_ServicesStep.h
localisation/apparchitecture/tef/T_StartAppStep.cpp
localisation/apparchitecture/tef/T_StartAppStep.h
localisation/apparchitecture/tef/T_StartDocStep.CPP
localisation/apparchitecture/tef/T_StartDocStep.h
localisation/apparchitecture/tef/T_SysStartApparcStep.cpp
localisation/apparchitecture/tef/T_SysStartApparcStep.h
localisation/apparchitecture/tef/T_WgnamStep.CPP
localisation/apparchitecture/tef/T_WgnamStep.h
localisation/apparchitecture/tef/T_WindowChainingStep.CPP
localisation/apparchitecture/tef/T_WindowChainingStep.h
localisation/apparchitecture/tef/T_groupNametest.cpp
localisation/apparchitecture/tef/T_groupNametest.h
localisation/apparchitecture/tef/T_groupNametest_ver1.cpp
localisation/apparchitecture/tef/T_groupNametest_ver1.h
localisation/apparchitecture/tef/T_groupNametest_ver2.cpp
localisation/apparchitecture/tef/T_groupNametest_ver2.h
localisation/apparchitecture/tef/T_groupname_loc.rss
localisation/apparchitecture/tef/T_groupname_reg.rss
localisation/apparchitecture/tef/T_groupnamever1_loc.rss
localisation/apparchitecture/tef/T_groupnamever1_reg.rss
localisation/apparchitecture/tef/T_groupnamever2_loc.rss
localisation/apparchitecture/tef/T_groupnamever2_reg.rss
localisation/apparchitecture/tef/TestTrustedPriorityApp1_reg.rss
localisation/apparchitecture/tef/TestTrustedPriorityApp2_reg.rss
localisation/apparchitecture/tef/TestUnTrustedPriorityApp1_reg.rss
localisation/apparchitecture/tef/TestUnTrustedPriorityApp2_reg.rss
localisation/apparchitecture/tef/UnProctectedUidApp.cpp
localisation/apparchitecture/tef/UnProctectedUidApp.mmp
localisation/apparchitecture/tef/UnProctectedUidApp.rss
localisation/apparchitecture/tef/UnProctectedUidApp_reg.rss
localisation/apparchitecture/tef/app_CTRL.CPP
localisation/apparchitecture/tef/app_CTRL.MMP
localisation/apparchitecture/tef/app_CTRL2.CPP
localisation/apparchitecture/tef/app_CTRL2.MMP
localisation/apparchitecture/tef/apparctestserver.MMP
localisation/apparchitecture/tef/apparctestserver.cpp
localisation/apparchitecture/tef/apparctestserver.h
localisation/apparchitecture/tef/m_ctrl_v2.mmp
localisation/apparchitecture/tef/openservice1a.rss
localisation/apparchitecture/tef/openservice1b.rss
localisation/apparchitecture/tef/scripts/apparctest_T_Caption.script
localisation/apparchitecture/tef/scripts/setup_smoketest_language.script
localisation/apparchitecture/tef/scripts/smoketest_language.script
localisation/apparchitecture/tef/serverapp2_reg.RSS
localisation/apparchitecture/tef/serverapp3_reg.RSS
localisation/apparchitecture/tef/serverapp4_reg.RSS
localisation/apparchitecture/tef/serverapp6_reg.RSS
localisation/apparchitecture/tef/serverapp7_reg.RSS
localisation/apparchitecture/tef/serverapp_loc.RSS
localisation/apparchitecture/tef/serverapp_reg.rss
localisation/apparchitecture/tef/tAppLaunchChecker.cpp
localisation/apparchitecture/tef/tAppLaunchChecker.h
localisation/apparchitecture/tef/tAppLaunchChecker2.cpp
localisation/apparchitecture/tef/tAppLaunchChecker2.h
localisation/apparchitecture/tef/tRuleBasedApps/RuleBasedUID.H
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp.hrh
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.cpp
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.mmp
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.rss
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1_reg.rss
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.cpp
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.mmp
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.rss
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2_reg.rss
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.cpp
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.mmp
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.rss
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3_reg.rss
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.cpp
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.mmp
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.rss
localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4_reg.rss
localisation/apparchitecture/tef/t_abstractnonnativeappsstep.cpp
localisation/apparchitecture/tef/t_abstractnonnativeappsstep.h
localisation/apparchitecture/tef/t_drivenotification.cpp
localisation/apparchitecture/tef/t_drivenotification.h
localisation/apparchitecture/tef/t_largestackstep.cpp
localisation/apparchitecture/tef/t_largestackstep.h
localisation/apparchitecture/tef/t_mimecontentpolicystep.cpp
localisation/apparchitecture/tef/t_mimecontentpolicystep.h
localisation/apparchitecture/tef/t_rapalssessionstep.rss
localisation/apparchitecture/tef/t_servicebasestep.cpp
localisation/apparchitecture/tef/t_servicebasestep.h
localisation/apparchitecture/tef/t_winchainChild.h
localisation/apparchitecture/tef/t_winchainChild.mmp
localisation/apparchitecture/tef/t_winchainChild_Application.cpp
localisation/apparchitecture/tef/t_winchainChild_reg.rss
localisation/apparchitecture/tef/t_winchainLaunch.h
localisation/apparchitecture/tef/t_winchainLaunch.mmp
localisation/apparchitecture/tef/t_winchainLaunch_Application.cpp
localisation/apparchitecture/tef/t_winchainLaunch_reg.rss
localisation/apparchitecture/tef/tapparctestapp_loc.rss
localisation/apparchitecture/tef/testableapalssession.cpp
localisation/apparchitecture/tef/testableapalssession.h
localisation/apparchitecture/tef/testapp/testforceregistrationapp1/testforceregistrationapp1.cpp
localisation/apparchitecture/tef/testapp/testforceregistrationapp1/testforceregistrationapp1.mmp
localisation/apparchitecture/tef/testapp/testforceregistrationapp1/testforceregistrationapp1_loc.rss
localisation/apparchitecture/tef/testapp/testforceregistrationapp1/testforceregistrationapp1_reg.rss
localisation/apparchitecture/tef/testapp/testupdregappuninstallation/testupdregappuninstallation.cpp
localisation/apparchitecture/tef/testapp/testupdregappuninstallation/testupdregappuninstallation.mmp
localisation/apparchitecture/tef/testapp/testupdregappuninstallation/testupdregappuninstallation_reg.rss
localisation/apparchitecture/tef/testapp/testupgradeupdregappuninstallation/testupgradeupdregappuninstallation.cpp
localisation/apparchitecture/tef/testapp/testupgradeupdregappuninstallation/testupgradeupdregappuninstallation.mmp
localisation/apparchitecture/tef/testapp/testupgradeupdregappuninstallation/testupgradeupdregappuninstallation_reg.rss
localisation/apparchitecture/tef/ticoncaptionoverride.cpp
localisation/apparchitecture/tef/ticoncaptionoverride.h
localisation/apparchitecture/tef/ticoncaptionoverride.mmp
localisation/apparchitecture/tef/ticoncaptionoverride.rss
localisation/apparchitecture/tef/ticoncaptionoverride01.rls
localisation/apparchitecture/tef/ticoncaptionoverride02.rls
localisation/apparchitecture/tef/ticoncaptionoverride03.rls
localisation/apparchitecture/tef/ticoncaptionoverride_loc.rss
localisation/apparchitecture/tef/ticoncaptionoverride_reg.rss
localisation/apparchitecture/tef/ticoncaptionoverridesc.rls
localisation/apparchitecture/tef/tlargestack/tlargestackapp.h
localisation/apparchitecture/tef/tlargestack/tlargestackapp.hrh
localisation/apparchitecture/tef/tlargestack/tlargestackapp.mmp
localisation/apparchitecture/tef/tlargestack/tlargestackapp.rss
localisation/apparchitecture/tef/tlargestack/tlargestackapp_main.cpp
localisation/apparchitecture/tef/tlargestack/tlargestackapp_reg.rss
localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.cpp
localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.h
localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.mmp
localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.rss
localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp_reg.rss
localisation/apparchitecture/tef/trecupgrade/a000b461.rss
localisation/apparchitecture/tef/trecupgrade/recupgrade.MMP
localisation/apparchitecture/tef/trecupgrade/recupgrade.cpp
localisation/apparchitecture/tef/trecupgrade/recupgrade.h
localisation/apparchitecture/tef/trecupgrade/upgconstants.h
localisation/apparchitecture/tef/tssaac/SysStartApparcTestCases.cpp
localisation/apparchitecture/tef/tssaac/SysStartApparcTestCases.h
localisation/apparchitecture/tef/tssaac/scripts/emulator/sysstart_apparc_checkEpocWind.bat
localisation/apparchitecture/tef/tssaac/scripts/emulator/sysstart_apparc_run.bat
localisation/apparchitecture/tef/tssaac/scripts/emulator/sysstart_apparc_setup.bat
localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_buildrom.bat
localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_checkEpocWind.bat
localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_insertlog.pl
localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_run.bat
localisation/apparchitecture/tef/tssaac/tssaac.cpp
localisation/apparchitecture/tef/tssaac/tssaac.h
localisation/apparchitecture/tef/tssaac/tssaac.mmp
localisation/apparchitecture/tef/tssaac/tssaac_emulator.rss
localisation/apparchitecture/tef/tssaac/tssaac_emulator_ssma.rss
localisation/apparchitecture/tef/tssaac/tssaac_hardware.rss
localisation/apparchitecture/tef/tssaac/tssaac_tapp.cpp
localisation/apparchitecture/tef/tssaac/tssaac_tapp.mmp
localisation/apparchitecture/tef/tssaac/tssaac_tapp.rss
localisation/apparchitecture/tef/tssaac/tssaac_tapp_emulator.rss
localisation/apparchitecture/tef/tssaac/tssaac_tapp_emulator_ssma.rss
localisation/apparchitecture/tef/tssaac/tssaac_tapp_hardware.rss
localisation/apparchitecture/tef/tssaac/tssaac_tapp_loc.rss
localisation/apparchitecture/tef/tssaac/tssaac_tapp_reg.rss
localisation/apparchitecture/tef/tstapp01.rls
localisation/apparchitecture/tef/tstapp02.rls
localisation/apparchitecture/tef/tstapp03.rls
localisation/apparchitecture/tef/tstapp04.rls
localisation/apparchitecture/tef/tstapp05.rls
localisation/apparchitecture/tef/tstapp_Reg.RSS
localisation/apparchitecture/tef/tstapp_loc.rss
localisation/apparchitecture/tef/tstappsc.rls
localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.cpp
localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.h
localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.mmp
localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.rss
localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp_reg.rss
localisation/apparchitecture/tef/zerosizedicon.mbm
localisation/apparchitecture/tef/zerosizedicon_loc.rss
localisation/apparchitecture/tef/zerosizedicon_reg.rss
localisation/apparchitecture/tef/zerosizedicontestapp.cpp
localisation/apparchitecture/tef/zerosizedicontestapp.mmp
localisation/uiftestfw/bwins/APPFWK_TEST_APPUIU.DEF
localisation/uiftestfw/eabi/APPFWK_TEST_APPUIU.DEF
localisation/uiftestfw/group/BLD.INF
localisation/uiftestfw/group/Smoketest_Uitestfw.iby
localisation/uiftestfw/group/app-framework_testframework.history.xml
localisation/uiftestfw/group/app-framework_testframework.mrp
localisation/uiftestfw/group/appfwk_test_AppUi.mmp
localisation/uiftestfw/group/appfwk_test_dummytest.mmp
localisation/uiftestfw/group/appfwk_test_utils.mmp
localisation/uiftestfw/group/appfwk_test_utils_server.mmp
localisation/uiftestfw/group/mulscreens.ini
localisation/uiftestfw/group/mulscreens_changetracking.ini
localisation/uiftestfw/inc/appfwk_test.h
localisation/uiftestfw/inc/appfwk_test_AppUi.h
localisation/uiftestfw/inc/appfwk_test_utils.h
localisation/uiftestfw/inc/appfwk_test_utils_server.h
localisation/uiftestfw/inc/appfwk_tmsteststep.h
localisation/uiftestfw/src/appfwk_test_AppUi.cpp
localisation/uiftestfw/src/appfwk_test_dummytest.cpp
localisation/uiftestfw/src/appfwk_test_utils.cpp
localisation/uiftestfw/src/appfwk_test_utils_server.cpp
localisation/uiftestfw/src/appfwk_test_utils_server_main.cpp
localisation/uiftestfw/src/appfwk_tmsteststep.cpp
localisation/uiftestfw/src/scripts/emulator/mulscreens_sw_test.cmd
localisation/uiftestfw/src/scripts/hardware/mulscreens_hw_test.cmd
--- a/Group/bld.inf	Wed Jul 28 16:03:37 2010 +0100
+++ b/Group/bld.inf	Tue Aug 03 10:20:34 2010 +0100
@@ -29,8 +29,8 @@
 #include "../LbsApi/group/bld.inf"
 #include "../uiresources/group/bld.inf"
 #include "../inputmethods/group/Bld.inf"
-//#include "../localisation/uiftestfw/group/BLD.INF"
-//#include "../localisation/apparchitecture/group/BLD.INF"
+#include "../localisation/uiftestfw/group/BLD.INF"
+#include "../localisation/apparchitecture/group/BLD.INF"
 #include "../graphics/wserv/group/bld.inf"
 #include "../http/group/bld.inf"
 #include "../mediamgmt/group/Bld.inf"
--- a/Group/smoketest.xml	Wed Jul 28 16:03:37 2010 +0100
+++ b/Group/smoketest.xml	Tue Aug 03 10:20:34 2010 +0100
@@ -67,7 +67,7 @@
 							<param component-path="smoketest\emailsettings" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -76,7 +76,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -85,7 +85,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -94,7 +94,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -103,7 +103,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -112,7 +112,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -121,7 +121,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -130,7 +130,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -139,7 +139,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -148,7 +148,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -157,7 +157,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -166,7 +166,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -175,7 +175,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -184,7 +184,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -193,7 +193,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -202,7 +202,7 @@
 							<param component-path="smoketest\10003a3f" />
 						</params>
 					</step>					
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -211,7 +211,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -220,7 +220,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -229,7 +229,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -238,7 +238,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -247,7 +247,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -256,7 +256,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -265,7 +265,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -274,7 +274,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -283,7 +283,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -292,7 +292,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -301,7 +301,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -310,7 +310,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -319,7 +319,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -328,7 +328,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -337,7 +337,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -346,7 +346,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -355,7 +355,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -364,7 +364,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -373,7 +373,7 @@
 							<param component-path="smoketest\resource" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -382,7 +382,7 @@
 							<param component-path="smoketest\localisation" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -391,7 +391,7 @@
 							<param component-path="smoketest\localisation" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -400,7 +400,7 @@
 							<param component-path="smoketest\localisation" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -409,7 +409,7 @@
 							<param component-path="smoketest\localisation" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="data"/>
@@ -553,7 +553,7 @@
 							<param component-path="smoketest" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="binary"/>
@@ -562,7 +562,7 @@
 							<param component-path="smoketest" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="binary"/>
@@ -571,25 +571,25 @@
 							<param component-path="smoketest" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="binary"/>
-							<param src="TIconLoaderAndIconArrayForLeaks.dll"/>
-							<param dst="c:\sys\bin\TIconLoaderAndIconArrayForLeaks.dll"/>
+							<param src="ticonloaderandiconarrayforleaks.dll"/>
+							<param dst="c:\sys\bin\ticonloaderandiconarrayforleaks.dll"/>
 							<param component-path="smoketest" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="binary"/>
-							<param src="TSTAPP_embedded.dll"/>
-							<param dst="c:\sys\bin\TSTAPP_embedded.dll"/>
+							<param src="tstapp_embedded.dll"/>
+							<param dst="c:\sys\bin\tstapp_embedded.dll"/>
 							<param component-path="smoketest" />
 						</params>
 					</step>					
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="binary"/>
@@ -598,7 +598,7 @@
 							<param component-path="smoketest" />
 						</params>
 					</step>
-					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="false" passrate="100" significant="false">
+					<step id="" name="Test Step 1 (install)" harness="GENERIC" enabled="true" passrate="100" significant="false">
 						<command>install</command>
 						<params>
 							<param type="binary"/>
@@ -729,7 +729,7 @@
 							<param leave-old-result="true"/>
 						</params>
 					</step>
-					<step id="" name="Test Step 2 (execute)" harness="GENERIC" enabled="false" passrate="100" significant="true">
+					<step id="" name="Test Step 2 (execute)" harness="GENERIC" enabled="true" passrate="100" significant="true">
 						<command>execute</command>
 						<params>
 							<param file="testexecute.exe"/>
@@ -1171,7 +1171,7 @@
 		<file>smoketest/general/smoketest_email.script</file>
 		<file>smoketest/general/smoketest_lbs.ini</file>
 		<file>smoketest/general/smoketest_lbs.script</file>
-
+		<file>smoketest/general/smoketest_language.script</file>
 		<file>smoketest/general/smoketest_bitmap.ini</file>
 		<file>smoketest/general/smoketest_bitmap.script</file>
 		<file>smoketest/general/smoketest_http.ini</file>
@@ -1180,7 +1180,45 @@
 		<file>smoketest/general/MachineName.txt</file>
 		<file>smoketest/emailmessage/general/20KBody.txt</file>
 		<file>smoketest/emailsettings/general/popsettings_test908.txt</file>
-
+		<file>smoketest/10003a3f/general/openservice1a.rsc</file>
+		<file>smoketest/10003a3f/general/openservice1b.rsc</file>
+		<file>smoketest/10003a3f/general/serverapp2_reg.rsc</file>
+		<file>smoketest/10003a3f/general/serverapp3_reg.rsc</file>
+		<file>smoketest/10003a3f/general/serverapp4_reg.rsc</file>
+		<file>smoketest/10003a3f/general/serverapp6_reg.rsc</file>
+		<file>smoketest/10003a3f/general/serverapp7_reg.rsc</file>
+		<file>smoketest/10003a3f/general/serverapp_reg.rsc</file>
+		<file>smoketest/10003a3f/general/t_dataprioritysystem3_reg.rsc</file>
+		<file>smoketest/10003a3f/general/t_groupname_reg.rsc</file>
+		<file>smoketest/10003a3f/general/t_groupnamever1_reg.rsc</file>
+		<file>smoketest/10003a3f/general/t_groupnamever2_reg.rsc</file>
+		<file>smoketest/10003a3f/general/tctrlpnlapp_reg.rsc</file>
+		<file>smoketest/10003a3f/general/testtrustedpriorityapp1_reg.rsc</file>
+		<file>smoketest/10003a3f/general/testtrustedpriorityapp2_reg.rsc</file>
+		<file>smoketest/resource/general/customisedefaulticonapp_loc.rsc</file>
+		<file>smoketest/resource/general/default_app_icon.m02</file>
+		<file>smoketest/resource/general/serverapp_loc.rsc</file>
+		<file>smoketest/resource/general/t_groupname_loc.rsc</file>
+		<file>smoketest/resource/general/t_groupnamever1_loc.rsc</file>
+		<file>smoketest/resource/general/t_groupnamever2_loc.rsc</file>
+		<file>smoketest/resource/general/tstapp02.m02</file>
+		<file>smoketest/resource/general/tstapp.mbm</file>
+		<file>smoketest/resource/general/tstapp.rsc</file>
+		<file>smoketest/resource/general/tstapp_loc.r01</file>
+		<file>smoketest/resource/general/tstapp_loc.r02</file>
+		<file>smoketest/resource/general/tstapp_loc.r03</file>
+		<file>smoketest/resource/general/tstapp_loc.r04</file>
+		<file>smoketest/resource/general/tstapp_loc.r05</file>
+		<file>smoketest/resource/general/tstapp_loc.rsc</file>
+		<file>smoketest/resource/general/tstappview</file>
+		<file>smoketest/resource/general/tstappview01.m01</file>
+		<file>smoketest/resource/general/tstappview01.m02</file>
+		<file>smoketest/resource/general/tstappview02.k</file>
+		<file>smoketest/localisation/general/customisedefaulticonapp_reg.rsc</file>
+		<file>smoketest/localisation/general/testuntrustedpriorityapp1_reg.rsc</file>
+		<file>smoketest/localisation/general/testuntrustedpriorityapp2_reg.rsc</file>
+		<file>smoketest/localisation/general/tstapp_reg.rsc</file>
+		<file>smoketest/localisation/general/tstapp_embedded.rsc</file>
 		<file>smoketest/bitmap/general/uibench_16bit.mbm</file>
 		<file>smoketest/ethernet/general/delproxy.pl</file>
 		<file>smoketest/winscw_udeb/SmokeTestSecureFSclient.dll</file>
@@ -1196,7 +1234,12 @@
 		<file>smoketest/winscw_udeb/t_msgpopserver.exe</file>
 		<file>smoketest/winscw_udeb/t_msgsmtpserver.exe</file>
 		<file>smoketest/winscw_udeb/te_lbsapisuite.exe</file>
-
+		<file>smoketest/winscw_udeb/appfwk_test_AppUi.dll</file>
+		<file>smoketest/winscw_udeb/appfwk_test_utils.dll</file>
+		<file>smoketest/winscw_udeb/ticonloaderandiconarrayforleaks.dll</file>
+		<file>smoketest/winscw_udeb/tstapp_embedded.dll</file>
+		<file>smoketest/winscw_udeb/apparctestserver.exe</file>
+		<file>smoketest/winscw_udeb/tstapp.exe</file>
 		<file>smoketest/winscw_udeb/t_animplugin.dll</file>
 		<file>smoketest/winscw_udeb/t_graphicswservapi.exe</file>
 		<file>smoketest/winscw_udeb/twsgraphicshare.exe</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/ServiceRegistry/ServiceRegistry.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,104 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// ServiceRegistry.h
+// 
+//
+
+#include "ServiceRegistry.h"
+
+/** Constructs a new CServiceRegistry object.
+
+@return A new CServiceRegistry object.
+@publishedPartner
+@released
+*/
+EXPORT_C CServiceRegistry* CServiceRegistry::NewL()
+	{
+	CServiceRegistry* self = new(ELeave) CServiceRegistry();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+/** Destructor 
+@publishedPartner
+@released
+*/
+EXPORT_C CServiceRegistry::~CServiceRegistry()
+	{
+	iApaLsSession.Close();	
+	}
+
+/** Constructor 
+@publishedPartner
+@released
+*/		
+CServiceRegistry::CServiceRegistry()
+	{	
+	}
+	
+/** Second phase constructor. 
+@publishedPartner
+@released
+*/	
+void CServiceRegistry::ConstructL()
+	{	
+	User::LeaveIfError(iApaLsSession.Connect());
+	}
+		
+/** Adds a default association to the registry.
+@param aServiceUid The uid of the service.
+@param aDataType The datatype.
+@param aDefaultAppUid The uid of the application that supports the
+datatype and the service.
+@return A standard error code.
+@capability WriteDeviceData
+@publishedPartner
+@released
+*/	
+EXPORT_C TInt CServiceRegistry::SetDefault(TUid aServiceUid, const TDataType& aDataType, 
+	TUid aDefaultAppUid)
+	{
+	return iApaLsSession.InsertDataMapping(aDataType, KDataTypePriorityNormal, aDefaultAppUid, aServiceUid);
+	}
+	
+/** Deletes an association from the registry.
+@param aServiceUid The uid of the service.
+@param aDataType The datatype.
+@return KErrNotFound if the association doesn't exist or any other standard error code.
+@capability WriteDeviceData
+@publishedPartner
+@released
+*/	
+EXPORT_C TInt CServiceRegistry::RemoveEntry(TUid aServiceUid, const TDataType& aDataType)
+	{	
+	return iApaLsSession.DeleteDataMapping(aDataType, aServiceUid);
+	}
+	
+/** Gets the default association from the registry.
+@param aServiceUid The uid of the service.
+@param aDataType The datatype.
+@param aDefaultAppUid The uid of the default application, or KNullUid if the
+the association doesn't exist.
+@return KErrNotFound if the association doesn't exist or any other standard error code.
+@publishedPartner
+@released
+*/	
+EXPORT_C TInt CServiceRegistry::GetDefault(TUid aServiceUid, const TDataType& aDataType,
+	TUid& aDefaultAppUid)
+	{	
+	return iApaLsSession.GetAppByDataType(aDataType, aServiceUid, aDefaultAppUid);
+	}
+	
--- a/localisation/apparchitecture/apfile/APFILE.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-//
-// APFILE.MMP for component APFILE
-//
-
-/**
-@file
-
-@SYMPurpose apfile.dll Internal server helpers
-*/
-
-
-target          apfile.dll
-CAPABILITY All -Tcb
-targettype      DLL
-UID		0x1000008D 0x10003A3B
-VENDORID 0x70000001
-
-SOURCEPATH	../apfile
-
-userinclude   ../inc
-systeminclude   /epoc32/include
-
-macro UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
-
-source			APFREC.CPP APFSTD.CPP aprfndr.cpp APRuleBased.CPP ApLaunchChecker.cpp ApSidChecker.cpp apuninstallmonitor.cpp
-source			apfmimecontentpolicy.cpp
-
-library         euser.lib efsrv.lib apparc.lib apgrfx.lib bafl.lib apserv.lib ecom.lib 
-library			apmime.lib caf.lib
-
-#if !defined(WINC)
-macro			USING_ECOM_RECOGS
-#endif
-
-#if defined(SYMBIAN_APPARC_APPINFO_CACHE)
-deffile			APFILE_UI_FRAMEWORKS.DEF
-#else
-deffile			APFILE_9_REMOVE_UI_FRAMEWORKS_V1.DEF
-#endif
-
-
-START RESOURCE ../apfile/apfmimecontentpolicy.rss
-HEADER  
-TARGETPATH   /resource/apps
-END
-
-START WINS
-	baseaddress	0x43000000
-END
-
-START MARM
-END
-
-// For the benefit of Eshell which cannot build a resource registration file
-START RESOURCE	eshell_reg.rss
-TARGETPATH	/private/10003a3f/apps
-END
-
--- a/localisation/apparchitecture/apfile/APFREC.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apfile/APFREC.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,68 +11,15 @@
 // Contributors:
 //
 // Description:
+// apfrec.cpp
 //
 
 #include <apfrec.h>
 #include <e32uid.h>
 #include <f32file.h>
 #include <apadef.h>
-#include "APFSTD.H" // Panics etc.
-
-#ifdef USING_ECOM_RECOGS
 #include <ecom/ecom.h>
-#endif
-
-//
-// class TRecognizer
-//
-
-CApaScanningFileRecognizer::TRecognizer::TRecognizer(HBufC* aName)
-	: iName(aName)
-	{
-	}
-
-///////////////////////////////
-// CApaRecognizerDll
-///////////////////////////////
-
-class CApaRecognizerDll : public CBase
-	{
-public:
-	CApaRecognizerDll(HBufC* aName);
-	~CApaRecognizerDll(); // closes lib and deletes next
 
-	enum TPresence { ENotPresent, EIsPresent, ESuperseded };
-	inline TPresence Present() const { return iPresent; }
-	inline void Present(TPresence aPresence) { iPresent = aPresence; }
-	
-	inline CApaFileRecognizerType* Recognizer() { return iRec; }
-	inline void SetRecognizer(CApaFileRecognizerType& aRec) { iRec = &aRec; }
-public:
-	//lint --e{1925} Suppress "public data member" - bad OO but handy
-	CApaRecognizerDll* iNext;
-	CApaScanningFileRecognizer::TRecognizer iId; // cached so that this data can be accessed from other threads (RLibrary cant be used in this case)
-private:
-	RLibrary iLibrary;
-	TPresence iPresent;
-	CApaFileRecognizerType* iRec; // not ownership
-	};
-
-
-CApaRecognizerDll::~CApaRecognizerDll()
-	{
-	delete iId.iName;
-	iLibrary.Close();
-	delete iNext;
-	iRec = NULL;
-	}
-
-CApaRecognizerDll::CApaRecognizerDll(HBufC* aName)
-	: iId(aName)
-	{
-	}
-
-#ifdef USING_ECOM_RECOGS
 // CleanupEComArray function is used for cleanup support 
 // of locally declared arrays.
 void CleanUpEComInfoArray(TAny* aInfoArray)
@@ -81,339 +28,4 @@
 	infoArray->ResetAndDestroy();
 	infoArray->Close();
 	}
-#endif
 
-// class CApaBackupOperationObserver
-CApaScanningFileRecognizer::CApaBackupOperationObserver::CApaBackupOperationObserver(CApaScanningFileRecognizer& aRecognizer)
-	: iRecognizer(aRecognizer)
-	{
-	TRAP_IGNORE(iSession = CBaBackupSessionWrapper::NewL());
-	}
-
-CApaScanningFileRecognizer::CApaBackupOperationObserver::~CApaBackupOperationObserver()
-	{
-	if (iSession)
-		{
-		iSession->DeRegisterBackupOperationObserver(*this);
-		delete iSession;
-		}
-	}
-
-void CApaScanningFileRecognizer::CApaBackupOperationObserver::RegisterObserverL()
-	{
-	if (iSession)
-		{
-		iSession->RegisterBackupOperationObserverL(*this);
-		}
-	}
-
-void CApaScanningFileRecognizer::CApaBackupOperationObserver::HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes)
-	{
-	if ((aBackupOperationAttributes.iFileFlag == MBackupObserver::EReleaseLockReadOnly ||
-		aBackupOperationAttributes.iFileFlag == MBackupObserver::EReleaseLockNoAccess)
-		&& aBackupOperationAttributes.iOperation == EStart)
-		{
-		// release recognizers not in rom
-		CApaRecognizerDll* rec=iRecognizer.iRecognizerLib;
-		while (rec)
-			{
-			CApaRecognizerDll* next=rec->iNext;
-			TDriveUnit drive(rec->iId.iDrive);
-			const TChar driveName=drive.Name()[0];
-			if(driveName != TChar('Z'))
-				{
-				iRecognizer.RemoveRecognizer(*rec);// ignore errors
-				}
-			rec = next;
-			}
-		}
-
-	if (aBackupOperationAttributes.iFileFlag == MBackupObserver::ETakeLock &&
-		(aBackupOperationAttributes.iOperation == EEnd ||
-		aBackupOperationAttributes.iOperation == EAbort))
-		{
-		iRecognizer.ScanForRecognizersL();
-		}
-	}
-
-TInt CApaScanningFileRecognizer::CApaBackupOperationObserver::UpdateCounter() const
-	{
-	return iUpdateCounter;
-	}
-
-void CApaScanningFileRecognizer::CApaBackupOperationObserver::SetUpdateCounter(TInt aValue)
-	{
-	iUpdateCounter = aValue;
-	}
-
-
-///////////////////////////////
-// CApaScanningFileRecognizer
-///////////////////////////////
-
-
-EXPORT_C CApaScanningFileRecognizer* CApaScanningFileRecognizer::NewL(RFs& aFs,MApaAppStarter* aAppStarter)
-	{
-	CApaScanningFileRecognizer* self=new(ELeave) CApaScanningFileRecognizer(aFs,aAppStarter);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	self->ScanForRecognizersL();
-	CleanupStack::Pop(); // self
-	return self;
-	}
-
-
-EXPORT_C CApaScanningFileRecognizer::CApaScanningFileRecognizer(RFs& aFs,MApaAppStarter* aAppStarter)
-	: CApaFileRecognizer(aFs), iAppStarter(aAppStarter)
-	{}
-
-
-EXPORT_C void CApaScanningFileRecognizer::ConstructL()
-	{
-	iObserver = new (ELeave) CApaBackupOperationObserver(*this);
-	iObserver->RegisterObserverL();
-	}
-
-
-EXPORT_C CApaScanningFileRecognizer::~CApaScanningFileRecognizer()
-	{
-	DestroyRecognizerList();
-	delete iRecognizerLib;
-	delete iObserver;
-	iAppStarter = NULL;
-	}
-
-EXPORT_C void CApaScanningFileRecognizer::ScanForRecognizersL()
-	{
-	// set all recognizers to not present - pending rediscoivery
-	CApaRecognizerDll* rec=iRecognizerLib;
-	while (rec)
-		{
-		rec->Present(CApaRecognizerDll::ENotPresent);
-		rec = rec->iNext;
-		}
-
-	ScanForEcomRecognizersL();
-	//
-	// remove any recognizers that are no longer present
-	rec=iRecognizerLib;
-	while (rec)
-		{
-		CApaRecognizerDll* next=rec->iNext;
-		if (rec->Present()==CApaRecognizerDll::ENotPresent)
-			RemoveRecognizer(*rec);
-		rec = next;
-		}
-	}
-
-
-TInt CApaScanningFileRecognizer::RemoveRecognizer(CApaRecognizerDll& aDll)
-	{
-	// try to remove the recognizer from the list
-	TInt ret=RemoveFileRecognizerType(aDll.Recognizer());
-	if (ret!=KErrNone && ret!=KErrNotFound)
-		return ret;
-	//
-	// get a handle to the previous entry in the list
-	CApaRecognizerDll* prev=NULL;
-	CApaRecognizerDll* dll=iRecognizerLib;
-	while (dll && (dll != &aDll))
-		{
-		prev = dll;
-		dll = dll->iNext;
-		}
-		
-	if (!dll)
-		{
-		Panic(EPanicLibraryNotInList);
-		}
-	else
-		{
-		// remove the dll
-		if (prev)
-			prev->iNext = dll->iNext;
-		else
-			iRecognizerLib = dll->iNext;
-		dll->iNext = NULL;
-		delete dll;
-		iObserver->SetUpdateCounter( iObserver->UpdateCounter()+ 1 );
-		}
-	return KErrNone;
-	}
-
-EXPORT_C TInt CApaScanningFileRecognizer::RecognizerCount()
-	{
-	CApaRecognizerDll* lib=iRecognizerLib;
-	TInt count=0;
-	while (lib)
-		{
-		count++;
-		lib = lib->iNext;
-		}
-	return count;
-	}
-
-
-EXPORT_C CApaScanningFileRecognizer::CRecognizerArray* CApaScanningFileRecognizer::RecognizerListLC()const
-	{
-	CRecognizerArray* list=new(ELeave) CArrayFixFlat<TRecognizer>(1);
-	CleanupStack::PushL(list);
-	CApaRecognizerDll* dll=iRecognizerLib;
-	while (dll)
-		{
-		list->AppendL(dll->iId);
-		dll = dll->iNext;
-		}
-	return list;
-	}
-
-EXPORT_C const CApaScanningFileRecognizer::TRecognizer& CApaScanningFileRecognizer::operator[](TInt aIndex)const
-	{
-	__ASSERT_ALWAYS(aIndex>=0,Panic(EPanicNegativeIndex));
-	// scan to correct dll
-	TInt num=0;
-	CApaRecognizerDll* dll=iRecognizerLib;
-	while (dll && num++<aIndex)
-		dll = dll->iNext;
-	__ASSERT_ALWAYS(dll,Panic(EPanicIndexOutOfRange));
-	//
-	// get info from dll
-	return dll->iId; //lint !e613 Suppress possible use of null pointer - asserted above
-	}
-
-EXPORT_C TInt CApaScanningFileRecognizer::UpdateCounter()const
-	{
-	return iObserver->UpdateCounter();
-	}
-
-EXPORT_C void CApaScanningFileRecognizer::SetEcomRecognizersFromListL(const CRecognizerArray& aList)
-	{
-	//for ecom style
-	for (TInt i=0 ; i<aList.Count() ; i++)
-		{
-		TDriveUnit drive(aList[i].iDrive);
-		TRAPD(ret, LoadEcomRecognizerL(drive,aList[i].iUid));
-		if (ret==KErrNoMemory)
-			{
-			User::Leave(ret); 
-			}
-		}
-	}
-
-EXPORT_C void CApaScanningFileRecognizer::SetEcomRecognizerL(const TRecognizer& aRecognizer)
-	{
-	//for ecom style 
-	TDriveUnit drive(aRecognizer.iDrive);
-	LoadEcomRecognizerL(drive,aRecognizer.iUid);
-	}
-
-//to find the name of  ecom style file recognizer corresponding to aImplUID
-#ifdef USING_ECOM_RECOGS
-HBufC* RecognizerNameL(TUid aImplUID)
-	{
-	RImplInfoPtrArray implementationInfoArray;
-	TCleanupItem cleanup(CleanUpEComInfoArray, &implementationInfoArray);
-	CleanupStack::PushL(cleanup);
-	REComSession::ListImplementationsL(KUidFileRecogInterfaceUid,implementationInfoArray);
-	const TInt availCount = implementationInfoArray.Count();
-	for (TInt ii=0;ii<availCount;++ii)
-		{
-		CImplementationInformation* info = implementationInfoArray[ii];
-		TUid uid = info->ImplementationUid();
-		if(uid.iUid == aImplUID.iUid )
-			{
-			HBufC* recogName = info->DisplayName().AllocL();
-			CleanupStack::PopAndDestroy(&implementationInfoArray);
-			return recogName;
-			}
-		}
-	CleanupStack::PopAndDestroy(&implementationInfoArray);
-	return KNullDesC().AllocL();
-	}
-
-//load the ecom file recognizer
-void CApaScanningFileRecognizer::LoadEcomRecognizerL(TDriveUnit& aDrive,TUid aUid)
-	{
-	// check we haven't loaded this one already
-	CApaRecognizerDll* lib=iRecognizerLib;
-	CApaRecognizerDll* last=NULL; // the previous one in the list
-	while (lib)
-		{
-		if (lib->iId.iUid==aUid)
-			{// we may have to override one
-			if (lib->Present()!=CApaRecognizerDll::ENotPresent)
-				{
-				return; // already found
-				}
-			else
-				{
-				lib->Present(CApaRecognizerDll::EIsPresent);
-				return;
-				}
-			}			
-		last = lib;
-		lib = lib->iNext;
-		}
-	// load the library
-	HBufC* recogName=RecognizerNameL(aUid);
-	CleanupStack::PushL(recogName);
-	lib = new(ELeave) CApaRecognizerDll(recogName);
-	CleanupStack::Pop(recogName);
-	CleanupStack::PushL(lib);
-	TRAPD(error,lib->SetRecognizer(*CApaFileRecognizerType::CreateFileRecognizerL(aUid)));
-	if(!error && lib->Recognizer())
-		{
-		lib->Present(CApaRecognizerDll::EIsPresent);
-		SetAppStarter(lib->Recognizer(),iAppStarter);
-		AddFileRecognizerType(lib->Recognizer());
-		lib->iId.iUid = aUid;
-		lib->iId.iDrive = aDrive;
-		iObserver->SetUpdateCounter( iObserver->UpdateCounter() + 1 );
-		//
-		// add lib to the library list
-		if (last)
-			{
-			while (last->iNext)
-				{
-				last=last->iNext;
-				}
-			__ASSERT_ALWAYS(last->iNext==NULL,Panic(EPanicIndexOutOfRange));
-			last->iNext = lib;
-			}
-		else
-			{
-			iRecognizerLib = lib;
-			}
-		CleanupStack::Pop(lib); // lib
-		}
-	else
-		{
-		CleanupStack::PopAndDestroy(lib); // lib
-		}
-	}
-#else
-void CApaScanningFileRecognizer::LoadEcomRecognizerL(TDriveUnit&,TUid)
-	{
-	} //lint !e1762 Suppress member function could be made const
-
-#endif
-
-void CApaScanningFileRecognizer::ScanForEcomRecognizersL()
-	{
-#ifdef USING_ECOM_RECOGS
-	//scan ecom plugin
-	RImplInfoPtrArray implementationArray;
-	TCleanupItem cleanup(CleanUpEComInfoArray, &implementationArray);
-	CleanupStack::PushL(cleanup);
-	REComSession::ListImplementationsL(KUidFileRecogInterfaceUid,implementationArray);
-	const TInt availCount = implementationArray.Count();
-	for (TInt count=0;count<availCount;++count)
-		{
-		const CImplementationInformation* info = implementationArray[count];
-		TUid uid = info->ImplementationUid();
-		TDriveUnit drive=info-> Drive();
-		TRAP_IGNORE(LoadEcomRecognizerL(drive,uid));
-		}
-	CleanupStack::PopAndDestroy(&implementationArray); 
-#endif
-	} //lint !e1762 Suppress member function could be made const
--- a/localisation/apparchitecture/apfile/APFSTD.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apfile/APFSTD.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -24,3 +24,5 @@
 	_LIT(KAppFilePanic,"APFILE");
 	User::Panic(KAppFilePanic,aPanic);
 	}
+
+
--- a/localisation/apparchitecture/apfile/APFSTD.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apfile/APFSTD.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/apfile/APRuleBased.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apfile/APRuleBased.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -21,9 +21,9 @@
 
 void CleanUpEComInfoArray(TAny* aInfoArray);
 
-///////////////////////////////
+//
 // CApaRuleBasedDll
-///////////////////////////////
+//
 /** The rule-based framework. Mantain all rule-based plug-ins available in the system */
 class CApaRuleBasedDll : public CBase
 	{
--- a/localisation/apparchitecture/apfile/ApLaunchChecker.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apfile/ApLaunchChecker.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/apfile/ApSidChecker.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include <apsidchecker.h>
-#include <ecom/ecom.h>
-
-//const TUid KAppSidCheckerInterfaceUid = {0x10281FBB}; //old interface used when checking based only on SID
-const TUid KAppSidCheckerInterfaceUid = {0x20007D8C}; // current interface used when checking based on SID and drive number
-
-
-CAppSidChecker* CAppSidChecker::CheckerForAppType(const TUid &aAppTypeUid)
-	{
-	TEComResolverParams resolverParams;
-	TBuf8<KMaxUidName> sidName;
-	sidName.Copy(aAppTypeUid.Name());
-	resolverParams.SetDataType(sidName);
-	TAny* ptr = NULL;
-	TRAP_IGNORE( ptr = REComSession::CreateImplementationL(
-			KAppSidCheckerInterfaceUid,
-			_FOFF(CAppSidChecker, iDtor_ID_Key),
-			NULL, resolverParams) );
-	return reinterpret_cast<CAppSidChecker*>(ptr);
-	}
-
-/** The destruction of the interface implementation */
-EXPORT_C CAppSidChecker::~CAppSidChecker()
-	{
-	REComSession::DestroyedImplementation(iDtor_ID_Key);
-	iReserved1 = NULL;
-	iReserved2 = NULL;
-	iReserved3 = NULL;
-	}
-
-EXPORT_C void CAppSidChecker::SetRescanCallBackL(const TCallBack&)
-	{
-	}
-
-EXPORT_C void CAppSidChecker::reserved1()
-	{
-	}
-
-EXPORT_C void CAppSidChecker::reserved2()
-	{
-	}
-
-EXPORT_C void CAppSidChecker::reserved3()
-	{
-	}
-
-RSidCheckerMap::RSidCheckerMap( TCallBack aRescanCallBack ) :
-		iRescanCallBack( aRescanCallBack )
-	{
-	}
-
-CAppSidChecker& RSidCheckerMap::FindSidCheckerL(TUid aAppType)
-	{
-	CAppSidChecker* checker = NULL;
-	CAppSidChecker** checkerPtr = Find(aAppType.iUid);
-	if(checkerPtr)
-		{
-		checker = *checkerPtr;
-		}
-	else
-		{
-		// No CAppSidChecker instance loaded, try to find one
-		checker = CAppSidChecker::CheckerForAppType(aAppType);
-		if(checker)
-			{
-			CleanupStack::PushL(checker);
-			InsertL(aAppType.iUid, checker);
-			CleanupStack::Pop(checker);
-			checker->SetRescanCallBackL(iRescanCallBack);
-			}
-		else
-			{
-			User::Leave(KErrNotFound);
-			}
-		}
-	return *checker;
-	}
-
-void RSidCheckerMap::Close()
-	{
-	TIter iter(*this);
-	while(iter.NextValue())
-		{
-		delete *(iter.CurrentValue());
-		iter.RemoveCurrent();
-		}
-	RHashMap<TUint,CAppSidChecker*>::Close();
-	}
--- a/localisation/apparchitecture/apfile/apfmimecontentpolicy.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apfile/apfmimecontentpolicy.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -18,18 +18,53 @@
 // INCLUDE FILES
 #include <apfmimecontentpolicy.h>
 #include <f32file.h> // RFs
-#include <barsread.h>
-#include <barsc.h> 
-#include <apfmimecontentpolicy.rsg>
 #include <caf/content.h>
 #include <e32base.h>
 #include <apgcli.h>    // For RApaLsSession 
+#include <centralrepository.h>
+#include <apmstd.h>
 
-// Resource file name.
-_LIT(KCEResourceFile, "z:\\resource\\apps\\apfmimecontentpolicy.rsc"); 
 
-// This is needed for resource reading.
-const TInt KCCMask(0x00000fff);
+/* Closed content and extension information is stored in central repository with UID 0x10003A3F.
+ * Keys of the Closed Content and Extension information repository is divided into two parts.
+ * Most significant byte is used for identifying the type,i.e. whether it is Mimetype or extension, 
+ * and the least significant 3 bytes are used for uniquely identifying the entry within that type. 
+ * 
+ * |-------------------- Key (32-bits) ---------------------|
+ *  --------------------------------------------------------
+ * | type (8-bits)  |            sequence number(24-bits)   |
+ *  --------------------------------------------------------
+ * 
+ *  The type part is used for differentiating Content type and extension keys.
+ *  The value can be 
+ *     0x0 - For content type key
+ *     0x1 - For extension key
+ *     
+ * Sequence number part is used to uniquely identifying the entry within that type. 
+ *  
+ *  Examples: 
+ *  
+ *  0x00000000 - Content type key with sequence number 0x0
+ *  0x00000001 - Content type key with sequence number 0x1
+ *  0x01000000 - Extension type key with sequence number 0x0
+ *  0x01000001 - Extension type key with sequence number 0x1
+ *  0x01000002 - Extension type key with sequence number 0x2
+ */
+
+
+
+//Partial key for finding MIME type keys in the repository
+const TUint32 KClosedContentTypePartialKey=0x0;
+
+//Partial key for finding extension type keys in the repository
+const TUint32 KClosedExtensionTypePartialKey=0x01000000;
+
+//Mask for finding the type (MIME or extension)of a key
+const TUint32 KClosedTypeKeyMask=0xFF000000;
+
+
+//Closed content and extension information repository UID
+const TUid KClosedContentAndExtensionInfoRepositoryUID={0x10003A3F};
 
 
 NONSHARABLE_CLASS(CApfMimeContentPolicyImpl) : public CBase
@@ -52,8 +87,9 @@
 	void ConstructL();
     void ConstructL(RFs& aFs);
 	TBool IsClosedFileL(RFile& aFileHandle, const TDesC& aFileName) const;
-	void ReadResourcesL(RFs& aFs);
-
+	void ReadResourcesL();
+	TBool IsValidExtension(TDesC& extension);	
+    TBool IsValidMimeType(TDesC& extension);
 private:
 	CDesCArrayFlat* iCcl;	// Closed content list.
 	CDesCArrayFlat* iExtList;	// Closed extensions list.
@@ -249,7 +285,7 @@
 	iFsConnected = ETrue;
 	
 	User::LeaveIfError(iFs.ShareProtected());
-	ReadResourcesL(iFs);
+	ReadResourcesL();
 	}
 	
 /**
@@ -260,7 +296,7 @@
 	{
 	iFsConnected = EFalse;
 	iFs = aFs;	
-	ReadResourcesL(iFs);
+	ReadResourcesL();
 	}
 
 /**
@@ -490,31 +526,56 @@
 Called by constructor.
 @param aFs A handle to a shared file server session. 
 */
-void CApfMimeContentPolicyImpl::ReadResourcesL(RFs& aFs)
+void CApfMimeContentPolicyImpl::ReadResourcesL()
 	{
-	TResourceReader reader;	
+    ASSERT(!iCcl);
+    ASSERT(!iExtList);
+    
+	CRepository *cenrep=CRepository::NewL(KClosedContentAndExtensionInfoRepositoryUID);	
+	CleanupStack::PushL(cenrep);
+	
+	RArray<TUint32> keyArray;
+	CleanupClosePushL(keyArray);
+	
+    TBuf<KMaxDataTypeLength> keyData;
+    //Find the extenstion type keys in the repository 
+	cenrep->FindL(KClosedExtensionTypePartialKey, KClosedTypeKeyMask, keyArray);
+	int keyCount=keyArray.Count();
 
-	// Resource reading is done without coe & eikon env.
-	RResourceFile rsFile;
-	rsFile.OpenL(aFs, KCEResourceFile);
-	CleanupClosePushL(rsFile);
+	iExtList=new (ELeave) CDesCArrayFlat(keyCount);
 
-	// Read closed content list.
-	// Remove offset from id
-    HBufC8* rBuffer = rsFile.AllocReadLC(R_COMMONENG_CLOSED_CONTENT_LIST & KCCMask);
-	reader.SetBuffer(rBuffer);
-	ASSERT(!iCcl);
-	iCcl = reader.ReadDesCArrayL();
-	CleanupStack::PopAndDestroy(rBuffer); // rBuffer
-
-	// Read closed extensions list.
-	// Remove offset from id
-    rBuffer = rsFile.AllocReadLC(R_COMMONENG_CLOSED_EXTENSIONS_LIST & KCCMask); 
-	reader.SetBuffer(rBuffer);
-	ASSERT(!iExtList);
-	iExtList = reader.ReadDesCArrayL();
-	CleanupStack::PopAndDestroy(2); // rBuffer, rsFile 
-	    
+	TInt valid;
+	TInt index;
+	//Get each extension type key value and store in iExtList array
+	for(index=0; index<keyCount; index++)
+	    {
+	    cenrep->Get(keyArray[index], keyData);
+        //Check validity of the extension. If its invalid it will not be added to list.	    
+	    valid=IsValidExtension(keyData);
+	    if(valid)
+	        iExtList->AppendL(keyData);
+	    }
+	
+	keyArray.Reset();
+	
+    //Find the content type keys in the repository 	
+    cenrep->FindL(KClosedContentTypePartialKey, KClosedTypeKeyMask, keyArray);
+    keyCount=keyArray.Count();
+    
+    iCcl=new (ELeave) CDesCArrayFlat(keyCount);
+    
+    //Get each content type key value and store in iCcl array
+    for(index=0; index<keyCount; index++)
+        {
+        cenrep->Get(keyArray[index], keyData);  
+        //Check validity of the mime type. If its invalid it will not be added to list.
+        valid=IsValidMimeType(keyData);
+        if(valid)        
+            iCcl->AppendL(keyData);
+        }
+    
+    CleanupStack::PopAndDestroy(2, cenrep);
+	
     // Sort lists to enable binary find
     iCcl->Sort();
     iExtList->Sort();
@@ -524,3 +585,55 @@
 	User::LeaveIfError(iLs.Connect());
 	}
 
+
+//Checks the given extension is valid or invalid. The extension should start with a ".".
+TBool CApfMimeContentPolicyImpl::IsValidExtension(TDesC& extension)
+    {
+     TChar dot='.';
+     //Check whether extension should start with "."
+     return(extension.Locate(dot)==0);
+    }
+
+//Checks the given mime type is valid or not.
+//The mime type will be in the following format type/subtype. Ex: "application/vnd.oma.drm.message"
+//Mime type should posses the following properties. Otherewise those are considered as invalid.
+//1. Only one front slash should exist. That should be followed by the type field.
+//2. There should not be any backslashes.
+
+TBool CApfMimeContentPolicyImpl::IsValidMimeType(TDesC& mimeType)
+    {
+    TChar backslash='\\';            
+    TChar forwardslash='/';
+    
+    //Check any backslash is used
+    TBool found=mimeType.Locate(backslash);
+    if(found!=KErrNotFound)
+        return(EFalse);
+
+    //Locate forward slash position
+    found=mimeType.Locate(forwardslash);
+    
+    //There should be at least one forward slash
+    if(found==KErrNotFound)
+        {
+        return EFalse;
+        }
+    else
+        {
+        //Forward slash position should not at first or last position of the mime type
+        if(found==0||(found==mimeType.Length()-1))
+            return EFalse;
+        
+        //There should not be more than one forward slash
+        found=mimeType.Mid(found+1).Locate(forwardslash);
+        if(found!=KErrNotFound)
+            {
+            return(EFalse);       
+            }
+        else
+            {
+            //MIME format is valid
+            return(ETrue);
+            }
+        }
+    }
--- a/localisation/apparchitecture/apfile/apfmimecontentpolicy.rss	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-
-NAME CCLS
-
-#include <uikon.rh>
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF { buf=""; }
-
-//----------------------------------------------------
-//    r_commoneng_closed_content_list
-//	  Contains all MIME types in closed content list.	    
-//----------------------------------------------------
-//
-RESOURCE ARRAY r_commoneng_closed_content_list
-    {
-    items=
-        {	
-        LBUF { txt="application/vnd.oma.drm.message"; },
-		LBUF { txt="application/vnd.oma.drm.rights+xml"; },
-		LBUF { txt="application/vnd.oma.drm.rights+wbxml"; },
-		LBUF { txt="application/vnd.nokia.ringing-tone"; },
-		LBUF { txt="audio/amr-wb"; },
-		LBUF { txt="audio/sp-midi"; },
-		LBUF { txt="image/vnd.nok.3Dscreensaver"; },
-		LBUF { txt="image/vnd.nok-wallpaper"; },
-		LBUF { txt="image/vnd.nok-oplogo"; },
-		LBUF { txt="image/vnd.nok-oplogo-color"; },
-		LBUF { txt="application/java"; },
-		LBUF { txt="application/java-archive"; },
-		LBUF { txt="application/x-java-archive"; },
-		LBUF { txt="text/vnd.sun.j2me.app-descriptor"; },
-		LBUF { txt="application/x-NokiaGameData"; },
-		LBUF { txt="application/vnd.symbian.install"; },
-		LBUF { txt="x-epoc/x-sisx-app"; }  
-        };
-    }
-
-//----------------------------------------------------
-//    r_commoneng_closed_extensions_list
-//	  List of closed file extensions.	
-//----------------------------------------------------
-//
-RESOURCE ARRAY r_commoneng_closed_extensions_list
-    {
-    items=
-        {
-		LBUF { txt=".dm"; },
-		LBUF { txt=".dr"; },
-		LBUF { txt=".drc"; },
-		LBUF { txt=".ott"; },
-		LBUF { txt=".awb"; },
-		LBUF { txt=".mid"; },
-		LBUF { txt=".c3d"; },
-		LBUF { txt=".jar"; },
-		LBUF { txt=".ngd"; },
-		LBUF { txt=".sis"; },
-		LBUF { txt=".sisx"; }
-        };
-    }
-
-
-// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/apfile/apinstallationmonitor.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,110 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apinstallationmonitor.cpp
+//
+
+#include "apinstallationmonitor.h"
+
+// This active object has lower priority than CApaAppArcServer but higher than file scanning periodic timer.
+const TInt KAppInstallationPriority=CActive::EPriorityStandard-10; 
+
+//
+// CApaAppInstallationMonitor class
+//
+EXPORT_C CApaAppInstallationMonitor* CApaAppInstallationMonitor::NewL(CApaAppArcServer* aApaServer)
+	{
+	CApaAppInstallationMonitor* self = new(ELeave) CApaAppInstallationMonitor(aApaServer);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CApaAppInstallationMonitor::CApaAppInstallationMonitor(CApaAppArcServer* aApaServer) :
+		CActive(KAppInstallationPriority),
+		iApaServer(aApaServer),
+		iWaitingForStartInstallation(ETrue)
+	{
+	CActiveScheduler::Add(this);
+	}
+
+void CApaAppInstallationMonitor::ConstructL()
+	{
+	User::LeaveIfError(iSwisProperty.Attach(KUidSystemCategory, Swi::KUidSoftwareInstallKey));
+	}
+
+EXPORT_C CApaAppInstallationMonitor::~CApaAppInstallationMonitor()
+	{
+	Cancel();
+	iSwisProperty.Close();
+	}
+
+EXPORT_C void CApaAppInstallationMonitor::Start()
+	{
+	DoStart();
+	}
+
+TBool CApaAppInstallationMonitor::InstallationInProgress() const
+	{
+	return (((iSwisState & Swi::KSwisOperationMask) & Swi::ESwisUninstall)||((iSwisState & Swi::KSwisOperationMask) & Swi::ESwisInstall))
+			&& ((iSwisState & Swi::KSwisOperationStatusMask) == Swi::ESwisStatusNone);
+	}
+	
+void CApaAppInstallationMonitor::RunL()
+	{
+	if(iStatus.Int() == KErrNone)
+		{
+		DoStart();
+		
+		if (iWaitingForStartInstallation)
+			{
+			if (InstallationInProgress())
+				{
+				iWaitingForStartInstallation = EFalse;
+				iApaServer->HandleInstallationStartEvent();
+				}
+			}
+		
+		else 
+			{ // waiting for end Installation
+			if (!InstallationInProgress())
+				{
+				iWaitingForStartInstallation = ETrue;
+				TRAP_IGNORE(iApaServer->HandleInstallationEndEventL()); // let user try again if OOM
+				}
+			}
+		}
+	}
+	
+void CApaAppInstallationMonitor::DoStart()
+	{
+	iSwisProperty.Subscribe(iStatus);
+	TInt err = iSwisProperty.Get(KUidSystemCategory, Swi::KUidSoftwareInstallKey, iSwisState);
+	if(err == KErrNone)
+		{
+		SetActive();
+		}
+	else
+		{
+		iSwisProperty.Cancel();
+		}
+	}
+
+void CApaAppInstallationMonitor::DoCancel()
+	{
+	iSwisProperty.Cancel();
+	}
+	
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/apfile/apinstallationmonitor.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,57 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apinstallationmonitor.h
+// 
+
+#ifndef __APINSTALLATIONMONITOR_H__
+#define __APINSTALLATIONMONITOR_H__
+
+#include <e32base.h>
+#include <e32property.h>
+#include <swi/swispubsubdefs.h>
+#include "../apserv/apsserv.h"
+
+
+class CApaAppArcServer;
+
+NONSHARABLE_CLASS(CApaAppInstallationMonitor) : public CActive
+/** 
+CApaAppInstallationMonitor
+
+A low priority active object which monitors software
+install for installations/uninstallations of applications.
+
+@internalComponent
+*/
+	{
+public:
+	IMPORT_C static CApaAppInstallationMonitor* NewL(CApaAppArcServer*);
+	IMPORT_C ~CApaAppInstallationMonitor();
+	IMPORT_C void Start();
+private:
+	CApaAppInstallationMonitor(CApaAppArcServer*);
+	void ConstructL();
+	void RunL();
+	void RunError();
+	void DoStart();
+	void DoCancel();
+	TBool InstallationInProgress() const;
+private:
+	CApaAppArcServer* iApaServer;
+	RProperty iSwisProperty;
+	TInt iSwisState;
+	TBool iWaitingForStartInstallation;
+	};
+	
+#endif
--- a/localisation/apparchitecture/apfile/aprfndr.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,458 +0,0 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "aprfndr.h"
-#include "APFDEF.H"
-#include "APFSTD.H"
-#include "../apgrfx/APGAIR.H"
-#include <apsserv.h>
-#include "../apgrfx/apprivate.h"
-#include <apsidchecker.h>
-
-/////////////////////////////
-// CApaAppRegFinder
-/////////////////////////////
-
-EXPORT_C CApaAppRegFinder* CApaAppRegFinder::NewL(const RFs& aFs)
-	{
-	CApaAppRegFinder* self=NewLC(aFs);
-	CleanupStack::Pop(self);
-	return self;
-	}
-	
-EXPORT_C CApaAppRegFinder* CApaAppRegFinder::NewLC(const RFs& aFs)
-	{
-	CApaAppRegFinder* self=new (ELeave) CApaAppRegFinder(aFs);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;
-	}
-	
-CApaAppRegFinder::CApaAppRegFinder(const RFs& aFs)
-	: iFs(aFs),
-	  iListOfFolders(2),
-	  iSidCheckerMap(CApaAppListServer::Self()?CApaAppListServer::Self()->RescanCallBack():TCallBack(NULL,NULL))
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	  ,iRemovableMediaDriveScan(EFalse)
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-	{
-	}
-
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-CApaAppRegFinder::~CApaAppRegFinder()
-	{
-	iListOfFolders.ResetAndDestroy();
-	iListOfFolders.Close();
-	iListOfDrives.Close();
-	iSidCheckerMap.Close();
-	delete iFileList; // should already be deleted and NULL at this point
-	}
-#else
-CApaAppRegFinder::~CApaAppRegFinder()
-	{
-	iListOfFolders.ResetAndDestroy();
-	iListOfFolders.Close();
-	if (iListOfDrives)
-		{
-		iListOfDrives->Close();
-		delete iListOfDrives;
-		}
-	iSidCheckerMap.Close();
-	
-	delete iFileList; // should already be deleted and NULL at this point
-	}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-void CApaAppRegFinder::ConstructL()
-	{
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	BuildDriveListL();
-#else
-	GetDriveListL();
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	GetFolderListL();
-	}
-
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-void CApaAppRegFinder::GetDriveListL()
-	{
-	TDriveList driveList;
-	User::LeaveIfError(iFs.DriveList(driveList));
-	iListOfDrives = new(ELeave) RArray<TDriveUnitInfo>(4);
-	BuildDriveListL(iFs, driveList, *iListOfDrives);
-	}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-_LIT(KAppRegRscSearchPath,"\\private\\10003a3f\\apps\\");
-_LIT(KAppRegRscImportSearchPath,"\\private\\10003a3f\\import\\apps\\");
-_LIT(KAppRegRscImportNonNativeSearchPath,"\\private\\10003a3f\\import\\apps\\NonNative\\Resource\\");
-
-void CApaAppRegFinder::GetFolderListL()
-	{
-	TPtrC ptr(KAppRegRscSearchPath);
-	HBufC* searchPath = ptr.AllocLC();
-	User::LeaveIfError(iListOfFolders.Append(searchPath));
-	CleanupStack::Pop(searchPath);
-	searchPath = NULL;
-
-	ptr.Set(KAppRegRscImportSearchPath);
-	searchPath = ptr.AllocLC();
-	User::LeaveIfError(iListOfFolders.Append(searchPath));
-	CleanupStack::Pop(searchPath);
-
-	ptr.Set(KAppRegRscImportNonNativeSearchPath);
-	searchPath = ptr.AllocLC();
-	User::LeaveIfError(iListOfFolders.Append(searchPath));
-	CleanupStack::Pop(searchPath);
-	}
-
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-void CApaAppRegFinder::BuildDriveListL(const RFs& aFs, const TDriveList& aSourceDriveList, RArray<TDriveUnitInfo>& aDestDriveList)
-	{ // static
-	TInt drive(EDriveY);
-	TDriveUnitInfo driveUnitInfo;
-	while(drive >= EDriveA)
-		{
-		if (aSourceDriveList[drive]!=KDriveAbsent)
-			{
-			TDriveInfo driveInfo;
-			TInt ret = aFs.Drive(driveInfo,drive);	
-			if (ret==KErrNone)
-				{
-				if (driveInfo.iType!=EMediaNotPresent && driveInfo.iType!=EMediaRemote)
-					{
-					driveUnitInfo.iDriveUnit=drive;
-					driveUnitInfo.iDriveAtt=driveInfo.iDriveAtt;
-					User::LeaveIfError(aDestDriveList.Append(driveUnitInfo));
-					}
-				}
-			}
-		--drive;
-		}
-	driveUnitInfo.iDriveUnit=EDriveZ;
-	driveUnitInfo.iDriveAtt=KDriveAttRom;	
-	User::LeaveIfError(aDestDriveList.Append(driveUnitInfo));
-	}
-
-EXPORT_C void CApaAppRegFinder::FindAllAppsL()
-	{
-	delete iFileList;
-	iFileList = NULL;
-	if(iListOfDrives)
-		{
-		iListOfDrives->Close();
-		delete iListOfDrives;
-		iListOfDrives = NULL;
-		}
-	GetDriveListL();
-	iCurrentIndexInDriveList=-1;
-	iCurrentIndexInFolderList=0;
-	iScanStage=EScanStageNonImportROM;
-	iLastChkedApp = KNullUid;
-	}
-
-#else
-void CApaAppRegFinder::BuildDriveListL()
-	{
-	TDriveList driveList;
-	User::LeaveIfError(iFs.DriveList(driveList));
-
-	TInt drive(EDriveY);
-	TDriveUnitInfo driveUnitInfo;
-	while(drive >= EDriveA)
-		{
-		if (driveList[drive]!=KDriveAbsent)
-			{
-			TDriveInfo driveInfo;
-			TInt ret = iFs.Drive(driveInfo,drive);
-			if (ret==KErrNone)
-				{
-				if (iRemovableMediaDriveScan)
-					{// iListOfDrives should have list of all the removable drives irrespective of presence of the media
-					if ((driveInfo.iType != EMediaRemote) && (driveInfo.iDriveAtt & KDriveAttRemovable))
-						{
-						driveUnitInfo.iDriveUnit=drive;
-						driveUnitInfo.iDriveAtt=driveInfo.iDriveAtt;
-						User::LeaveIfError(iListOfDrives.Append(driveUnitInfo));
-						}
-					}
-				else
-					{
-					if (driveInfo.iType!=EMediaNotPresent && driveInfo.iType!=EMediaRemote)
-						{
-						driveUnitInfo.iDriveUnit=drive;
-						driveUnitInfo.iDriveAtt=driveInfo.iDriveAtt;
-						User::LeaveIfError(iListOfDrives.Append(driveUnitInfo));
-						}
-					}
-				}
-			}
-		--drive;
-		}
-	if (!iRemovableMediaDriveScan)
-		{
-		driveUnitInfo.iDriveUnit=EDriveZ;
-		driveUnitInfo.iDriveAtt=KDriveAttRom;
-		User::LeaveIfError(iListOfDrives.Append(driveUnitInfo));
-		}
-	}
-
-EXPORT_C void CApaAppRegFinder::FindAllRemovableMediaAppsL()
-	{
-	iRemovableMediaDriveScan = ETrue;	
-	FindAllAppsL();
-	}
-
-EXPORT_C const RArray<TDriveUnitInfo>& CApaAppRegFinder::DriveList() const
-	{
-	return (iListOfDrives);
-	}
-
-EXPORT_C void CApaAppRegFinder::FindAllAppsL()
-	{
-	delete iFileList;
-	iFileList = NULL;
-	iListOfDrives.Reset();
-	BuildDriveListL();
-	iCurrentIndexInDriveList=-1;
-	iCurrentIndexInFolderList=0;
-	iScanStage = EScanStageNonImportROM;	
-	iRemovableMediaDriveScan = EFalse;
-	iLastChkedApp = KNullUid;
-	}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-/** Scans the applications in following order:
-1. non-import y-a,z but only on ROM drives
-2. import on all non-ROM drives in the order y-a,z
-3. import on all ROM drives in the order y-a,z
-
-Upgrades of apparc server (via Software Install) are currently disallowed. 
-This means it is not possible to install registration files to \private\10003a3f\apps 
-(on any drive), so there is no need to scan \private\10003a3f\apps on non ROM based drives.
-*/
-EXPORT_C TBool CApaAppRegFinder::NextL(TApaAppEntry& aAppRegistrationEntry, const RPointerArray<HBufC>& aForcedRegistrations)
-	{
-	TBool entryFound = EFalse;
-	while (DoNextL(aAppRegistrationEntry, aForcedRegistrations, entryFound))
-		{
-		//do nothing. the point is to keep calling DoNextL
-		}
-	return entryFound;
-	}
-
-TBool CApaAppRegFinder::DoNextL(TApaAppEntry& aAppRegistrationEntry, const RPointerArray<HBufC>& aForcedRegistrations, TBool& aEntryFound)
-	{
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	__ASSERT_ALWAYS(iListOfDrives.Count(),Panic(EPanicFindAllAppsNotCalled));
-#else
-	__ASSERT_ALWAYS(iListOfDrives,Panic(EPanicFindAllAppsNotCalled));
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-	if (!iFileList)
-		{// scan the next drive/dir
-		iFileIndex = 0;
-		while (GetNextDriveAndFolder())
-			{
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-			if (GetFileListL((iListOfDrives[iCurrentIndexInDriveList]).iDriveUnit, *iListOfFolders[iCurrentIndexInFolderList])==KErrNone)
-#else
-			if (GetFileListL(((*iListOfDrives)[iCurrentIndexInDriveList]).iDriveUnit, *iListOfFolders[iCurrentIndexInFolderList])==KErrNone)
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-				{
-				break;
-				}
-			}
-		if (!iFileList)
-			{
-			aEntryFound = EFalse;
-			return EFalse; // no more drives to scan
-			}
-		}
-	// scan the file list
-	while (iFileIndex<iFileList->Count())
-		{
-		const TEntry& entry=(*iFileList)[iFileIndex++];
-		if (!ApaUtils::HandleAsRegistrationFile(entry.iType))
-			{
-			continue; // only interested in app registration resource files
-			}
-			
-		TParse parse;
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-		const TDriveName driveName = (iListOfDrives[iCurrentIndexInDriveList]).iDriveUnit.Name();
-#else
-		const TDriveName driveName = ((*iListOfDrives)[iCurrentIndexInDriveList]).iDriveUnit.Name();
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-		parse.Set(entry.iName, iListOfFolders[iCurrentIndexInFolderList], &driveName);
-
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-		if (iListOfDrives[iCurrentIndexInDriveList].iDriveAtt&KDriveAttRemovable)
-#else
-		if ((*iListOfDrives)[iCurrentIndexInDriveList].iDriveAtt&KDriveAttRemovable)
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-			{
-			if (entry[2] != iLastChkedApp) //Check for validity only if it has not yet been checked
-				{
-				TUid appTypeUid;
-				if(entry[0].iUid == KUidPrefixedNonNativeRegistrationResourceFile)
-					{
-					appTypeUid = entry[1];
-					}
-				else
-					{
-					appTypeUid = KNullUid;
-					}
-				
-				// Get the CAppSidChecker for this type of executable
-				TBool validRegistration = ETrue;
-				#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-				TRAPD(err, validRegistration = iSidCheckerMap.FindSidCheckerL(appTypeUid).AppRegisteredAt(entry[2], (iListOfDrives)[iCurrentIndexInDriveList].iDriveUnit));
-				#else
-				TRAPD(err, validRegistration = iSidCheckerMap.FindSidCheckerL(appTypeUid).AppRegisteredAt(entry[2], (*iListOfDrives)[iCurrentIndexInDriveList].iDriveUnit));
-				#endif // SYMBIAN_APPARC_APPINFO_CACHE
-				iLastChkedApp = entry[2];
-				if(err == KErrNone)
-					{
-					if(!validRegistration)
-						{
-						// Check if this registration file should be included
-						// despite not being officially reported as a valid registration
-						HBufC* fullName = parse.FullName().AllocLC();
-						TInt pos = aForcedRegistrations.FindInOrder(fullName, TLinearOrder<HBufC>(CApaAppList::CompareStrings));
-						CleanupStack::PopAndDestroy(fullName);
-						if (pos == KErrNotFound)
-							{
-							continue;
-							}
-						}
-					}
-				else if(err != KErrNotFound)
-					{
-					User::Leave(err);
-					}
-				}
-			else
-				{
-				continue;
-				}
-			}
-		aAppRegistrationEntry.iUidType = entry.iType;
-		aAppRegistrationEntry.iFullName = parse.FullName();
-		aEntryFound = ETrue; // we found one
-		return EFalse;
-		}
-	// current Drive has been exhausted
-	delete iFileList;
-	iFileList = NULL;
-	return ETrue; // scan the next drive
-	}
-	
-TBool CApaAppRegFinder::GetNextDriveAndFolder()	
-	{
-	TBool found=ETrue;
-	TBool checkNextFolder=ETrue;
-	TDriveUnitInfo driveUnitInfo;
-	while (checkNextFolder)
-		{
-		// move to next folder
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-		if (++iCurrentIndexInDriveList>=iListOfDrives.Count())
-#else
-		if (++iCurrentIndexInDriveList>=iListOfDrives->Count())
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-			{
-			iCurrentIndexInDriveList=0;
-			++iScanStage;
-			}
-		
-		//Get drive info
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-		driveUnitInfo=iListOfDrives[iCurrentIndexInDriveList];
-#else
-		driveUnitInfo=(*iListOfDrives)[iCurrentIndexInDriveList];
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-		//check folder
-		switch (iScanStage)
-			{
-			case EScanStageNonImportROM:
-				if (driveUnitInfo.iDriveAtt==KDriveAttRom)
-					{
-					iCurrentIndexInFolderList=0;
-					checkNextFolder=EFalse;
-					}
-				break;
-			case EScanStageImportNonROM:
-				if (driveUnitInfo.iDriveAtt!=KDriveAttRom)
-					{
-					iCurrentIndexInFolderList=1;
-					checkNextFolder=EFalse;
-					}
-				break;
-			case EScanStageImportNonNativeResourceNonROM:
-				if (driveUnitInfo.iDriveAtt!=KDriveAttRom)
-					{
-					iCurrentIndexInFolderList=2;
-					checkNextFolder=EFalse;
-					}
-				break;
-			case EScanStageImportROM:
-				if (driveUnitInfo.iDriveAtt==KDriveAttRom)
-					{
-					iCurrentIndexInFolderList=1;
-					checkNextFolder=EFalse;
-					}
-				break;
-			case EScanStageImportNonNativeResourceROM:
-				if (driveUnitInfo.iDriveAtt==KDriveAttRom)
-					{
-					iCurrentIndexInFolderList=2;
-					checkNextFolder=EFalse;
-					}
-				break;
-			case EScanStageComplete:
-				checkNextFolder=EFalse;
-				found=EFalse;
-				break;
-			default:
-				break;	
-			}
-		}
-	return found;
-	}	
-	
-_LIT(KAppRegRscSearchAnyFile,"*");
-
-TInt CApaAppRegFinder::GetFileListL(TDriveUnit aDriveUnit, const TDesC& aPathName)
-	{
-	const TDriveName driveName=aDriveUnit.Name();
-	TParse parse;
-	TInt error = parse.Set(KAppRegRscSearchAnyFile,&aPathName,&driveName);
-	User::LeaveIfError(error);
-	TInt ret = iFs.GetDir(parse.FullName(), KEntryAttAllowUid, ESortNone, iFileList);
-	CheckErrorL(ret);
-	return ret;
-	}
-
-void CApaAppRegFinder::CheckErrorL(TInt aError)
-// static
-	{
-	if (aError!=KErrNone && aError!=KErrNotFound && aError!=KErrPathNotFound && aError!=KErrNotReady
-		&& aError!=KErrDisMounted && aError!=KErrCorrupt && aError!=KErrNotSupported && aError!=KErrBadName && aError!=KErrLocked)
-		{
-		User::Leave(aError);
-		}
-	}
--- a/localisation/apparchitecture/apfile/aprfndr.h	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#ifndef __APRFNDR_H__
-#define __APRFNDR_H__
-
-#include <apaid.h>
-#include <f32file.h>
-#include <apsidchecker.h>
-
-class TDriveUnitInfo;
-
-/**
-@internalComponent
-*/
-class CApaAppRegFinder : public CBase
-	{
-public: // Construction / Destruction
-	IMPORT_C static CApaAppRegFinder* NewL(const RFs& aFs);
-	IMPORT_C static CApaAppRegFinder* NewLC(const RFs& aFs);
-	~CApaAppRegFinder();
-private: // Private construction
-	CApaAppRegFinder(const RFs& aFs);
-	void ConstructL();
-public:
-	IMPORT_C TBool NextL(TApaAppEntry& aEntry, 	const RPointerArray<HBufC>& aForcedRegistrations); // increments a scan for all apps
-	IMPORT_C void FindAllAppsL(); // sets up a scan for all apps
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	IMPORT_C const RArray<TDriveUnitInfo>& DriveList() const;
-	IMPORT_C void FindAllRemovableMediaAppsL();	// sets up a scan for all removable media apps
-#endif	// SYMBIAN_APPARC_APPINFO_CACHE
-
-private:
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	void BuildDriveListL();
-#else
-	void GetDriveListL();
-	static void BuildDriveListL(const RFs& aFs, const TDriveList& aSourceDriveList, RArray<TDriveUnitInfo>& aDestDriveList);
-#endif	// SYMBIAN_APPARC_APPINFO_CACHE
-	TInt GetFileListL(TDriveUnit aDriveUnit, const TDesC& aPathName);
-	void GetFolderListL();
-	static void CheckErrorL(TInt aError);
-	TBool DoNextL(TApaAppEntry& aEntry, const RPointerArray<HBufC>& aForcedRegistrations,
-		TBool& aEntryFound);
-	TBool GetNextDriveAndFolder();
-
-private:
-	enum TScanStage
-		{
-		EScanStageNonImportROM,
-		EScanStageImportNonROM, 
-		EScanStageImportNonNativeResourceNonROM,
-		EScanStageImportROM,
-		EScanStageImportNonNativeResourceROM,
-		EScanStageComplete
-		};
-	
-
-private:
-	CDir* iFileList;
-	TInt iCurrentIndexInDriveList;
-	TInt iCurrentIndexInFolderList;
-	TInt iFileIndex;
-	const RFs& iFs;
-	RPointerArray<HBufC> iListOfFolders;
-	TInt iScanStage;
-	RSidCheckerMap iSidCheckerMap;
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	RArray<TDriveUnitInfo> iListOfDrives;
-	TBool iRemovableMediaDriveScan;
-#else
-	RArray<TDriveUnitInfo>* iListOfDrives;
-#endif	// SYMBIAN_APPARC_APPINFO_CACHE
-	TUid iLastChkedApp; //Uid of the last app whose sid cheking has been done.
-	};
-	
-class TDriveUnitInfo 
-{
-public:
- TDriveUnit iDriveUnit; 
- TUint		iDriveAtt;
-};
-	
-#endif // __APRFNDR_H__
--- a/localisation/apparchitecture/apfile/apuninstallmonitor.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "apuninstallmonitor.h"
-
-// This active object has lower priority than CApaAppListServer but higher than file scanning periodic timer.
-const TInt KAppUninstallPriority=CActive::EPriorityStandard-10; 
-
-//
-// CApaAppUnInstallMonitor class
-//
-EXPORT_C CApaAppUnInstallMonitor* CApaAppUnInstallMonitor::NewL(CApaAppListServer* aApaServer)
-	{
-	CApaAppUnInstallMonitor* self = new(ELeave) CApaAppUnInstallMonitor(aApaServer);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaAppUnInstallMonitor::CApaAppUnInstallMonitor(CApaAppListServer* aApaServer) :
-		CActive(KAppUninstallPriority),
-		iApaServer(aApaServer),
-		iWaitingForStartUninstall(ETrue)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-void CApaAppUnInstallMonitor::ConstructL()
-	{
-	User::LeaveIfError(iSwisProperty.Attach(KUidSystemCategory, Swi::KUidSoftwareInstallKey));
-	}
-
-EXPORT_C CApaAppUnInstallMonitor::~CApaAppUnInstallMonitor()
-	{
-	Cancel();
-	iSwisProperty.Close();
-	}
-
-EXPORT_C void CApaAppUnInstallMonitor::Start()
-	{
-	DoStart();
-	}
-
-TBool CApaAppUnInstallMonitor::UnInstallInProgress() const
-	{
-	return ((iSwisState & Swi::KSwisOperationMask) & Swi::ESwisUninstall)
-			&& ((iSwisState & Swi::KSwisOperationStatusMask) == Swi::ESwisStatusNone);
-	}
-
-void CApaAppUnInstallMonitor::RunL()
-	{
-	if(iStatus.Int() == KErrNone)
-		{
-		DoStart();
-		
-		if (iWaitingForStartUninstall)
-			{
-			if (UnInstallInProgress())
-				{
-				iWaitingForStartUninstall = EFalse;
-				iApaServer->HandleStartUninstallEvent();
-				}
-			}
-		else
-			{ // waiting for end uninstall
-			if (!UnInstallInProgress())
-				{
-				iWaitingForStartUninstall = ETrue;
-				TRAP_IGNORE(iApaServer->HandleEndUninstallEventL()); // let user try again if OOM
-				}
-			
-			}
-		}
-	}
-	
-void CApaAppUnInstallMonitor::DoStart()
-	{
-	iSwisProperty.Subscribe(iStatus);
-	TInt err = iSwisProperty.Get(KUidSystemCategory, Swi::KUidSoftwareInstallKey, iSwisState);
-	if(err == KErrNone)
-		{
-		SetActive();
-		}
-	else
-		{
-		iSwisProperty.Cancel();
-		}
-	}
-
-void CApaAppUnInstallMonitor::DoCancel()
-	{
-	iSwisProperty.Cancel();
-	}
-	
-
-// End of file
--- a/localisation/apparchitecture/apfile/apuninstallmonitor.h	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#ifndef __APUNINSTALLMONITOR_H__
-#define __APUNINSTALLMONITOR_H__
-
-#include <e32base.h>
-#include <e32property.h>
-#include <swi/swispubsubdefs.h>
-#include <apsserv.h>
-
-
-class CApaAppListServer;
-
-NONSHARABLE_CLASS(CApaAppUnInstallMonitor) : public CActive
-/** 
-CApaAppUnInstallMonitor
-
-A low priority (EPriorityLow) active object which monitors software
-install for installations/uninstallation of applications.
-
-@internalComponent
-*/
-	{
-public:
-	IMPORT_C static CApaAppUnInstallMonitor* NewL(CApaAppListServer*);
-	IMPORT_C ~CApaAppUnInstallMonitor();
-	IMPORT_C void Start();
-private:
-	CApaAppUnInstallMonitor(CApaAppListServer*);
-	void ConstructL();
-	void RunL();
-	void RunError();
-	void DoStart();
-	void DoCancel();
-	TBool UnInstallInProgress() const;
-private:
-	CApaAppListServer* iApaServer;
-	RProperty iSwisProperty;
-	TInt iSwisState;
-	TBool iWaitingForStartUninstall;
-	};
-	
-#endif
--- a/localisation/apparchitecture/apfile/eshell_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apfile/eshell_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/apgrfx/APGAIR.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "APGAIR.H"
-#include "APGAPLST.H"
-#include "APGICNFL.H" 
-#include "APFDEF.H"
-
-extern void CleanupServiceArray(TAny* aServiceArray);
-
-CApaAppInfoReader::CApaAppInfoReader(RFs& aFs, const TUid aAppUid)
-	: iFs(aFs),
-	iAppUid(aAppUid),
-	iTimeStamp(0),
-	iDefaultScreenNumber(0),
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-	iDefaultIconsUsed(EFalse),
-#endif	//SYMBIAN_APPARC_APPINFO_CACHE
-	iNonMbmIconFile(EFalse),
-	iLocalisableResourceFileTimeStamp(0),
-	iApplicationLanguage(ELangNone),
-	iIndexOfFirstOpenService(-1)
-	{
-	}
-
-CApaAppInfoReader::~CApaAppInfoReader()
-	{
-	delete iAppBinaryFullName;
-	delete iCaption;
-	delete iShortCaption;
-	delete iIcons;
-	if (iViewDataArray)
-		{
-		iViewDataArray->ResetAndDestroy();
-		delete iViewDataArray;
-		}
-	delete iOwnedFileArray;
-	delete iIconFileName;
-	delete iLocalisableResourceFileName;
-	
-	if (iServiceArray)
- 		{
- 		CleanupServiceArray(iServiceArray);
- 		iServiceArray = NULL;
-  		}
-	delete iOpaqueData;
-	}
-
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-HBufC* CApaAppInfoReader::AppBinaryFullName()
-	{
-	HBufC* fileName = iAppBinaryFullName;
-	iAppBinaryFullName = NULL; // ownership transferred to caller
-	return fileName;
-	}
-
-TUidType CApaAppInfoReader::AppBinaryUidType() const
-	{
-	return iAppBinaryUidType;
-	}
-
-TTime CApaAppInfoReader::TimeStamp() const
-	{
-	return iTimeStamp;
-	}
-
-TTime CApaAppInfoReader::IconFileTimeStamp() const
-     {
-     return iIconFileTimeStamp;
-     }
-
-void CApaAppInfoReader::Capability(TDes8& aCapabilityBuf) const
-	{
-	TApaAppCapabilityBuf buf(iCapability);
-	TApaAppCapability::CopyCapability(aCapabilityBuf, buf);
-	}
-
-TUint CApaAppInfoReader::DefaultScreenNumber() const
-	{
-	return iDefaultScreenNumber;
-	}
-
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-HBufC* CApaAppInfoReader::Caption()
-	{
-	HBufC* caption = iCaption;
-	iCaption = NULL; // ownership transferred to caller
-	return caption;
-	}
-
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-HBufC* CApaAppInfoReader::ShortCaption()
-	{
-	HBufC* shortCaption = iShortCaption;
-	iShortCaption = NULL; // ownership transferred to caller
-	return shortCaption;
-	}
-
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-CApaAppIconArray* CApaAppInfoReader::Icons()
-	{
-	CApaAppIconArray* icons = iIcons;
-	iIcons = NULL; // ownership transferred to caller
-	return icons;
-	}
-
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-TBool CApaAppInfoReader::DefaultIconsUsed() const
-	{
-	return iDefaultIconsUsed;
-	}
-#else
-TInt CApaAppInfoReader::NumOfAppIcons() const
-	{
-	return iNumOfAppIcons;
-	}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-CArrayPtrFlat<CApaAppViewData>* CApaAppInfoReader::Views()
-	{
-	CArrayPtrFlat<CApaAppViewData>* viewDataArray = iViewDataArray;
-	iViewDataArray = NULL; // ownership transferred to caller
-	return viewDataArray;
-	}
-	
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-CDesCArray* CApaAppInfoReader::OwnedFiles()
-	{
-	CDesCArray* ownedFileArray = iOwnedFileArray;
-	iOwnedFileArray = NULL; // ownership transferred to caller
-	return ownedFileArray;
-	}
-
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-HBufC* CApaAppInfoReader::IconFileName()
-	{
-	HBufC* iconFileName = iIconFileName;
-	iIconFileName = NULL; // ownership transferred to caller
-	return iconFileName;
-	}
-
-TBool CApaAppInfoReader::NonMbmIconFile() const
-	{
-	return iNonMbmIconFile;
-	}
-
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-HBufC* CApaAppInfoReader::LocalisableResourceFileName()
-	{
-	HBufC* localisableResourceFileName = iLocalisableResourceFileName;
-	iLocalisableResourceFileName = NULL; // ownership transferred to caller
-	return localisableResourceFileName;
-	}
-
-TTime CApaAppInfoReader::LocalisableResourceFileTimeStamp() const
-	{
-	return iLocalisableResourceFileTimeStamp;
-	}
-	
-TLanguage CApaAppInfoReader::AppLanguage() const
-	{
-	return iApplicationLanguage;
-	}
-
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-CArrayFixFlat<TApaAppServiceInfo>* CApaAppInfoReader::ServiceArray(TInt& aIndexOfFirstOpenService)
-	{
-	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = iServiceArray;
-	iServiceArray = NULL;
-	aIndexOfFirstOpenService = iIndexOfFirstOpenService;
-	return serviceArray;
-	}
-
-
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-HBufC8* CApaAppInfoReader::OpaqueData()
-	{
-	HBufC8* opaqueData = iOpaqueData;
-	iOpaqueData = NULL;
-	return opaqueData;
-	}
--- a/localisation/apparchitecture/apgrfx/APGAIR.H	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,258 +0,0 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#if !defined(__APGAIR_H__)
-#define __APGAIR_H__
-
-#if !defined(__APAID_H__)
-#include <apaid.h>
-#endif
-#if !defined(__APMSTD_H__)
-#include <apmstd.h>
-#endif
-
-#include <barsc.h>
-#include <barsread.h>
-
-/**
-@internalComponent
-*/
-class ApaUtils
-	{
-public:
-	IMPORT_C static TBool HandleAsRegistrationFile(const TUidType& aUidType);
-	};
-
-/** The 2nd UID that defines a resource file as being an application registration resource file.
-
-@internalComponent
-*/
-const TUid KUidAppRegistrationFile ={0x101F8021};
-
-class CApaMaskedBitmap;
-class CApaAppViewData;
-class TEntry;
-class RFs;
-class CResourceFile;
-class RResourceReader;
-class CApaAppList;
-class CApaAppIconArray;
-
-/**
-@internalComponent
-*/
-
-NONSHARABLE_CLASS(CApaIconLoader) : public CBase
-	{
-public:
-	static CApaIconLoader* NewL(RFs& aFs);
-	static CApaIconLoader* NewLC(RFs& aFs);
-	~CApaIconLoader();
-
-	void AddIconArrayL(const CApaAppIconArray& aIcons);
-	void LoadAllIconsL();
-	TBool LoadIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CArrayPtr<CApaMaskedBitmap>& aIcons);
-
-private:
-	CApaIconLoader(RFs& aFs);
-	void ConstructL();
-	TInt IconIndexL(const TDesC& aFileName, TBool& aUseCache);
-	static TInt CompareIcons(const CApaMaskedBitmap& aFirst, const CApaMaskedBitmap& aSecond);
-
-private:
-	struct TKeyValuePair
-		{
-	public:
-		HBufC* iFileName; // key
-		TInt iIndex; // value
-		};
-private:
-	RFs& iFs;
-	RArray<TKeyValuePair> iIconIndexArray;
-	TInt iCachedArrayIndex;
-	RPointerArray<CApaAppIconArray> iIconArrays;
-	};
-
-/**
-@internalComponent
-*/
-NONSHARABLE_CLASS(CApaAppIconArray) : public CBase
-	{
-public:
-	static CApaAppIconArray* NewL(); // creates a dummy icon array
-	static CApaAppIconArray* NewAppIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader);
-	static CApaAppIconArray* NewViewIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader);
-	static CApaAppIconArray* NewDefaultIconsL(); // creates a CApaAppIconArray that uses the default icons
-	static CApaAppIconArray* NewRealDefaultIconsLC(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader); // creates the CApaAppIconArray that contains the default icons
-	~CApaAppIconArray();
-
-	TBool LoadIconsL();
-
-	CApaMaskedBitmap* IconBySize(const TSize& aSize) const;
-	CArrayFixFlat<TSize>* IconSizesL() const;
-	TInt Count() const;
-	TBool DefaultIconsUsed() const;
-	CApaMaskedBitmap* operator[](TInt aIndex) const;
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE	
-	TBool AreAppIconsLoaded() const;
-	TBool AreViewIconsLoaded() const;
-#endif	// SYMBIAN_APPARC_APPINFO_CACHE
-	
-private:
-	static CApaAppIconArray* NewL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons);
-	static CApaAppIconArray* NewLC(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons);
-	CApaAppIconArray();
-	CApaAppIconArray(TInt aNumOfIcons, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons);
-	void ConstructL(const TDesC& aMbmFileName);
-	void GetDefaultIconsL();
-	const CApaAppIconArray& DefaultIcons() const;
-	
-private:
-	TInt iNumOfIcons;
-	CApaIconLoader* iIconLoader;
-	TBool iFallbackToDefaultIcons;
-	HBufC* iMbmFileName;
-	TBool iDefaultIconsUsed;
-	CArrayPtrFlat<CApaMaskedBitmap>* iIcons;
-	CApaAppList* iDefaultIconsProvider;
-	};
-
-class CApaAppInfoReader : public CBase
-/**
-Abstract base class for application information readers.
-
-Concrete implementations should read information from some
-data source and implement policy specific to each reader.
-
-@internalComponent
-*/
-	{
-public:
-	~CApaAppInfoReader();
-public:
-	HBufC* AppBinaryFullName();
-	TUidType AppBinaryUidType() const;
-	TTime TimeStamp() const;
-	TTime IconFileTimeStamp() const;
-	void Capability(TDes8& aCapabilityBuf) const;
-	TUint DefaultScreenNumber() const;
-	HBufC* Caption();
-	HBufC* ShortCaption();
-	CApaAppIconArray* Icons();
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE	
-	TInt NumOfAppIcons() const;
-	virtual CApaIconLoader* IconLoader() = 0;
-#else	
-	TBool DefaultIconsUsed() const;
-#endif	// SYMBIAN_APPARC_APPINFO_CACHE
-	CArrayPtrFlat<CApaAppViewData>* Views();
-	CDesCArray* OwnedFiles();
-	HBufC* IconFileName();
-	TBool NonMbmIconFile() const;
-	HBufC* LocalisableResourceFileName();
-	TTime LocalisableResourceFileTimeStamp() const;
-	TLanguage AppLanguage() const;
-	CArrayFixFlat<TApaAppServiceInfo>* ServiceArray(TInt& aIndexOfFirstOpenService);
-	HBufC8* OpaqueData();
-
-public:
-	virtual TBool Read()=0;
-protected:
-	CApaAppInfoReader(RFs& aFs, const TUid aAppUid);
-	
-protected:
-	RFs& iFs;
-	TUid iAppUid;
-	HBufC* iAppBinaryFullName;
-	TUidType iAppBinaryUidType;
-	TTime iTimeStamp;
-	TTime iIconFileTimeStamp;
-	TApaAppCapability iCapability;
-	TUint iDefaultScreenNumber;
-	HBufC* iCaption;
-	HBufC* iShortCaption;
-	CApaAppIconArray* iIcons;
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	TInt iNumOfAppIcons;
-#else
-	TBool iDefaultIconsUsed;
-#endif
-	CArrayPtrFlat<CApaAppViewData>* iViewDataArray;
-	CDesCArray* iOwnedFileArray;
-	HBufC* iIconFileName;
-	TBool iNonMbmIconFile; // ETrue if icon filename is not an MBM file, however, EFalse does not necessarily mean it is an MBM file
-	HBufC* iLocalisableResourceFileName;
-	TTime iLocalisableResourceFileTimeStamp;
-	TLanguage iApplicationLanguage;
-	CArrayFixFlat<TApaAppServiceInfo>* iServiceArray;
-	TInt iIndexOfFirstOpenService;
-	TBool iOpenServiceIsLegacy;
-	HBufC8* iOpaqueData;
-	};
-
-class CApaAppInfoReaderV2 : public CApaAppInfoReader
-/**
-Reads application information from a combination of registration file,
-optional localisable resource file and optional icon file.
-Application information stored in this way is referred to as version 2.
-
-@internalComponent
-*/
-	{
-public:
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	static CApaAppInfoReaderV2* NewL(RFs& aFs, const TDesC& aRegistrationFileName, const TUid aAppUid);
-	virtual CApaIconLoader* IconLoader();
-#else
-	static CApaAppInfoReaderV2* NewL(RFs& aFs, const TDesC& aRegistrationFileName, const TUid aAppUid,const TDesC& aDefaultAppIconFileName);
-#endif	// SYMBIAN_APPARC_APPINFO_CACHE
-	~CApaAppInfoReaderV2();
-
-public:
-	virtual TBool Read();
-	static TBool FileIsMbm(const TDesC& aFileName);
-
-private:
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	CApaAppInfoReaderV2(RFs& aFs, const TDesC& aRegistrationFileName, const TUid aAppUid);
-#else
-	CApaAppInfoReaderV2(RFs& aFs, const TDesC& aRegistrationFileName, const TUid aAppUid, const TDesC& aDefaultAppIconFileName);
-#endif
-	void ConstructL();
-	void ReadMandatoryInfoL(CResourceFile*& aRegistrationFile, RResourceReader& aResourceReader);
-	void ReadNonLocalisableInfoL(RResourceReader& aResourceReader, CResourceFile*& aLocalisableResourceFile, TUint& aLocalisableResourceId);
-	void ReadNonLocalisableOptionalInfoL(RResourceReader& aResourceReader, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile);
-	void ReadDataTypesL(RResourceReader& aResourceReader, CArrayFixFlat<TDataTypeWithPriority>& aDatatypes);
-	void ReadLocalisableInfoL(const CResourceFile* aResourceFile, TUint aResourceId, TBool& aUseDefaultIcons);
-	HBufC* FullIconFileNameL(const TDesC& aIconFileName) const;
-	TBool HasWriteDeviceDataCap();
-    void ReadAppSecurityInfo();
-	
-    TBool FileIsMbmWithGenericExtensionL(const TDesC& aFileName) const;
-	static HBufC8* ReadOpaqueDataL(TUint aResourceId, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile);
-
-private:
-	const TDesC& iRegistrationFileName;
-	TBool iHasWriteDeviceDataCap;
-    TBool iIsSidTrusted;
-    // This flag is used to determine if app security info was allready read
-    TBool iSecurityInfoHasBeenRead;
-	CApaIconLoader* iIconLoader;	
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-	const TDesC& iDefaultAppIconFileName;
-#endif
-	};
-
-#endif
--- a/localisation/apparchitecture/apgrfx/APGAIRV2.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1281 +0,0 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "APGAIR.H"
-#include <apgaplst.h>
-#include <bautils.h>
-#include "APGICNFL.H" 
-#include "APFDEF.H"
-#include "apprivate.h"
-#include <barsc2.h>
-#include <barsread2.h>
-#include <e32uid.h>
-#include "APGSTD.H"
-
-#include "apsecutils.h"
-
-const TUint KResourceOffsetMask = 0xFFFFF000;
-
-
-_LIT(KAppBinaryPathAndExtension,"\\sys\\bin\\.exe");
-_LIT(KV1AppPathAndExtension, "\\system\\apps\\.app");
-const TInt KAppRegistrationInfoResourceId = 1;
-
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-CApaAppInfoReaderV2* CApaAppInfoReaderV2::NewL(RFs& aFs, const TDesC& aRegistrationFileName, const TUid aAppUid,const TDesC& aDefaultAppIconFileName)
-	{
-	CApaAppInfoReaderV2* self = new(ELeave) CApaAppInfoReaderV2(aFs, aRegistrationFileName, aAppUid,aDefaultAppIconFileName);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaAppInfoReaderV2::CApaAppInfoReaderV2(RFs& aFs, const TDesC& aRegistrationFileName, const TUid aAppUid,const TDesC& aDefaultAppIconFileName)
-	: CApaAppInfoReader(aFs, aAppUid),
-	iRegistrationFileName(aRegistrationFileName),iDefaultAppIconFileName(aDefaultAppIconFileName)
-	{
-	}
-#else
-CApaAppInfoReaderV2* CApaAppInfoReaderV2::NewL(RFs& aFs, const TDesC& aRegistrationFileName, const TUid aAppUid)
-	{
-	CApaAppInfoReaderV2* self = new(ELeave) CApaAppInfoReaderV2(aFs, aRegistrationFileName, aAppUid);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaAppInfoReaderV2::CApaAppInfoReaderV2(RFs& aFs, const TDesC& aRegistrationFileName, const TUid aAppUid)
-	: CApaAppInfoReader(aFs, aAppUid),
-	iRegistrationFileName(aRegistrationFileName)
-	{
-	}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-void CApaAppInfoReaderV2::ConstructL()
-	{
-	iIconLoader = CApaIconLoader::NewL(iFs);
-	}
-
-CApaAppInfoReaderV2::~CApaAppInfoReaderV2()
-	{
-	delete iIconLoader;
-	}
-
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-// The behaviour of the following function is a little non-standard, as it
-// transfers ownership of the pointer owned by a CApaAppInfoReaderV2 object
-// to the caller. This means that this function is only designed to be called once.
-// Doing things this way provides a small performance optimisation by enabling the caller
-// to delete it's stored pointer, and replace it with one returned by this function,
-// instead of having to copy the object (copying could be expensive for the methods
-// of this class that need to return arrays).
-CApaIconLoader* CApaAppInfoReaderV2::IconLoader()
-	{
-	CApaIconLoader* iconLoader = iIconLoader;
-	iIconLoader = NULL; // ownership transferred to caller
-	return iconLoader;
-	}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-// this method reads the minimum information required to register an app
-// if this fails (Leaves), we say the read has been unsuccessful
-void CApaAppInfoReaderV2::ReadMandatoryInfoL(CResourceFile*& aRegistrationFile, RResourceReader& aResourceReader)
-	{
-	TEntry entry;
-	User::LeaveIfError(iFs.Entry(iRegistrationFileName, entry));
-	iTimeStamp = entry.iModified;
-	
-	TUint fileOffset = 0;
-	TInt fileLength = 0;
-	TUid middleUid(KUidApp);
-
-	// in the case of a non-native application, the resource file
-	// has been padded with the application type uid
-	
-	if (TParsePtrC(iRegistrationFileName).Path().CompareF(KLitPathForNonNativeResourceAndIconFiles)==0)
-		{
-		fileOffset=sizeof(TCheckedUid);
-		fileLength=entry.iSize-fileOffset;
-		middleUid=entry[1];
-		if (middleUid.iUid==KNullUid.iUid)
-			{
-			User::Leave(KErrCorrupt);
-			}
-		}
-
-	aRegistrationFile = CResourceFile::NewL(iFs, iRegistrationFileName, fileOffset, fileLength);
-	aResourceReader.OpenL(aRegistrationFile, KAppRegistrationInfoResourceId);
-
-	aResourceReader.ReadUint32L(); // skip over LONG reserved_long
-	aResourceReader.ReadUint32L(); // skip over LLINK reserved_llink
-
-	// read LTEXT app_file
-	const TPtrC appFile(aResourceReader.ReadTPtrCL());
-	TParse parse; // this object gets used for 2 purposes: first to check that a TParsePtrC can be created over "appFile" without it panicking, and second to construct iAppBinaryFullName
-	User::LeaveIfError(parse.SetNoWild(appFile, NULL, NULL)); // do this before creating a TParsePtrC, since TParsePtrC's constructor panics if it fails (which would provide an easy way for malware to kill the Apparc server)
-	const TParsePtrC appFileParser(appFile);
-
-	// read LONG attributes
-	iCapability.iAttributes = aResourceReader.ReadUint32L();
-
-	if (!appFileParser.NamePresent())
-		{
-		User::Leave(KErrCorrupt);
-		}
-	const TPtrC appNameWithoutExtension(appFileParser.Name());
-	const TPtrC registrationFileDrive(TParsePtrC(iRegistrationFileName).Drive());
-	TUid firstUid(TUid::Null());
-	if (iCapability.iAttributes & TApaAppCapability::ENonNative)
-		{
-		if (!appFileParser.PathPresent() || !appFileParser.ExtPresent())
-			{
-			User::Leave(KErrCorrupt);
-			}
-		const TPtrC appFilePath(appFileParser.Path());
-		const TPtrC appFileNameAndExt(appFileParser.NameAndExt());
-		TPtrC appFileDrive(registrationFileDrive);
-		if (appFileParser.DrivePresent())
-			{
-			appFileDrive.Set(appFileParser.Drive());
-			}
-		User::LeaveIfError(parse.SetNoWild(appFileDrive, &appFilePath, &appFileNameAndExt));
-		// keep firstUid as TUid::Null()
-		}
-	else if (iCapability.iAttributes & TApaAppCapability::EBuiltAsDll)
-		{
-		// legacy dll-style app
-		User::LeaveIfError(parse.SetNoWild(registrationFileDrive, &KV1AppPathAndExtension, &appNameWithoutExtension));
-		User::LeaveIfError(parse.AddDir(appNameWithoutExtension));
-		firstUid = KDynamicLibraryUid;
-		}
-	else
-		{
-		// exe-style app
-		User::LeaveIfError(parse.SetNoWild(registrationFileDrive, &KAppBinaryPathAndExtension, &appNameWithoutExtension));
-		firstUid = KExecutableImageUid;
-		}
-	iAppBinaryFullName = parse.FullName().AllocL();
-
-	// set the TUidType for the app binary
-	// cannot read the TEntry info from the app binary because it's in \sys\bin
-	iAppBinaryUidType = TUidType(firstUid, middleUid, iAppUid);
-	}
-
-// reads as much info as it can
-// at least captions and icons must be setup on return from this method (using defaults if necessary)
-TBool CApaAppInfoReaderV2::Read()
-	{
-	CResourceFile* registrationFile = NULL;
-	RResourceReader resourceReader;
-	TRAPD(ret, ReadMandatoryInfoL(registrationFile, resourceReader));
-	if (ret != KErrNone)
-		{
-		resourceReader.Close();
-		delete registrationFile;
-		return EFalse; // might have read something, but failed to setup enough info to make it worthwhile trying to read any more
-		}
-
-	CResourceFile* localisableFile = NULL;
-	TUint localisableResourceId = 1; // only initialising this here to keep the compiler happy, as it's concerned that the variable might be used without having been initialised. The variable should be initialised later, before it's used
-	TRAP(ret, ReadNonLocalisableInfoL(resourceReader, localisableFile, localisableResourceId));
-
-	if (ret == KErrNone)
-		{
-		TRAP(ret, ReadNonLocalisableOptionalInfoL(resourceReader, registrationFile, localisableFile));
-		}
-
-	TBool useDefaultIcons=ETrue;
-
-	if (ret == KErrNone && localisableFile)
-		{
-		TRAP(ret, ReadLocalisableInfoL(localisableFile, localisableResourceId, useDefaultIcons));
-		}
-	delete localisableFile;
-	resourceReader.Close();
-	delete registrationFile;
-
-	// if anything went wrong, we tell the caller that the read was unsuccessful. Some
-	// of the members of this class may not contain complete data, but this doesn't matter
-	// because the caller shouldn't try to access the data if the read was unsuccessful
-	TBool readSuccessful = (ret == KErrNone);
-
-	if (useDefaultIcons)
-		{
-		delete iIcons;
-		iIcons = NULL;
-		TRAP_IGNORE(iIcons = CApaAppIconArray::NewDefaultIconsL());
-		}
-
-	return readSuccessful;
-	}
-
-HBufC* CApaAppInfoReaderV2::FullIconFileNameL(const TDesC& aIconFileName) const
-	{
-	HBufC* filename = NULL;
-	if (aIconFileName.Length() == 0)
-		{
-		return NULL;
-		}
-	/*
-	 * aIconFileName may contain a valid string in some format (for eg. URI format) other than path to a regular file on disk
-	 * and that can be a mbm or non-mbm file. Such a filename will be reported as invalid filename by iFs.IsValidName() method. 
-	 * aIconFileName will be returned since it is a valid string. 
-	 */	
-	if(!iFs.IsValidName(aIconFileName))
-		{
-		filename = aIconFileName.AllocL();
-		return filename;
-		}
-	
-	TParsePtrC parsePtr(aIconFileName);
-	if (parsePtr.IsWild()
-		|| !parsePtr.PathPresent()
-		|| !parsePtr.NamePresent())
-		{
-		return NULL;
-		}
-	// check for fully qualified icon filename
-	if (parsePtr.DrivePresent() && BaflUtils::FileExists(iFs, aIconFileName))
-		{
-		filename = aIconFileName.AllocL();
-		}
-	else
-		{
-		// check for icon file on same drive as localisable resource file
-		TParse parse;
-		TPtrC localisableResourceFileDrive = TParsePtrC(*iLocalisableResourceFileName).Drive();
-		TInt ret = parse.SetNoWild(localisableResourceFileDrive, &aIconFileName, NULL);
-		if (ret == KErrNone && BaflUtils::FileExists(iFs, parse.FullName()))
-			{
-			filename = parse.FullName().AllocL();
-			}
-		else
-			{
-			TPtrC registrationFileDrive = TParsePtrC(iRegistrationFileName).Drive();
-			if (TInt(TDriveUnit(registrationFileDrive)) != TInt(TDriveUnit(localisableResourceFileDrive)))
-				{
-				// check for icon file on same drive as registration file
-				ret = parse.SetNoWild(registrationFileDrive, &aIconFileName, NULL);
-				if (ret == KErrNone && BaflUtils::FileExists(iFs, parse.FullName()))
-					{
-					filename = parse.FullName().AllocL();
-					}
-				}
-			}
-		}
-	return filename;
-	}
-
-void CApaAppInfoReaderV2::ReadLocalisableInfoL(const CResourceFile* aResourceFile, TUint aResourceId, TBool& aUseDefaultIcons)
-	{
-	RResourceReader resourceReader;
-	resourceReader.OpenLC(aResourceFile, aResourceId);
-
-	resourceReader.ReadUint32L(); // skip over LONG reserved_long
-	resourceReader.ReadUint32L(); // skip over LLINK reserved_llink
-
-	// read LTEXT short_caption
-	iShortCaption = resourceReader.ReadHBufCL();
-
-	resourceReader.ReadUint32L(); // skip over LONG reserved_long
-	resourceReader.ReadUint32L(); // skip over LLINK reserved_llink
-
-	// read LTEXT caption
-	iCaption = resourceReader.ReadHBufCL();
-
-	// read WORD number_of_icons
-	const TInt numOfIcons = resourceReader.ReadInt16L();
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	iNumOfAppIcons = numOfIcons;
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-	// read LTEXT icon_file
-	TPtrC iconFile = resourceReader.ReadTPtrCL();
-	
-	iIconFileName = FullIconFileNameL(iconFile);
-	if (iIconFileName)
-		{
-		TEntry entry;
-		TInt ret = iFs.Entry(*iIconFileName, entry);
-		if (KErrNone == ret)
-			{
-			iIconFileTimeStamp = entry.iModified;
-			}
-			
-		aUseDefaultIcons = EFalse;
-		if (iFs.IsValidName(*iIconFileName))
-			{
-			if(FileIsMbmWithGenericExtensionL(*iIconFileName))
-				{
-				if (numOfIcons > 0)
-					{
-					CApaAppIconArray* iconArray = CApaAppIconArray::NewAppIconsL(numOfIcons, *iIconFileName, *iIconLoader);
-					delete iIcons;
-					iIcons = iconArray;
-					}
-				else
-					{
-					aUseDefaultIcons = ETrue;		
-					}
-				}
-			else
-				{
-				iNonMbmIconFile = ETrue;
-				}
-			}
-		//If the filename is not a valid name then the file is treated as a non-mbm file.
-		else
-			{
-			iNonMbmIconFile = ETrue;
-			}
-		}
-	// read LEN WORD STRUCT view_list[]
-	const TInt numOfViews = resourceReader.ReadInt16L();
-	if (numOfViews > 0)
-		{
-		iViewDataArray = new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);
-		}
-	for(TInt view = 0; view < numOfViews; ++view)
-		{
-		CApaAppViewData* viewData=CApaAppViewData::NewLC();
-		resourceReader.ReadUint32L(); // skip over LONG reserved_long
-		resourceReader.ReadUint32L(); // skip over LLINK reserved_llink
-
-		// read LONG uid
-		const TUid viewUid = {resourceReader.ReadInt32L()};
-		viewData->SetUid(viewUid);
-		// read LONG screen_mode
-		const TInt screenMode = {resourceReader.ReadInt32L()};
-		viewData->SetScreenMode(screenMode);
-
-		resourceReader.ReadUint32L(); // skip over LONG reserved_long
-		resourceReader.ReadUint32L(); // skip over LLINK reserved_llink
-
-		// read LTEXT caption
-		TPtrC viewCaption = resourceReader.ReadTPtrCL();
-		viewData->SetCaptionL(viewCaption);
-		// read WORD number_of_icons
-		const TInt numOfViewIcons = resourceReader.ReadInt16L();
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-		viewData->SetNumOfViewIcons(numOfViewIcons);
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-		// read LTEXT icon_file
-		TPtrC viewIconFile = resourceReader.ReadTPtrCL();
-		HBufC* const fullViewIconFileName = FullIconFileNameL(viewIconFile);
-		if (fullViewIconFileName)
-			{
-			CleanupStack::PushL(fullViewIconFileName);
-			viewIconFile.Set(*fullViewIconFileName);
-			viewData->SetIconFileNameL(viewIconFile);
-			
-			if (iFs.IsValidName(viewIconFile))
-				{
-				if(!FileIsMbmWithGenericExtensionL(viewIconFile))
-					{
-					viewData->SetNonMbmIconFile(ETrue);
-					}
-				}
-			//If the filename is not a valid name then the file is treated as a non-mbm file.
-			else
-				{
-				viewData->SetNonMbmIconFile(ETrue);
-				}
-			}
-		else
-			{
-			viewIconFile.Set(KNullDesC);
-			if (numOfViewIcons > 0 && iIconFileName)
-				{
-				viewIconFile.Set(*iIconFileName); // default to app icon filename
-				}
-			}
-		if (numOfViewIcons > 0 && iFs.IsValidName(viewIconFile) && (FileIsMbmWithGenericExtensionL(viewIconFile)))
-			{
-			CApaAppIconArray* iconArray = CApaAppIconArray::NewViewIconsL(numOfViewIcons, viewIconFile, *iIconLoader);
-			viewData->SetIconArray(iconArray);
-			iconArray = NULL;
-			}
-		if (fullViewIconFileName)
-			{
-			CleanupStack::PopAndDestroy(fullViewIconFileName);
-			}
-		iViewDataArray->AppendL(viewData);
-		CleanupStack::Pop(viewData);
-		}
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-	iIconLoader->LoadAllIconsL();
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	// Read LTEXT group_name
-	// If a localised group name has been specified, it overrides
-	// The group name (if any), specified by APP_REGISTRATION_INFO
-
-	TApaAppGroupName groupName;
-	TRAPD(ret, (groupName = resourceReader.ReadTPtrCL()));
-	if (ret != KErrNone)
-		{
-		 if (ret != KErrEof)
-			 {
-	         User::Leave(ret);
-			 }
-		}
-	else
-		{
-	     if (groupName.Length() > 0)
-			 {
-			 iCapability.iGroupName = groupName;
-			 }
-		}
-
-	CleanupStack::PopAndDestroy(&resourceReader);
-	}
-
-
-TBool CApaAppInfoReaderV2::FileIsMbm(const TDesC& aFileName)
-	{ // static
-	if (aFileName.Length() > 0)
-		{
-		TParsePtrC parsePtr(aFileName);
-		_LIT(KFileExtensionMBM, ".MBM");
-		if (parsePtr.Ext().CompareF(KFileExtensionMBM) == 0)
-			{
-			return ETrue;
-			}
-		}
-	return EFalse;
-	}
-
-
-
-
-/*An MBM file may have a generic icon extension. In this case, as a way to check whether the file is an MBM one, 
-it is necessary to read the content of the fist four 32bit words of it and find out whether these words correspond to 
-KWriteonceFileStoreUid, KMultiBitmapFileImageUid, zero and KMultiBitmapFileImageChecksum respectively (defined in graphics/gditools/bmconv/bmconv.h).
-So the file is opened and the first 4 32 bit words are extracted and compared with the header information of standard MBM file.
-If they match, the function returns ETrue, else it returns EFalse */
-TBool CApaAppInfoReaderV2::FileIsMbmWithGenericExtensionL(const TDesC& aFileName) const 
-      { 
-      if (aFileName.Length() > 0) 
-            { 
-            //open a file in Share mode - this will allow other methods to access it too
-            RFile file;
-            User::LeaveIfError(file.Open(iFs,aFileName,EFileShareReadersOnly));
-            //this is done beacuse the file can also be accessed by applist at the same time
-            //buffer stores the 16 bytes of the file
-            CleanupClosePushL(file);
-            TBuf8<16> buffer;
-            User::LeaveIfError(file.Read(buffer,16));
-            CleanupStack::PopAndDestroy();//file
-            //we use a constant pointer to the buffer to read header info
-        	TPtrC8 filePointer(buffer);
-        	
-            /*The first 16 bytes of an MBM file are the same for any generic MBM file.
-            These are :
-            KWriteOnceFileStoreUid = 0x10000037(Emulator MBM file) 0x10000041(ROM image)	
-            KMultiBitMapFileImageUid = 0x10000042(Emulator MBM file) 	0x00000001(ROM image)
-            Zero = 0x00000000(Emulator MBM file) 0x0000000C(ROM image)
-            checksum = 0x47396439(Emulator MBM file) 0x10000040(ROM image)
-            The first 16 bytes of the given file is compared with these standard values to ascertain it is MBM file*/
-        	if((filePointer[3]==0x10)&&(filePointer[2]==0x00)&&(filePointer[1]==0x00)&&(filePointer[0]==0x37))
-        		{//KWriteOnceFileStoreUid = 0x10000037
-        		if((filePointer[7]==0x10)&&(filePointer[6]==0x00)&&(filePointer[5]==0x00)&&(filePointer[4]==0x42))
-        			{//KMultiBitMapFileImageUid = 0x10000042
-        			if((filePointer[11]==0x00)&&(filePointer[10]==0x00)&&(filePointer[9]==0x00)&&(filePointer[8]==0x00))
-        				{//Zero = 0x00000000)
-        				if((filePointer[15]==0x47)&&(filePointer[14]==0x39)&&(filePointer[13]==0x64)&&(filePointer[12]==0x39))
-        					{//checksum = 0x47396439
-        					return ETrue;
-        					}
-        				}
-        			}
-        		}
-        	//Else Check for ROM Image MBM file's header
-        	else if((filePointer[3]==0x10)&&(filePointer[2]==0x00)&&(filePointer[1]==0x00)&&(filePointer[0]==0x41))
-        		{//KWriteOnceFileStoreUid = 0x10000041
-        		if((filePointer[7]==0x00)&&(filePointer[6]==0x00)&&(filePointer[5]==0x00)&&(filePointer[4]==0x01))
-        			{//KMultiBitMapFileImageUid = 0x00000001
-        			if((filePointer[11]==0x00)&&(filePointer[10]==0x00)&&(filePointer[9]==0x00)&&(filePointer[8]==0x0C))
-        				{//Zero = 0x0000000C)
-        				if((filePointer[15]==0x10)&&(filePointer[14]==0x00)&&(filePointer[13]==0x00)&&(filePointer[12]==0x40))
-        					{//checksum = 0x10000040
-        					return ETrue;
-        					}
-        				}
-        			}
-        		}
-        	}
-      return EFalse;
-      }
-
-HBufC8* CApaAppInfoReaderV2::ReadOpaqueDataL(TUint aResourceId, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile)
-	{ // static
-	HBufC8* opaqueData = NULL;
-	if (aResourceId == 0)
-		{
-		opaqueData = HBufC8::NewL(0);
-		}
-	else
-		{
-		if (aResourceId & KResourceOffsetMask)
-			{
-			// expecting opaque data to be in the localisable resource file
-			if (aLocalisableResourceFile)
-				{
-				aLocalisableResourceFile->ConfirmSignatureL();
-				opaqueData = aLocalisableResourceFile->AllocReadLC(aResourceId);
-				CleanupStack::Pop(opaqueData);
-				}
-			else
-				{
-				opaqueData = HBufC8::NewL(0);
-				}
-			}
-		else
-			{
-			// expecting opaque data to be in the registration file
-			__ASSERT_ALWAYS(aRegistrationFile, Panic(EPanicNullPointer));
-			opaqueData = aRegistrationFile->AllocReadLC(aResourceId); //lint !e613 Suppress ossible use of null pointer
-			CleanupStack::Pop(opaqueData);
-			}
-		}
-	return opaqueData;
-	}
-
-void CApaAppInfoReaderV2::ReadNonLocalisableOptionalInfoL(RResourceReader& aResourceReader, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile)
-	{
-	// read LEN WORD STRUCT service_list[]
-	TInt serviceCount = 0;
-	// service information was not present in the first release of the registration file
-	// APP_REGISTRATION_INFO resource struct
-	// this method must not leave if the registration file doesn't contain service information, so the
-	// following call to ReadInt16L is trapped to ensure this method doesn't leave just because
-	// there is no more information in the resource to read (KErrEof)
-	TRAPD(err, serviceCount = aResourceReader.ReadInt16L());
-	if (err != KErrNone)
-		{
-		if (err != KErrEof)
-			{
-			User::Leave(err);
-			}
-		return; // end of resource reached
-		}
-	else
-		{
-		if ((!iServiceArray) && (serviceCount > 0))
-			{
-			iServiceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-			}
-		while (serviceCount--)
-			{
-			const TUid serviceUid = {aResourceReader.ReadUint32L()};
-			
-			if ((serviceUid == KOpenServiceUid) && (iOpenServiceIsLegacy))
-				{
-				__ASSERT_DEBUG(iIndexOfFirstOpenService == 0, User::Invariant());
-				// If we found an Open service in the SERVICE_INFO declaration
-				// then we must ignore the legacy one
-				(*iServiceArray)[0].Release();
-				iServiceArray->Delete(0);
-				iOpenServiceIsLegacy = EFalse;
-				iIndexOfFirstOpenService = -1;
-				}
-			
-			CArrayFixFlat<TDataTypeWithPriority>* datatypes = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(5);
-			CleanupStack::PushL(datatypes);
-			ReadDataTypesL(aResourceReader, *datatypes);
-			
-			const TUint resourceId = aResourceReader.ReadUint32L();
-			HBufC8* opaqueData = NULL;
-			opaqueData = ReadOpaqueDataL(resourceId, aRegistrationFile, aLocalisableResourceFile);
-			CleanupStack::PushL(opaqueData);
-			
-			TApaAppServiceInfo serviceInfo(serviceUid, datatypes, opaqueData); // takes ownership of opaqueData
-			iServiceArray->AppendL(serviceInfo);
-			CleanupStack::Pop(opaqueData);
-			CleanupStack::Pop(datatypes);
-			if ((serviceUid == KOpenServiceUid) && (iIndexOfFirstOpenService < 0))
-				{
-				iIndexOfFirstOpenService = iServiceArray->Count() - 1;
-				}
-			}
-		// read LLINK opaque_data
-		const TUint resourceId = aResourceReader.ReadUint32L();
-		delete iOpaqueData;
-		iOpaqueData = NULL;
-		iOpaqueData = ReadOpaqueDataL(resourceId, aRegistrationFile, aLocalisableResourceFile);
-		}
-	}
-
-void CApaAppInfoReaderV2::ReadNonLocalisableInfoL(RResourceReader& aResourceReader, CResourceFile*& aLocalisableResourceFile, TUint& aLocalisableResourceId)
-	{
-	__ASSERT_DEBUG(aLocalisableResourceFile == NULL, User::Invariant());
-
-	// read LTEXT localisable_resource_file
-	TPtrC localisableResourceFileName(aResourceReader.ReadTPtrCL());
-	if (localisableResourceFileName.Length() > 0 && iFs.IsValidName(localisableResourceFileName))
-		{
-		// determine the language specific name of the localisable resource file
-		TParse parse;
-		TParsePtrC parsePtr(iRegistrationFileName);
-		User::LeaveIfError(parse.SetNoWild(parsePtr.Drive(), &KAppResourceFileExtension, &localisableResourceFileName));
-		TFileName resourceFileName(parse.FullName());
-		BaflUtils::NearestLanguageFile(iFs, resourceFileName, iApplicationLanguage);
-		iLocalisableResourceFileName = resourceFileName.AllocL();
-
-		TEntry entry;
-		User::LeaveIfError(iFs.Entry(*iLocalisableResourceFileName, entry));
-		iLocalisableResourceFileTimeStamp = entry.iModified;
-	
-
-		// open the localisable resource file	
-		aLocalisableResourceFile = CResourceFile::NewL(iFs, resourceFileName, 0, 0);
-		}
-
-	// read LONG localisable_resource_id
-	aLocalisableResourceId = aResourceReader.ReadUint32L();
-	if (aLocalisableResourceFile && (aLocalisableResourceId & KResourceOffsetMask))
-		{
-		aLocalisableResourceFile->ConfirmSignatureL();
-		}
-
-	iCapability.iAppIsHidden=aResourceReader.ReadInt8L();
-	iCapability.iEmbeddability = static_cast<TApaAppCapability::TEmbeddability>(aResourceReader.ReadInt8L());
-	iCapability.iSupportsNewFile=aResourceReader.ReadInt8L();
-	iCapability.iLaunchInBackground = aResourceReader.ReadInt8L();
-	iCapability.iGroupName = aResourceReader.ReadTPtrCL();
-
-	// read BYTE default_screen_number
-	iDefaultScreenNumber = aResourceReader.ReadUint8L();
- 	
-	//read the datatypes
-	CArrayFixFlat<TDataTypeWithPriority>* datatypes = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(5);
-	CleanupStack::PushL(datatypes);
-	ReadDataTypesL(aResourceReader, *datatypes);
-	//dataTypes is deleted if 
-	// A. There are no legacy datatypes
-	// B. Control panel plugin apps are not allowed to register MIME types.If they happen to have any, these datatypes should be ignored.
-	if ((iCapability.iAttributes & TApaAppCapability::EControlPanelItem) || (datatypes->Count() == 0))
-		{
-		CleanupStack::PopAndDestroy(datatypes);
-		}
-	else
-		{
-		__ASSERT_DEBUG(!iServiceArray, User::Invariant());
-		iServiceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-		HBufC8* opaqueData = HBufC8::NewL(0);
-		CleanupStack::PushL(opaqueData);
-		TApaAppServiceInfo serviceInfo(KOpenServiceUid, datatypes, opaqueData);
-		iServiceArray->AppendL(serviceInfo);
-		CleanupStack::Pop(opaqueData);
-		CleanupStack::Pop(datatypes);
-		iIndexOfFirstOpenService = 0;
-		iOpenServiceIsLegacy = ETrue;
-		}
-
-	// read LEN WORD STRUCT file_ownership_list[]
-	const TInt fileOwnershipArraySize = aResourceReader.ReadInt16L();
-	if (fileOwnershipArraySize > 0)
-		{
-		iOwnedFileArray = new(ELeave) CDesCArraySeg(1);
-		}
-	for (TInt i=0; i < fileOwnershipArraySize; i++)
-		{
-		TPtrC fileNamePtr = aResourceReader.ReadTPtrCL();
-		iOwnedFileArray->AppendL(fileNamePtr);
-		}
-	}
-	
-void CApaAppInfoReaderV2::ReadDataTypesL(RResourceReader& aResourceReader,
-	CArrayFixFlat<TDataTypeWithPriority>& aDatatypes)
-	{
-	// read LEN WORD STRUCT datatype_list[]
-	const TInt dataTypeArraySize = aResourceReader.ReadInt16L();
-	if (dataTypeArraySize <= 0)
-		{
-		return;
-		}
-	
-	for (TInt i=0; i < dataTypeArraySize; i++)
-		{
-		TDataTypePriority priority = static_cast<TDataTypePriority>(aResourceReader.ReadInt32L());
-        
-		//Check for data priority of UnTrusted apps however the trusted apps will not have any restrictions 
-		//over the data priority.	
-		//If an untrusted app has write device data capability (i.e. still has priority = KDataTypePrioritySystem),
-		//do not restrict to KDataTypeUnTrustedPriorityThreshold
-		if (priority > KDataTypeUnTrustedPriorityThreshold || priority == KDataTypePrioritySystem )
-		    {
-		    ReadAppSecurityInfo();
-
-            if (priority == KDataTypePrioritySystem)
-                {
-                // Check that the app has capability WriteDeviceData
-                if (!iHasWriteDeviceDataCap)
-                    {
-                    priority = KDataTypePriorityNormal;
-                    }
-                }
-            else
-                {
-                //data priority for UnTrusted apps would be capped if it is greater than the threshold priority i.e, KMaxTInt16.
-                TInt match=iRegistrationFileName.MatchF(KLitPathForUntrustedRegistrationResourceFiles);
-                if (match != KErrNotFound && !iIsSidTrusted) 
-                    {
-                    //if registration file is in import directory and 
-                    //its sid is in unprotected range - downgrade the priority
-                    priority = KDataTypeUnTrustedPriorityThreshold;	
-                    }
-                }
-		    }
-		TPtrC8 dataTypePtr = aResourceReader.ReadTPtrC8L();
-		TDataType dataType(dataTypePtr);
-		TDataTypeWithPriority dataTypeWithPriority(dataType, priority);
-		aDatatypes.AppendL(dataTypeWithPriority);
-		}
-	}
-
-// This method can be used to check whether app has a WriteDeviceCap 
-// and its sid is trusted
-void CApaAppInfoReaderV2::ReadAppSecurityInfo()
-    {
-    if (!iSecurityInfoHasBeenRead)
-        {
-        __ASSERT_DEBUG( iAppBinaryFullName, Panic(EPanicNullPointer) );
-        const TInt err = CApaSecurityUtils::CheckAppSecurity( *iAppBinaryFullName, 
-                                        iHasWriteDeviceDataCap,
-                                        iIsSidTrusted);
-        if ( KErrNone != err )
-            {
-            iHasWriteDeviceDataCap = EFalse;
-            iIsSidTrusted = EFalse;
-            }
-        iSecurityInfoHasBeenRead = ETrue;   
-        }
-    }
-
-//
-// Class CApaIconLoader
-//
-
-CApaIconLoader* CApaIconLoader::NewL(RFs& aFs)
-	{
-	CApaIconLoader* self = NewLC(aFs);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaIconLoader* CApaIconLoader::NewLC(RFs& aFs)
-	{
-	CApaIconLoader* self = new(ELeave) CApaIconLoader(aFs);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;
-	}
-
-CApaIconLoader::CApaIconLoader(RFs& aFs) :
-		iFs(aFs)
-	{
-	}
-
-void CApaIconLoader::ConstructL()
-	{
-	} //lint !e1762 Suppress member function could be made const
-
-
-CApaIconLoader::~CApaIconLoader()
-	{
-	TInt arrayCount = iIconIndexArray.Count();
-	while (--arrayCount >= 0)
-		{
-		delete (iIconIndexArray[arrayCount].iFileName);
-		}
-	iIconIndexArray.Close();
-	iIconArrays.Close();
-	}
-
-void CApaIconLoader::AddIconArrayL(const CApaAppIconArray& aIcons)
-	{
-	iIconArrays.AppendL(&aIcons);
-	}
-
-void CApaIconLoader::LoadAllIconsL()
-	{
-	const TInt iconArraysCount = iIconArrays.Count();
-	CleanupClosePushL(iIconArrays);
-	for (TInt ii = 0; ii <iconArraysCount; ++ii)
-		{
-		iIconArrays[ii]->LoadIconsL();
-		}
-	CleanupStack::PopAndDestroy(&iIconArrays);
-	}
-
-// given an mbm filename, returns the next index to read from the file
-// always set aUseCache to EFalse on first call in a sequence of calls
-TInt CApaIconLoader::IconIndexL(const TDesC& aFileName, TBool& aUseCache)
-	{
-	if (aUseCache)
-		{
-		TInt ret = iIconIndexArray[iCachedArrayIndex].iIndex++;
-		return ret;
-		}
-	else
-		{
-		aUseCache = ETrue;
-		}
-
-	// if filename in array, get the next index
-	TInt ret = 0;
-	const TInt arrayCount = iIconIndexArray.Count();
-	TInt arrayIndex;
-	for (arrayIndex = 0; arrayIndex < arrayCount; arrayIndex++)
-		{
-		__ASSERT_DEBUG(iIconIndexArray[arrayIndex].iFileName, Panic(EDPanicInvalidIconIndexArray));
-		if (iIconIndexArray[arrayIndex].iFileName->CompareF(aFileName) == 0)
-			{
-			ret = iIconIndexArray[arrayIndex].iIndex++;
-			iCachedArrayIndex = arrayIndex;
-			break;
-			}
-		}
-
-	if (arrayIndex >= arrayCount)
-		{
-		// filename not found, add it to array
-		TKeyValuePair keyValuePair;
-		keyValuePair.iFileName = aFileName.AllocL();
-		keyValuePair.iIndex = 0;
-		ret = keyValuePair.iIndex++;
-		User::LeaveIfError(iIconIndexArray.Append(keyValuePair));
-		iCachedArrayIndex = arrayCount;
-		}
-	return ret;
-	}
-	
-
-
-// returns EFalse if there was an error obtaining aMbmFileName's entry information,
-// otherwise returns ETrue.
-// Leaves if an error occurs while trying to populate aIcons or sort icons
-TBool CApaIconLoader::LoadIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CArrayPtr<CApaMaskedBitmap>& aIcons)
-	{
-	TEntry entry;
-	TInt error=iFs.Entry(aMbmFileName,entry);
-	if (error!=KErrNone)
-		{
-		return EFalse;
-		}
-	TInt iconIndex;
-	TInt fileIndex;
-	TBool useCache = EFalse;
-
-	
-	// create link to CApaAppList which owns this object as it has a separate share protected RFs
-	// which can be used to load bitmap icons 
-	CApaAppList* const appList = CApaAppList::Self();
-	
-	RFile mbmFile;
-	CleanupClosePushL(mbmFile);
-	User::LeaveIfError(mbmFile.Open(appList->ShareProtectedFileServer(), aMbmFileName, EFileShareReadersOnly));
-
-	for(iconIndex=0; iconIndex<aNumOfIcons; ++iconIndex)	
-		{		
-		CApaMaskedBitmap* bitmap = CApaMaskedBitmap::NewLC();
-		fileIndex = IconIndexL(aMbmFileName, useCache);
-		User::LeaveIfError(bitmap->Load(mbmFile, 2*fileIndex));
-		User::LeaveIfError((bitmap->Mask())->Load(mbmFile,2*fileIndex+1));		
-		aIcons.AppendL(bitmap);
-		CleanupStack::Pop(bitmap);		
-		}
-	
-	CleanupStack::PopAndDestroy(&mbmFile); // close mbmFile	
-
-	// now sort them in ascending order of size
-	TInt numberOfIcons = aIcons.Count();
-	// create a new array that we can sort by area, populated from aIcons
-	RPointerArray<CApaMaskedBitmap> ptrArray(numberOfIcons);
-	CleanupClosePushL(ptrArray);
-	TLinearOrder<CApaMaskedBitmap> order(CApaIconLoader::CompareIcons);
-	for (iconIndex=0; iconIndex<numberOfIcons; iconIndex++)
-		{
-		User::LeaveIfError(ptrArray.InsertInOrderAllowRepeats(aIcons[iconIndex], order));
-		}
-	// copy the sorted icon pointers back into aIcons - must not Leave inside the loop below
-	for (iconIndex=0; iconIndex<numberOfIcons; iconIndex++)
-		{
-		aIcons[iconIndex]=ptrArray[iconIndex];
-		}
-	CleanupStack::PopAndDestroy(&ptrArray);
-
-	return ETrue;
-	}
-
-TInt CApaIconLoader::CompareIcons(const CApaMaskedBitmap& aFirst, const CApaMaskedBitmap& aSecond)
-	{ // static
-	TSize sizeFirst = aFirst.SizeInPixels();
-	TInt areaFirst = sizeFirst.iWidth*sizeFirst.iHeight;
-	TSize sizeSecond = aSecond.SizeInPixels();
-	TInt areaSecond = sizeSecond.iWidth*sizeSecond.iHeight;
-	return areaFirst - areaSecond;
-	}
-
-//
-// Class CApaAppIconArray
-//
-
-CApaAppIconArray* CApaAppIconArray::NewL()
-	{
-	return new(ELeave) CApaAppIconArray();
-	}
-
-/* public factory functions */
-CApaAppIconArray* CApaAppIconArray::NewAppIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader)
-	{
-	return NewL(aNumOfIcons,aMbmFileName,aIconLoader,ETrue);
-	}
-
-CApaAppIconArray* CApaAppIconArray::NewViewIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader)
-	{
-	return NewL(aNumOfIcons,aMbmFileName,aIconLoader,EFalse);
-	}
-
-CApaAppIconArray* CApaAppIconArray::NewDefaultIconsL()
-	{
-	CApaAppIconArray* self = NewL();
-	CleanupStack::PushL(self);
-	self->GetDefaultIconsL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaAppIconArray* CApaAppIconArray::NewRealDefaultIconsLC(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader)
-	{
-	return NewLC(aNumOfIcons,aMbmFileName,aIconLoader,EFalse);
-	}
-
-/* real NewL and NewLC, private */
-CApaAppIconArray* CApaAppIconArray::NewL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons)
-	{
-	CApaAppIconArray* self = NewLC(aNumOfIcons,aMbmFileName,aIconLoader,aFallbackToDefaultIcons);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaAppIconArray* CApaAppIconArray::NewLC(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons)
-	{
-	CApaAppIconArray* self = new(ELeave) CApaAppIconArray(aNumOfIcons,aIconLoader,aFallbackToDefaultIcons);
-	CleanupStack::PushL(self);
-	self->ConstructL(aMbmFileName);
-	return self;
-	}
-
-CApaAppIconArray::CApaAppIconArray()
-	{
-	}
-
-CApaAppIconArray::CApaAppIconArray(TInt aNumOfIcons, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons) :
-		iNumOfIcons(aNumOfIcons),
-		iIconLoader(&aIconLoader),
-		iFallbackToDefaultIcons(aFallbackToDefaultIcons)
-	{
-	}
-
-void CApaAppIconArray::ConstructL(const TDesC& aMbmFileName)
-	{
-	iMbmFileName = aMbmFileName.AllocL();
-	ASSERT(iIconLoader);
-	iIconLoader->AddIconArrayL(*this);
-	}
-
-CApaAppIconArray::~CApaAppIconArray()
-	{
-	if(iDefaultIconsUsed)
-		{
-		ASSERT(iDefaultIconsProvider);
-		if(iDefaultIconsProvider)
-			iDefaultIconsProvider->ReleaseDefaultIconArray();
-		}
-	delete iMbmFileName;
-	if (iIcons)
-		{
-		iIcons->ResetAndDestroy();
-		delete iIcons;
-		}
-	iDefaultIconsProvider = NULL;
-	iIconLoader = NULL;
-	}
-
-// returns EFalse if there was an error obtaining iMbmFileName's entry information,
-// otherwise returns ETrue or leaves with a system-wide error code
-TBool CApaAppIconArray::LoadIconsL()
-	{
-	ASSERT(iIconLoader);
-	ASSERT(!iDefaultIconsUsed);
-	ASSERT(!iIcons);
-	iIcons = new(ELeave) CArrayPtrFlat<CApaMaskedBitmap>(5);
-	TBool badMbmEntryInfo = EFalse;
-	TRAPD(err,badMbmEntryInfo = !iIconLoader->LoadIconsL(iNumOfIcons,*iMbmFileName,*iIcons));
-
-	// We'll be called by the iconLoader at most once, and after we've been called,
-	// it might be destroyed. So we shouldn't keep a pointer to it anymore.
-	iIconLoader = NULL;
-
-	if ((badMbmEntryInfo || err != KErrNone) && iFallbackToDefaultIcons)
-		{
-		GetDefaultIconsL();
-		}
-	else if (badMbmEntryInfo)
-		{
-		return EFalse;
-		}
-	else if (err != KErrNone)
-		{
-		User::Leave(err);
-		}
-	return ETrue;
-	}
-
-CApaMaskedBitmap* CApaAppIconArray::IconBySize(const TSize& aSize) const
-	{
-	if(iDefaultIconsUsed)
-		{
-		return DefaultIcons().IconBySize(aSize);
-		}
-	else if(iIcons == NULL && iIconLoader == NULL)
-		{
-		// Then we've been created with the default constructor, just pretend
-		// there's no icon of the right size
-		return NULL;
-		}
-	else if(iIcons == NULL)
-		{
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-		// Arriving here means the the icons need loading but havn't been loaded yet.
-		// when we have lazy loading, this will be a trigger condition for loading them
-		ASSERT(iIcons);
-		return NULL;
-		}
-	else
-		{
-#else
-		// Arriving here means the the icons need loading but havn't been loaded yet.
-		TRAPD(err, iIconLoader->LoadAllIconsL());
-		if (err != KErrNone)
-			{
-			return NULL;
-			}
-		}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-	const TInt count = iIcons->Count();
-	CApaMaskedBitmap* bmp=NULL;
-	for (TInt ii=0;ii<count;ii++)
-		{
-		if ((*iIcons)[ii]->SizeInPixels()==aSize)
-			bmp=(*iIcons)[ii];
-		}
-	if (!bmp)
-		{// if the exact size has not been found get one with nearest but smaller area
-		TInt differenceOfClosest=KMaxTInt;
-		TInt indexOfClosest=KMaxTInt;
-		TInt reqArea=aSize.iHeight*aSize.iWidth;
-		TSize bmpSize;
-		TInt difference;
-		for (TInt jj=0;jj<count;jj++)
-			{
-			bmpSize=(*iIcons)[jj]->SizeInPixels();
-			difference=reqArea-bmpSize.iHeight*bmpSize.iWidth;
-			if (difference<differenceOfClosest && difference>=0)
-				{
-				differenceOfClosest=difference;
-				indexOfClosest=jj;
-				}
-			}
-		if (indexOfClosest<KMaxTInt)
-			bmp=(*iIcons)[indexOfClosest];
-		}
-	return bmp;
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-	}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	}
-
-CArrayFixFlat<TSize>* CApaAppIconArray::IconSizesL() const
-	{
-	if(iDefaultIconsUsed)
-		{
-		return DefaultIcons().IconSizesL();
-		}
-	else if(iIcons == NULL && iIconLoader == NULL)
-		{
-		return new(ELeave)CArrayFixFlat<TSize>(1);
-		}
-	else if(iIcons == NULL)
-		{
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-		// Arriving here means the the icons need loading but havn't been loaded yet.
-		// when we have lazy loading, this will be a trigger condition for loading them
-		ASSERT(iIcons);
-		return new(ELeave)CArrayFixFlat<TSize>(1);
-		}
-	else
-		{
-#else
-		// Arriving here means the the icons need loading but havn't been loaded yet.
-		TRAPD(err, iIconLoader->LoadAllIconsL());
-		if (err != KErrNone)
-			{
-			return new(ELeave)CArrayFixFlat<TSize>(1);
-			}
-		}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	const TInt count=iIcons->Count();
-	CArrayFixFlat<TSize>* arrayOfSizes=new(ELeave)CArrayFixFlat<TSize>(1);
-	CleanupStack::PushL(arrayOfSizes);
-	for(TInt ii=0;ii<count;ii++)
-		{
-		arrayOfSizes->AppendL((*iIcons)[ii]->SizeInPixels());
-		}
-	CleanupStack::Pop(arrayOfSizes);
-	return arrayOfSizes;
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-		}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	}
-
-TInt CApaAppIconArray::Count() const
-	{
-	if(iDefaultIconsUsed)
-		{
-		return DefaultIcons().Count();
-		}
-	else if(iIcons == NULL && iIconLoader == NULL)
-		{
-		return 0;
-		}
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-	else if(iIcons == NULL)
-		{
-		// Arriving here means the the icons need loading but havn't been loaded yet.
-		// when we have lazy loading, this will be a trigger condition for loading them
-		ASSERT(iIcons);
-		return 0;
-		}
-	else
-		{
-		return iIcons->Count();
-		}
-#else
-	else if(iIcons == NULL)
-		{
-		// Arriving here means the the icons need loading but havn't been loaded yet.
-		TRAPD(err, iIconLoader->LoadAllIconsL());
-		if (err != KErrNone)
-			{
-			return 0;
-			}
-		}
-	return iIcons->Count();
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	}
-
-TBool CApaAppIconArray::DefaultIconsUsed() const
-	{
-	return iDefaultIconsUsed;
-	}
-
-CApaMaskedBitmap* CApaAppIconArray::operator[](TInt aIndex) const
-	{
-	if(iDefaultIconsUsed)
-		{
-		return DefaultIcons()[aIndex];
-		}
-	else if(iIcons == NULL && iIconLoader == NULL)
-		{
-		Panic(EPanicIndexOutOfRange);
-		return NULL;
-		}
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-	else if(iIcons == NULL)
-		{
-		// Arriving here means the the icons need loading but havn't been loaded yet.
-		// when we have lazy loading, this will be a trigger condition for loading them
-		ASSERT(iIcons);
-		return NULL;
-		}
-	else
-		{
-		return (*iIcons)[aIndex];
-		}
-#else
-	else if(iIcons == NULL)
-		{
-		// Arriving here means the the icons need loading but havn't been loaded yet.
-		TRAPD(err, iIconLoader->LoadAllIconsL());
-		if (err != KErrNone)
-			{
-			return NULL;
-			}
-		}
-	return (*iIcons)[aIndex];
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	}
-
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-TBool CApaAppIconArray::AreAppIconsLoaded() const
-	{
-	if (iDefaultIconsUsed)
-		{
-		return ETrue;
-		}
-	if (iNumOfIcons > 0 && !iIcons)
-		{
-		return EFalse;	
-		}
-	return ETrue;
-	}
-
-TBool CApaAppIconArray::AreViewIconsLoaded() const
-	{
-	if (iNumOfIcons > 0 && !iIcons )
-		{
-		return EFalse;
-		}
-	return ETrue;	
-	}
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-void CApaAppIconArray::GetDefaultIconsL()
-	{
-	ASSERT(!iDefaultIconsUsed);
-	iDefaultIconsProvider = CApaAppList::Self();
-	ASSERT(iDefaultIconsProvider);
-	iDefaultIconsProvider->AcquireDefaultIconArrayL();
-	iDefaultIconsUsed = ETrue;
-	delete iMbmFileName;
-	iMbmFileName = NULL;
-	if (iIcons)
-		{
-	 	iIcons->ResetAndDestroy();
-		delete iIcons;
-		iIcons = NULL;
-		}
-	}
-
-const CApaAppIconArray& CApaAppIconArray::DefaultIcons() const
-	{
-	ASSERT(iDefaultIconsUsed && iDefaultIconsProvider);
-	return iDefaultIconsProvider->DefaultIconArray();
-	}
--- a/localisation/apparchitecture/apgrfx/APGAPLST.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2157 +0,0 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "apgaplst.h"
-#include "apgstd.h" 
-#include "apfdef.h"
-#include "..\apparc\trace.h"
-#include "apgnotif.h"
-#include "..\apfile\aprfndr.h"
-#include <e32math.h>
-#include <bautils.h>
-#include <s32mem.h>
-#include "apgpriv.h"
-#include "apgair.h"
-#include "apgicnfl.h"
-#include "apprivate.h"
-#include <e32uid.h>
-
-
-// Delays in the pseudo idle object that builds the application list
-//
-
-const TInt KIdleStartDelay=0;
-const TInt KMaxOpaqueDataLength = 0x1000; // maximum length of opaque data that can be passed between client and apparc server via a TApaAppServiceInfo object - this can be increased in future if needed
-const TInt KBufferExpansionGranularity = 0x100;
-const TInt KNumberOfIconsInDefaultMbm = 3;
-const TInt KAppListToFileStartDelay = 60000000;
-
-
-//
-// Class CApaLangChangeMonitor
-//
-
-NONSHARABLE_CLASS(CApaAppList::CApaLangChangeMonitor) : public CActive
- 		{
- 	/**
- 	Utility class used to monitor locale/language change event.
- 	@internalComponent
- 	*/
- 	public:
- 		static CApaLangChangeMonitor* NewL(CApaAppList& aAppList);
- 		~CApaLangChangeMonitor();
- 		void Start();
- 		
- 	private:
- 		CApaLangChangeMonitor(CApaAppList& aAppList);
- 		void ConstructL();
- 		
- 	private:	//from CActive
- 		void RunL();
- 		void DoCancel();
- 		TInt RunError(TInt aError);
- 		
- 	private:
- 		RChangeNotifier iLangNotifier;
- 		CApaAppList& iAppList;
- 		TLanguage iPrevLanguage;
- 		};
- 
- 		
- 
-//
-// Local functions
-//
-
-void CleanupServiceArray(TAny* aServiceArray)
-	{
-	__ASSERT_DEBUG(aServiceArray, Panic(EPanicNullPointer));
-	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = static_cast<CArrayFixFlat<TApaAppServiceInfo>*>(aServiceArray);
-	TInt serviceCount = serviceArray->Count();
-	if (serviceCount > 0)
-		{
-		for (TInt i = serviceCount - 1; i >= 0; i--)
-			{
-			(*serviceArray)[i].Release();
-			}
-		}
-	delete serviceArray;
-	serviceArray = 0;
-	}
-
-
-//
-// Class CApaAppViewData
-//
-
-CApaAppViewData::~CApaAppViewData()
-	{
-	delete iIcons;
-	delete iCaption;
-	delete iIconFileName;
-	}
-
-CApaAppViewData::CApaAppViewData()
-	: iNonMbmIconFile(EFalse)
-	{
-	}
-
-void CApaAppViewData::ConstructL()
-	{
-	iIcons=CApaAppIconArray::NewL();
-	}
-
-CApaAppViewData* CApaAppViewData::NewLC()
-	{
-	CApaAppViewData* self=new(ELeave) CApaAppViewData();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;	
-	}
-
-void CApaAppViewData::SetUid(TUid aUid)
-	{
-	iUid=aUid;
-	}
-
-void CApaAppViewData::SetScreenMode(TInt aScreenMode)
-	{
-	iScreenMode=aScreenMode;
-	}
-
-EXPORT_C TInt CApaAppViewData::ScreenMode() const
-	{
-	return iScreenMode;
-	}
-
-void CApaAppViewData::SetCaptionL(const TDesC& aCaption)
-	{
-	HBufC* newCaption=aCaption.AllocL();
-	delete(iCaption); // after the AllocL succeeds
-	iCaption=newCaption;
-	}
-
-void CApaAppViewData::SetIconArray(CApaAppIconArray* aIcons)
-	{
-	delete iIcons;
-	iIcons = aIcons;
-	}
-
-void CApaAppViewData::SetIconFileNameL(const TDesC& aFileName)
-	{
-	HBufC* fileName = aFileName.AllocL();
-	delete iIconFileName; // after the AllocL succeeds
-	iIconFileName = fileName;
-	}
-
-void CApaAppViewData::SetNonMbmIconFile(TBool aNonMbmIconFile)
-	{
-	iNonMbmIconFile = aNonMbmIconFile;
-	}
-
-EXPORT_C TUid CApaAppViewData::Uid() const
-	{
-	return iUid;
-	}
-
-EXPORT_C CApaMaskedBitmap* CApaAppViewData::Icon(const TSize& aSize) const
-	{
-	__ASSERT_ALWAYS(iIcons, Panic(EPanicNullPointer));
-	return iIcons->IconBySize(aSize);
-	}
-
-EXPORT_C CArrayFixFlat<TSize>* CApaAppViewData::IconSizesL() const
-	{
-	__ASSERT_ALWAYS(iIcons, Panic(EPanicNullPointer));
-	return iIcons->IconSizesL();
-	}
-
-EXPORT_C TPtrC CApaAppViewData::IconFileName() const
-	{
-	if (iIconFileName)
-		{
-		return *iIconFileName;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-EXPORT_C TBool CApaAppViewData::NonMbmIconFile() const
-	{
-	return iNonMbmIconFile;
-	}
-
-
-//
-// class CApaAppEntry
-//
-
-CApaAppEntry* CApaAppEntry::NewL(const TApaAppEntry& aAppEntry)
-	{ // static
-	CApaAppEntry* self=new(ELeave) CApaAppEntry(aAppEntry.iUidType);
-	CleanupStack::PushL(self);
-	self->ConstructL(aAppEntry.iFullName);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaAppEntry::~CApaAppEntry()
-	{
-	delete iFullName;
-	}
-
-void CApaAppEntry::Get(TApaAppEntry& aAppEntry) const
-	{
-	aAppEntry.iFullName=*iFullName;
-	aAppEntry.iUidType=iUidType;
-	}
-
-CApaAppEntry::CApaAppEntry(const TUidType& aUidType)
-	: iUidType(aUidType)
-	{
-	}
-
-void CApaAppEntry::ConstructL(const TDesC& aFileName)
-	{
-	iFullName=aFileName.AllocL();
-	}
-
-
-//
-// class TApaAppServiceInfo
-//
-
-TApaAppServiceInfo::TApaAppServiceInfo()
-	: iUid(KNullUid),
-	  iDataTypes(0),
-	  iOpaqueData(NULL)
-	{
-	}
-
-TApaAppServiceInfo::TApaAppServiceInfo(TUid aUid, 
-	CArrayFixFlat<TDataTypeWithPriority>* aDataTypes, HBufC8* aOpaqueData)
-	: iUid(aUid),
-	  iDataTypes(aDataTypes),
-	  iOpaqueData(aOpaqueData)
-	{
-	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));
-	__ASSERT_DEBUG(iOpaqueData, Panic(EPanicNullPointer));
-	}
-
-void TApaAppServiceInfo::ExternalizeL(RWriteStream& aStream) const
-	{
-	__ASSERT_DEBUG(iDataTypes, User::Invariant());
-	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));
-	__ASSERT_DEBUG(iOpaqueData, Panic(EPanicNullPointer));
-	aStream << iUid;
-	aStream << *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above
-	aStream << *iOpaqueData;//lint !e613 Possible use of null pointer - Asserted above
-	}
-
-void TApaAppServiceInfo::InternalizeL(RReadStream& aStream)
-	{
-	aStream >> iUid;
-	iDataTypes = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(1);
-	aStream >> *iDataTypes;
-	iOpaqueData = HBufC8::NewL(aStream, KMaxOpaqueDataLength);
-	}
-
-void TApaAppServiceInfo::Release()
-	{
-	if (iDataTypes)
-		{
-		iDataTypes->Reset();
-		delete iDataTypes;		
-		iDataTypes = NULL;
-		}
-	if (iOpaqueData)
-		{
-		delete iOpaqueData;
-		iOpaqueData = NULL;
-		}
-	}
-
-CArrayFixFlat<TDataTypeWithPriority>& TApaAppServiceInfo::DataTypes()
-	{
-	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));
-	return *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above
-	}
-
-/** Returns the service UID.
-
-Note that some APIs may store a UID other than a service UID
-in a TApaAppServiceInfo object. Such APIs clearly state what
-the UID represents.
-
-@return the service UID.
-*/
-EXPORT_C TUid TApaAppServiceInfo::Uid() const
-	{
-	return iUid;
-	}
-	
-EXPORT_C const CArrayFixFlat<TDataTypeWithPriority>& TApaAppServiceInfo::DataTypes() const
-	{
-	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));	
-	return *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above
-	}
-
-/** Returns the service implementation's opaque data.
-
-For each service UID registered by an application, the associated
-opaque data indicates how the service is implemented by that application.
-
-The meaning of the opaque data is not known to the framework, it will vary
-according to the service.
-
-For some services the opaque data may be a name intended for user display,
-for others it may be structured data that the service's client-side code can interpret.
-
-@return the service implementation's opaque data.
-*/
-EXPORT_C const TDesC8& TApaAppServiceInfo::OpaqueData() const
-	{
-	if (iOpaqueData)
-		{
-		return *iOpaqueData;
-		}
-	return KNullDesC8;
-	}
-
-//
-// class CApaAppServiceInfoArray
-//
-
-CApaAppServiceInfoArray::CApaAppServiceInfoArray()
-	{
-	}
-
-//
-// class CApaAppServiceInfoArrayWrapper
-//
-
-CApaAppServiceInfoArrayWrapper* CApaAppServiceInfoArrayWrapper::NewL(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray)
-	{
-	CApaAppServiceInfoArrayWrapper* self = new CApaAppServiceInfoArrayWrapper(aServiceInfoArray);
-	if (!self)
-		{
-		CleanupServiceArray(aServiceInfoArray);
-		User::LeaveNoMemory();
-		}
-	return self;
-	}
-
-CApaAppServiceInfoArrayWrapper::CApaAppServiceInfoArrayWrapper(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray)
-	: iServiceInfoArray(aServiceInfoArray)
-	{
-	}
-
-CApaAppServiceInfoArrayWrapper::~CApaAppServiceInfoArrayWrapper()
-	{
-	CleanupServiceArray(iServiceInfoArray);
-	iServiceInfoArray = NULL;
-	}
-
-TArray<TApaAppServiceInfo> CApaAppServiceInfoArrayWrapper::Array()
-	{
-	__ASSERT_ALWAYS(iServiceInfoArray, Panic(EPanicNullPointer));
-	return iServiceInfoArray->Array();
-	}
-
-
-//
-// Class CApaAppData
-//
-
-EXPORT_C CApaAppData* CApaAppData::NewL(const TApaAppEntry& aAppEntry, RFs& aFs, const TDesC& aDefaultAppIconFileName)
-	{
-	CApaAppData* self=new(ELeave) CApaAppData(aFs);
-	CleanupStack::PushL(self);
-	self->ConstructL(aAppEntry, aDefaultAppIconFileName);
-	CleanupStack::Pop(); // self
-	return self;
-	}
-
-CApaAppData::CApaAppData(RFs& aFs)
-	:iCaption(NULL), iShortCaption(NULL), 
-	iIsPresent(CApaAppData::EIsPresent), iFs(aFs),
-	iNonMbmIconFile(EFalse),
-	iApplicationLanguage(ELangNone), iIndexOfFirstOpenService(-1),
-	iNonNativeApplicationType(TUid::Null())
-	{
-	}
-
-void CApaAppData::ConstructL(const TApaAppEntry& aAppEntry, const TDesC& aDefaultAppIconFileName)
-	{
-	iUidType = aAppEntry.iUidType; // if the 2nd UID is KUidAppRegistrationFile, iUidType will be updated in StoreApplicationInformation to reflect the TUidType for the application binary
-	if (ApaUtils::HandleAsRegistrationFile(aAppEntry.iUidType))
-		{
-		iRegistrationFile = aAppEntry.iFullName.AllocL();
-		}
-	else
-		{
-		iFullName = aAppEntry.iFullName.AllocL();
-		}
-
-	iCapabilityBuf.FillZ(iCapabilityBuf.MaxLength());
-	iIcons = CApaAppIconArray::NewL();
-	iViewDataArray=new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);
-	iOwnedFileArray=new(ELeave) CDesCArraySeg(1);
-	User::LeaveIfError(StoreApplicationInformation(aDefaultAppIconFileName));
-	}
-
-
-
-// Return a standard error code
-// The value returned only reflect the caption status
-// If there is errors setting up captions the old values are retained
-// All other errors are silently ignored
-// General notes:
-// 1. This method is deliberately very similar to the old CApaAppData::GetAifData
-//    in order to maintain behavioural compatibility for V1 apps
-// 2. Be very careful in this method, because it can be called on a newly constructed object,
-//    or on an existing object, so don't assume member data pointers will be NULL
-TInt CApaAppData::StoreApplicationInformation(const TDesC& aDefaultAppIconFileName)
-	{
-	HBufC* caption = NULL;
-	HBufC* shortCaption = NULL;
-
-	iTimeStamp = TTime(0); // cannot init in constructor because this function can be called on an existing CApaAppData object
-
-	CApaAppInfoReader* appInfoReader = NULL;
-	TBool readSuccessful = EFalse;
-	TBool isNonNativeApp = EFalse;
-	if (iRegistrationFile != NULL)
-		{
-		if (TParsePtrC(*iRegistrationFile).Path().CompareF(KLitPathForNonNativeResourceAndIconFiles)==0)
-			{
-			isNonNativeApp = ETrue;
-			}
-		__ASSERT_ALWAYS(&aDefaultAppIconFileName,Panic(EPanicNullDefaultAppIconFileName));
-
-		TRAPD(err,appInfoReader = CApaAppInfoReaderV2::NewL(iFs, *iRegistrationFile, iUidType[2], aDefaultAppIconFileName));
-		if(err != KErrNone)
-			{
-			appInfoReader = NULL;
-			}
-
-		if (appInfoReader == NULL)
-			{
-			if (iFullName == NULL)
-				{
-				// assume that if iFullName is NULL, this method has been called as part
-				// of constructing a new app data object. The CApaAppInfoReader derived object
-				// could not be created, therefore we have no way to determine the full filename
-				// of the app binary, so give up
-				return KErrNoMemory;
-				}
-			}
-		else
-			{
-			readSuccessful = appInfoReader->Read();
-			HBufC* appBinaryFullName=appInfoReader->AppBinaryFullName();
-			if (appBinaryFullName)
-				{
-				delete iFullName;
-				iFullName = appBinaryFullName;
-				}
-			if (iFullName == NULL)
-				{
-				delete appInfoReader;
-				return KErrNoMemory;
-				}
-			// if this object has just been constructed, iUidType is currently the TUidType
-			// of the registration file, it should be the TUidType of the app binary file
-			TUidType uidType = appInfoReader->AppBinaryUidType();
-			if (uidType[1].iUid != KNullUid.iUid)
-				{
-				iUidType = uidType;
-				}
-			}
-		}
-
-	if (appInfoReader != NULL)
-		{
-		// must get captions and icons regardless of value of readSuccessful,
-		// because the V1 reader might have read captions
-		// and default icons from a caption file/default AIF, even if other info wasn't read
-		// from an application specific AIF file (!readSuccessful)
-		// this is done to maintain behavioural compatibility with V1
-		caption = appInfoReader->Caption();
-		shortCaption = appInfoReader->ShortCaption();
-
-		CApaAppIconArray* icons = appInfoReader->Icons();
-		if(icons)
-			{
-			delete iIcons;
-			iIcons = icons;
-			}
-		else
-			{
-			TRAPD(err,icons = CApaAppIconArray::NewL());
-			if(err == KErrNone)
-				{
-				delete iIcons;
-				iIcons = icons;
-				}
-			}
-			
-		iTimeStamp = appInfoReader->TimeStamp();
-		delete iLocalisableResourceFileName;
-		iLocalisableResourceFileName = appInfoReader->LocalisableResourceFileName();
-		iLocalisableResourceFileTimeStamp = appInfoReader->LocalisableResourceFileTimeStamp();
-
-		if (isNonNativeApp)
-			{
-			// In the case of a non-native app, the resource file has been prefixed with a
-			// TCheckedUid, the second of whose UIDs is the non-native application type uid.
-			TEntry entry;
-			__ASSERT_ALWAYS(iRegistrationFile, Panic(EPanicNullPointer));
-			const TInt error=iFs.Entry(*iRegistrationFile, entry);
-			if (error!=KErrNone)
-				{
-				delete appInfoReader;
-				return error;
-				}
-			__ASSERT_DEBUG(entry.iType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile, Panic(EPanicUnexpectedUid));
-			iNonNativeApplicationType=entry.iType[1];
-			}
-
-		delete iOpaqueData;
-		iOpaqueData = appInfoReader->OpaqueData();
-
-		if (readSuccessful)
-			{
-			appInfoReader->Capability(iCapabilityBuf);
-
-			iDefaultScreenNumber = appInfoReader->DefaultScreenNumber();
-
-			delete iIconFileName;
-			iIconFileName = appInfoReader->IconFileName();
-			iNonMbmIconFile = appInfoReader->NonMbmIconFile();
-			iApplicationLanguage = appInfoReader->AppLanguage();
-					
-			// views
-			iViewDataArray->ResetAndDestroy();
-			CArrayPtrFlat<CApaAppViewData>* viewDataArray = appInfoReader->Views();
-			if (viewDataArray)
-				{
-				delete iViewDataArray;
-				iViewDataArray = viewDataArray;
-				}
-
-			// owned files
-			iOwnedFileArray->Reset();
-			CDesCArray* ownedFileArray = appInfoReader->OwnedFiles();
-			if (ownedFileArray)
-				{
-				delete iOwnedFileArray;
-				iOwnedFileArray = ownedFileArray;
-				}
-			
-			UpdateServiceArray(appInfoReader->ServiceArray(iIndexOfFirstOpenService));
-			}
-		delete appInfoReader;
-		}
-
-	if (!caption)
-		{
-		TParsePtrC parse (*iFullName);
-		caption = parse.Name().Alloc();
-		}
-
-	// Put the captions into place
-	if (caption)
-		{
-		if (!shortCaption)
-			{
-			shortCaption = caption->Alloc();
-			if (!shortCaption)
-				{
-				delete caption;
-				caption = NULL;
-				}
-			}
-		}
-	if (caption)
-		{
-		delete iCaption;
-		iCaption = caption;
-		delete iShortCaption;
-		iShortCaption = shortCaption;
-		}
-
-	return caption ? KErrNone : KErrNoMemory;
-	}
-
-EXPORT_C CApaAppData::~CApaAppData()
-// Just delete components, NOT iNext (next CApaAppData in the list).
-	{
-	delete iSuccessor;
-	delete iCaption;
-	delete iShortCaption;
-	delete iFullName;
-	delete iIcons;
-
-	if(iViewDataArray)
-		{
-		iViewDataArray->ResetAndDestroy();
-		delete iViewDataArray;
-		}
-	delete iOwnedFileArray;
-	delete iIconFileName;
-	delete iLocalisableResourceFileName;
-	if (iServiceArray)
-		{
-		CleanupServiceArray(iServiceArray);
-		iServiceArray = NULL;
-		}
-	delete iOpaqueData;
-	delete iRegistrationFile;
-	iNext = NULL;
-	}
-
-void CApaAppData::UpdateServiceArray(CArrayFixFlat<TApaAppServiceInfo>* aNewServiceArray)
-	{
-	// clear out any existing service info
-	if (iServiceArray)
-		{
-		CleanupServiceArray(iServiceArray);
-		iServiceArray = NULL;
-		}
-	// store new service array
-	iServiceArray = aNewServiceArray;
-	}
-	
-TDataTypePriority CApaAppData::DataType(const TDataType& aDataType, const CArrayFixFlat<TDataTypeWithPriority>& aDataTypeArray) const
-	{
-	TInt count=aDataTypeArray.Count();
-	for (TInt ii=0;ii<count;ii++)
-		{
-		const TDataTypeWithPriority& type=aDataTypeArray[ii];
-		if (type.iDataType==aDataType)
-			{
-			return type.iPriority;
-			}
-		else
-			{
-			TPtrC8 src=type.iDataType.Des8();
-			TPtrC8 trg=aDataType.Des8();
-			if (src.Match(trg)==0 || trg.Match(src)==0)
-				{
-				if (type.iPriority == KDataTypePrioritySystem)
-					{
-					// This is more or less a magic number so don't decrement
-					return KDataTypePrioritySystem;
-					}
-				else
-					{
-					return (TInt16)(type.iPriority-1);
-					}
-				}
-			}
-		}
-	return KDataTypePriorityNotSupported;
-	}
-
-/**
- * Returns the CApaMaskedBitmap of size aSize for the application associated
- * with this CApaAppData. If there is not a bitmap of exact size aSize then 
- * the icon closest to but smaller than the one asked for is returned, or NULL if
- * none is smaller.
- * 
- * @since Uikon1.2
- */
-EXPORT_C CApaMaskedBitmap* CApaAppData::Icon(TSize aSize) const
-	{
-	__ASSERT_ALWAYS(iIcons, Panic(EPanicNullPointer));
-	return iIcons->IconBySize(aSize);
-	}
-
-/**
- * Returns a pointer to the small, medium or large application icon for aIconIndex equal to 0, 1 or 2 respectively.
- * Panics if aIconIndex is not one of these three values.
- *
- * This method is superseded by an overload which returns the icon by finding the closest match to a specified size.
- *
- * @deprecated
- */
-EXPORT_C CApaMaskedBitmap* CApaAppData::Icon(TInt aIconIndex) const
-	{
-	__ASSERT_DEBUG(aIconIndex>-1 && aIconIndex<3, Panic(EDPanicBadIconSize)); //only support old behaviour
-	TSize sizeExpected;
-	switch(aIconIndex)
-		{
-	case KApaIconIndexSmall:
-		sizeExpected=TSize(24,24);
-		break;
-	case KApaIconIndexMedium:
-		sizeExpected=TSize(32,32);
-		break;
-	case KApaIconIndexLarge:
-		sizeExpected=TSize(48,48);
-		break;
-	default:
-		break;
-		}
-	return Icon(sizeExpected);
-	}
-
-EXPORT_C CArrayFixFlat<TSize>* CApaAppData::IconSizesL() const
-/** Gets the sizes of icons available for the application. 
-
-@return A pointer to an array of the icon sizes. The caller takes ownership. */
-	{
-	__ASSERT_ALWAYS(iIcons, Panic(EPanicNullPointer));;
-	return iIcons->IconSizesL();
-	}
-
-EXPORT_C TApaAppEntry CApaAppData::AppEntry() const
-/** Constructs an application entry based on this object.
-
-@return The application entry. */
-	{
-	return TApaAppEntry(iUidType,*iFullName);
-	}
-
-
-EXPORT_C void CApaAppData::Capability(TDes8& aCapabilityBuf)const
-/** Gets the application's capabilities.
-
-@param aCapabilityBuf On return, contains the application's capabilities, 
-specified as a TApaAppCapabilityBuf object. */
-	{
-	TApaAppCapability::CopyCapability(aCapabilityBuf,iCapabilityBuf);
-	}
-
-/**
- * Returns a pointer to the array of view data objects current for this application. Does not imply transfer of ownership.
- *
- * @since App-Framework_6.1
- */
-EXPORT_C CArrayPtrFlat<CApaAppViewData>* CApaAppData::Views() const
-	{
-	return iViewDataArray;
-	}
-
-/**
- * Returns a pointer to the array of files for which this application claims ownership. Does not imply transfer of ownership.
- *
- * @since App-Framework_6.1
- */
-EXPORT_C CDesCArray* CApaAppData::OwnedFiles() const
-	{
-	return iOwnedFileArray;
-	}
-
-TBool CApaAppData::Update(const TDesC& aDefaultAppIconFileName)
-// returns true if changes were made to the cached data
-	{
-	__APA_PROFILE_START(17);
-	TBool changed=EFalse;
-
-	// Get app info file entry
-	TEntry entry;
-	TInt ret;
-	if (iRegistrationFile != NULL)
-		{
-		ret = iFs.Entry(*iRegistrationFile, entry);
-		if (ret==KErrNone && entry.iModified!=iTimeStamp)
-			{
-			// assume registration file may have changed
-			changed = ETrue;
-			}
-		else
-			{
-			if (iLocalisableResourceFileName)
-				{
-				// see if localisable resource information might have changed
-				TParse parse;
-				ret = parse.SetNoWild(KAppResourceFileExtension, iLocalisableResourceFileName, NULL);
-				if (ret == KErrNone)
-					{
-					TFileName resourceFileName(parse.FullName());
-					BaflUtils::NearestLanguageFile(iFs, resourceFileName);
-					if (resourceFileName.CompareF(*iLocalisableResourceFileName)!=0)
-						{
-						changed = ETrue;
-						}
-					else
-						{
-						ret = iFs.Entry(*iLocalisableResourceFileName, entry);
-						if ((ret==KErrNotFound && iLocalisableResourceFileTimeStamp!=TTime(0)) ||
-							(ret==KErrNone && entry.iModified!=iLocalisableResourceFileTimeStamp))
-							{
-							changed = ETrue;
-							}
-						}
-					}
-				}
-			}
-		}
-	if (changed)
-		{
-		// Ignore result, nothing we can do in case failure
-		// and the old values should be preserved
-        const TInt ignore = StoreApplicationInformation(aDefaultAppIconFileName);
-		} //lint !e529 Suppress symbol 'ignore' not subsequently referenced
-		
-	__APA_PROFILE_END(17);
-	return changed;
-	}
-
-EXPORT_C TDataTypePriority CApaAppData::DataType(const TDataType& aDataType) const
-// returns the priority of the data type
-/** If the application supports the specified data type, the function returns 
-the priority with which it should be selected for handling it.
-
-If the application does not support the specified data type, 
-KDataTypePriorityNotSupported is returned.
-
-Note that the function supports wildcard matching, using "*" and "?". In the case 
-of a wildcard match, the priority value returned is reduced by 1, so that in this 
-case, the application could never have the maximum priority 
-(KDataTypePriorityUserSpecified).
-
-@param aDataType The data type of interest.
-@return The priority with which the application should be selected for handling 
-the specified data type, or KDataTypePriorityNotSupported if the data type is 
-not supported. */
-	{
-	if (iIndexOfFirstOpenService >= 0)
-		{
-		__ASSERT_ALWAYS(iServiceArray, Panic(EPanicNullPointer));
-		const CArrayFixFlat<TDataTypeWithPriority>& dataTypeArray = 
-			(*iServiceArray)[iIndexOfFirstOpenService].DataTypes();
-		return DataType(aDataType, dataTypeArray);
-		}
-	return KDataTypePriorityNotSupported;
-	}
-
-
-EXPORT_C TBool CApaAppData::IsPending() const
-	{
-	return (iIsPresent==CApaAppData::EPresentPendingUpdate 
-		|| iIsPresent==CApaAppData::ENotPresentPendingUpdate);
-	}
-
-EXPORT_C TBool CApaAppData::CanUseScreenMode(TInt aScreenMode)
-/** Tests whether the specified screen mode is valid for any of 
-this application's views. If the app has no views, the function 
-assumes that only the default screen mode (at screen mode index 
-zero) is allowed. This function is used by CApaAppList to create 
-a list of valid applications.
-
-@param aScreenMode The index of the screen mode.
-@return True if screen mode is valid, otherwise false. */
-	{
-	const TInt count=iViewDataArray->Count();
-	// If there are no views, assume only the default screen mode is allowed
-	TBool ret=(count==0 && aScreenMode==0);
-	for(TInt ii=0;ii<count;ii++)
-		{
-		const CApaAppViewData* data=(*iViewDataArray)[ii];
-		if(data->ScreenMode()==aScreenMode)
-			{
-			ret=ETrue;
-			break;
-			}
-		}
-	return ret;
-	}
-
-EXPORT_C void CApaAppData::GetIconInfo(TInt& aIconCount, TInt& aDefaultIconsUsed) const
-/** Gets icon information for the app
-
-@param aIconCount On return, this contains the number of app icons
-@param aDefaultIconsUsed On return, this indicates whether the default icons have been used
-*/
-	{
-	__ASSERT_ALWAYS(iIcons, Panic(EPanicNullPointer));;
-	aIconCount = iIcons->Count();
-	aDefaultIconsUsed = iIcons->DefaultIconsUsed();
-	}
-
-/** Gets the default screen number used by the application.
-
-A device may have more than once screen. This function
-returns the number associated with the screen which will
-be the default screen used by the application.
-
-@return The default screen number
-*/
-EXPORT_C TUint CApaAppData::DefaultScreenNumber() const
-	{
-	return iDefaultScreenNumber;
-	}
-
-/** Returns true if app info was provided by a registration file
-
-@return true if app info was provided by a registration file
-*/
-EXPORT_C TBool CApaAppData::RegistrationFileUsed() const
-	{
-	return iRegistrationFile != NULL;
-	}
-
-/** Returns the full filename of the registration resource file
-
-@return The full path and filename of the registration resource file.
-@internalTechnology
-*/
-EXPORT_C TPtrC CApaAppData::RegistrationFileName() const
-	{
-	if (iRegistrationFile)
-		{
-		return *iRegistrationFile;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-
-/** Returns the full filename of the localisable resource file
-
-@return The full path and filename of the localisable resource file.
-@internalTechnology
-*/
-EXPORT_C TPtrC CApaAppData::LocalisableResourceFileName() const
-	{
-	if (iLocalisableResourceFileName)
-		{
-		return *iLocalisableResourceFileName;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-
-/** Returns the non-native application opaque data
-
-@return The non-native application opaque data.
-@internalComponent
-*/
-EXPORT_C TPtrC8 CApaAppData::OpaqueData() const
-	{
-	if (iOpaqueData)
-		{
-		return *iOpaqueData;
-		}
-	else
-		{
-		return TPtrC8(KNullDesC8);
-		}
-	}
-
-EXPORT_C TUid CApaAppData::NonNativeApplicationType() const
-/** @internalComponent */
-	{
-	return iNonNativeApplicationType;
-	}
-
-/** Returns the full filename of the file containing application icons
-
-@return The full path and filename of the icon file.
-*/
-EXPORT_C TPtrC CApaAppData::IconFileName() const
-	{
-	if (iIconFileName)
-		{
-		return *iIconFileName;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-/** Returns true if the application provides a non-MBM icon filename.
-
-If this function returns false, this does not necessarily mean
-an MBM icon filename is provided.
-
-@return true if the application provides a non-MBM icon filename.
-*/
-EXPORT_C TBool CApaAppData::NonMbmIconFile() const
-	{
-	return iNonMbmIconFile;
-	}
-
-
-/** Determines the current language the application is using to display its
-user interface.
-@return The current language.
-*/	
-EXPORT_C TLanguage CApaAppData::ApplicationLanguage() const
-	{
-	return iApplicationLanguage;
-	}
-
-/** Returns true if the application implements the specified service.
-@param aServiceUid The service UID.
-@return true if the application implements the specified service.
-@internalComponent
-*/
-EXPORT_C TBool CApaAppData::ImplementsService(TUid aServiceUid) const
-	{
-	if (iServiceArray)
-		{
-		TInt count = iServiceArray->Count();
-		for (TInt i = count-1; i >= 0; i--)
-			{
-			if ((*iServiceArray)[i].Uid() == aServiceUid)
-				{
-				return ETrue;
-				}
-			}
-		}
-	return EFalse;
-	}
-	
-/** Checks if the application implements the specified service and if the 
-service explicitly supports the datatype. Explicitly means that the datatype is
-listed in the service's list of datatype in the registration file and is
-not the general datatype associated with the application (aka the Open service).
-@param aServiceUid The service UID.
-@param aDataType The datattype
-@return The priority. KDataTypePriorityNotSupported if the app doesn't support
-this service with this datatype.
-@internalComponent
-*/
-TInt CApaAppData::ImplementsServiceWithDataType(TUid aServiceUid, const TDataType& aDataType) const
-	{
-	TInt result = KDataTypePriorityNotSupported;
-	if (iServiceArray)
-		{
-		TInt count = iServiceArray->Count();
-		for (TInt i = count-1; i >= 0; i--)
-			{
-			// There can be more than one instance of a given service so we iterate
-			// through the whole service list even if we have already found a suitable
-			// service.
-			if ((*iServiceArray)[i].Uid() == aServiceUid)
-				{
-				const CArrayFixFlat<TDataTypeWithPriority>& datatypes =
-					(*iServiceArray)[i].DataTypes();
-				TInt priority = DataType(aDataType, datatypes);
-				if (priority > result)
-					{
-					result = priority;
-					}
-				}
-			}
-		}
-	return result;
-	}
-
-EXPORT_C void CApaAppData::SetShortCaptionL(const TDesC& aShortCaption)
-	{
-	__ASSERT_ALWAYS(iShortCaption, Panic(EPanicNullPointer));
-	if(iShortCaption->Compare(aShortCaption) != 0)
-		{
-		HBufC* newShortCaption=aShortCaption.AllocL();
-		delete iShortCaption; // after the AllocL succeeds
-		iShortCaption = newShortCaption;
-		}
-	}
-
-//
-// Class CApaAppList
-//
-
-EXPORT_C CApaAppList* CApaAppList::NewL(RFs& aFs,CApaAppRegFinder* aAppRegFinder,TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay)
-	{
-	CApaAppList* self=new CApaAppList(aFs, aAppRegFinder,aLoadMbmIconsOnDemand, aIdlePeriodicDelay);
-	if (!self)
-		{
-		delete aAppRegFinder;
-		User::LeaveNoMemory();
-		}
-	else
-		{
-		CleanupStack::PushL(self);
-		self->ConstructL();
-		CleanupStack::Pop(self);
-		}
-	return self;
-	}
-
-CApaAppList::CApaAppList(RFs& aFs, CApaAppRegFinder* aAppRegFinder,TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay)
-	:iFs(aFs),
-	iFlags(0),
-	iAppRegFinder(aAppRegFinder),
-	iIdlePeriodicDelay(aIdlePeriodicDelay),
-	iLoadMbmIconsOnDemand(aLoadMbmIconsOnDemand)
-	{
-	}
-	
-void CApaAppList::ConstructL()
-	{
-	User::LeaveIfError(iFsShareProtected.Connect());
-	User::LeaveIfError(iFsShareProtected.ShareProtected());
-	User::LeaveIfError(Dll::SetTls(this));
-	
-	//Start language change monitor.
-	iAppLangMonitor = CApaLangChangeMonitor::NewL(*this);
-	}
-	
-EXPORT_C CApaAppList::~CApaAppList()
-/** Frees all resources prior to destruction, including the application data list. */
-	{
-	iValidFirstAppData = NULL;
-	iFlags&=~EFirstScanComplete;
-	CApaAppData* next = NULL;
-	for (CApaAppData* appData=iAppData; appData; appData = next)
-		{
-		next = appData->iNext;
-		delete appData;
-		}
-	iAppData = NULL;
-	iObserver = NULL;
-	
-	iFsShareProtected.Close();
-	
-	delete iDefaultIconArray;
-	delete iDefaultAppIcon;
-	delete iAppRegFinder;
-	delete iAppIdler;
-	}
-
-EXPORT_C void CApaAppList::StartIdleUpdateL()
-/** Updates the list asynchronously, using an idle time active object, 
-and no observer. When the update is finished, the resulting app 
-list is stored. */
-	{
-
-	// find the default icons (.mbm file) for applications, wrt current locale
-	TFileName* tempFileName = new(ELeave) TFileName;
-	CleanupStack::PushL(tempFileName);
-	tempFileName->Append(KDefaultAppIconMbm);
-	BaflUtils::NearestLanguageFile(iFs, *tempFileName); 
-	delete iDefaultAppIcon;
-	iDefaultAppIcon = NULL;	
-	iDefaultAppIcon = HBufC::NewL(tempFileName->Size());
-	
-	TPtr iconptr = iDefaultAppIcon->Des();
-	iconptr.Append(*tempFileName);
-	CleanupStack::PopAndDestroy(tempFileName); 
-	
-	// DEF076594 - if changing locale, need to update the default icons here
-	// If updating the default icons array fails, the array is left in the state
-	// it was in before the call.	
-	if(iDefaultIconArray)
-		{
-		TRAP_IGNORE(UpdateDefaultIconsL());
-		}
-	
-	// start to scan.
-	if (iAppIdler)
-		{
-		delete iAppIdler;
-		iAppIdler=NULL;
-		}
-
-	// DEF072701
-	// When performing the update scan let the idle object have lower priority.
-	if (IsFirstScanComplete())
-		{
-		iAppIdler=CPeriodic::NewL(CActive::EPriorityLow);
-		}
-	else
-		{
-		iAppIdler=CPeriodic::NewL(CActive::EPriorityStandard);
-		}
-	SetPending(iAppData);
-	iCurrentApp=TApaAppEntry();
-	iScanStage=EFirstStageScan;
-	__ASSERT_ALWAYS(iAppRegFinder, Panic(EPanicNullPointer));
-	iAppRegFinder->FindAllAppsL();
- 
- 	// DEF072701
- 	// If this is the first scan i.e the boot scan then it may take some time. Thus
- 	// the periodic delay value should be used so that this process will stop periodically 
- 	// to allow time for other processes.
- 	// If this is just a re-scan it should take much less time. Therefore it should just
- 	// be completed in one go rather than periodically delayed. Thus the delay value
- 	// should be set to 0.
-	iAppIdler->Start(KIdleStartDelay, IsFirstScanComplete()? 0 : iIdlePeriodicDelay, TCallBack(IdleUpdateCallbackL, this));
-	}
-
-EXPORT_C void CApaAppList::StartIdleUpdateL(MApaAppListObserver* aObserver)
-/** Updates the list asynchronously, using an idle time active object 
-and an observer. When the update is finished, the resulting app list 
-is stored and the observer is notified with an MApaAppListServObserver::EAppListChanged 
-message, if the list changed.
-@param aObserver Observer to be notified when the update has finished. */
-	{
-	iObserver=aObserver;
-	if (iAppIdler==NULL)
-		{
-		// if iAppIdler exists then we're already in the middle of an update and
-		// may have changed iUpdateCounter without yet reporting the changes
-		iOldUpdateCounter=iUpdateCounter;
-		}
-	
-	StartIdleUpdateL();
-	}
-
-// Stop scanning applications if and uninstallation has started	
-EXPORT_C void CApaAppList::StopScan()
-	{
-	if (iAppIdler)
-		{
-		delete iAppIdler;
-		iAppIdler=NULL;
-		}
-	UndoSetPending(iAppData);
-	}
-	
-// Allow scanning when uninstallation is complete
-EXPORT_C void CApaAppList::RestartScanL()
-	{
-	TRAP_IGNORE(PurgeL());
-	StartIdleUpdateL();
-	}
-
-EXPORT_C void CApaAppList::InitListL(MApaAppListObserver* aObserver)
-/** Starts updating the list asynchronously, by calling StartIdleUpdateL().
-
-@param aObserver Observer to be notified when the update has finished. */
-	{
-	StartIdleUpdateL(aObserver);
-	}
-	
-TInt CApaAppList::IdleUpdateCallbackL(TAny* aObject)
-	{
-	CApaAppList* self=reinterpret_cast<CApaAppList*>(aObject);
-	const TBool moreToCome=self->IdleUpdateL();
-	if (moreToCome==EFalse)
-		{
-		if(self->iScanStage==EFirstStageScan)
-			{
-			self->iScanStage=EScanFinished;
-			self->StopIdlerL();	
-			}
-		}
-	return moreToCome;
-	}
-
-void CApaAppList::StopIdlerL()
-	{
- 
-	delete iAppIdler;
-	iAppIdler=NULL;
-		
-	// now that the scan is finished, iDefaultAppIcon is deleted
-	delete iDefaultAppIcon;
-	iDefaultAppIcon=NULL;
-			
-	if (iObserver)
-		{
-		if (iOldUpdateCounter!=iUpdateCounter)
-			{
-			//NotifyUpdate will notify clients for both list update and scan complete.
-			iObserver->NotifyUpdate(MApaAppListServObserver::EAppListChanged);
-			}
-		else
-			{
-			//NotifyScanComplete will notify clients for scan complete.
-			iObserver->NotifyScanComplete();
-			}
-			
-		iObserver=NULL;
-		}
-	}
-
-TInt CApaAppList::IdleUpdateL()
-// returns ETrue if there is more scanning to be done.
-	{
-	TBool more=EFalse;
-	__ASSERT_ALWAYS(iAppRegFinder, Panic(EPanicNullPointer));
-	TRAPD(err,more=iAppRegFinder->NextL(iCurrentApp, iForcedRegistrations));
-	if (err!=KErrNone)
-		return more;
-	TBool hasChanged=EFalse;
-	if (more)
-		{
-		TRAPD(err,UpdateNextAppL(iCurrentApp,hasChanged));
-		if (err!=KErrNone)
-			{
-			SetNotFound(iAppData,hasChanged);
-			more=EFalse; // abandon ship
-			}
-		}
-	else
-		{
-		SetNotFound(iAppData,hasChanged);
-		PurgeL();
-		}
-	//
-	if (hasChanged)
-		iUpdateCounter++;
-	return more;
-	}
-
-EXPORT_C TBool CApaAppList::IsIdleUpdateComplete() const
-/** Tests whether an asynchronous update of the list is currently in progress.
-
-@return True if no asynchronous update of the list is currently in progress, 
-otherwise false. */
-	{
-	return iAppIdler == NULL;
-	}
-
-void CApaAppList::SetPending(CApaAppData* aAppData)
-	// set all apps to pending update - we'll find them again as we scan
-	{
-  	for (; aAppData; aAppData = aAppData->iNext)
-		{
-		if (aAppData->iIsPresent==CApaAppData::ENotPresent 
-			|| aAppData->iIsPresent==CApaAppData::ENotPresentPendingUpdate)
-			{
-			aAppData->iIsPresent = CApaAppData::ENotPresentPendingUpdate;
-			}
-		else
-			{
-			aAppData->iIsPresent = CApaAppData::EPresentPendingUpdate;
-			}
-		}
-	}
-
-void CApaAppList::UndoSetPending(CApaAppData* aAppData)
-	// Reset all apps to pevious pending state so they don't get purged
-	{
-  	for (; aAppData; aAppData = aAppData->iNext)
-		{
-		if (aAppData->iIsPresent == CApaAppData::EPresentPendingUpdate)
-			{
-			aAppData->iIsPresent = CApaAppData::EIsPresent;
-			}
-		}
-	}
-
-void CApaAppList::SetNotFound(CApaAppData* aAppData, TBool& aHasChanged)
-	// mark any unfound apps not present
-	{
-	while (aAppData)
-		{
-		if (aAppData->IsPending())
-			{
-			aAppData->iIsPresent = CApaAppData::ENotPresent;
-			aHasChanged = ETrue;
-			}
-		aAppData = aAppData->iNext;
-		}
-	}
-
-void CApaAppList::AddToList( CApaAppData* aAppData )
-{
-	__ASSERT_DEBUG(aAppData, Panic(EPanicNullPointer));
-	aAppData->iNext=iAppData;
-	iAppData=aAppData;
-}
-
-void CApaAppList::UpdateNextAppL(const TApaAppEntry& aAppEntry,TBool& aHasChanged)
-	{
-	CApaAppData* appData=AppDataByUid(aAppEntry.iUidType[2]);
-	if (appData==NULL)
-		{// not in list, so add it at the start
-		TRAPD(err,appData=CApaAppData::NewL(aAppEntry, iFs, *iDefaultAppIcon));
-		if (err==KErrNone)
-			{
-			AddToList( appData );
-			aHasChanged=ETrue;
-			}
-		}
-	else if (appData->IsPending())
-		{ // not found yet during current scan - we may need to override this one
-		
-		// On a system which scans for registration .RSC files (V2 apps) first, followed by
-		// .APP files (V1 apps), it's valid for a V1 app to override a V2 app (if the V2 app
-		// has just been removed). If this is the case, assume it's ok to compare the V1 .APP filename,
-		// with the V2 .RSC filename as their filenames will never match (which is what we want in this case).
-		TPtrC currentFileName;
-		if (appData->RegistrationFileUsed())
-			{
-			currentFileName.Set(*appData->iRegistrationFile);
-			}
-		else
-			{
-			currentFileName.Set(*appData->iFullName);
-			}
-		if (aAppEntry.iFullName.CompareF(currentFileName)!=0)
-			{
-			delete appData->iSuccessor;
-			appData->iSuccessor = NULL;
-			appData->iSuccessor = CApaAppEntry::NewL(aAppEntry);
-
-
-			appData->iIsPresent = CApaAppData::ESuperseded;
-			aHasChanged=ETrue;
-			}
-		else
-			{
-			if (appData->Update(*iDefaultAppIcon)
-				|| appData->iIsPresent==CApaAppData::ENotPresentPendingUpdate) 
-				{
-				aHasChanged=ETrue; 
-				}
-			appData->iIsPresent = CApaAppData::EIsPresent;
-			}
-		}
-	
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CApaAppData* CApaAppList::FindAndAddSpecificAppL(CApaAppRegFinder* aFinder, TUid aAppUid)
-	{
-//Scans and adds the specified application to the app list if found
-	__ASSERT_DEBUG(aFinder, Panic(EPanicNullPointer));
-	TBool found = EFalse;
-	TApaAppEntry appEntry;
-	aFinder->FindAllAppsL();
-	while (aFinder->NextL(appEntry, iForcedRegistrations))
-		{
-		if (appEntry.iUidType[2] == aAppUid)
-			{
-			found = ETrue;
-			break;
-			}
-		}
-	
-	CApaAppData* app = NULL;
-	if (found)
-		{
-		// add the app to the list
-		TBool hasChanged = EFalse;
-		CApaAppData* prevFirstAppInList = iAppData;
-		UpdateNextAppL(appEntry, hasChanged);
-		if (iAppData != prevFirstAppInList)
-			{
-			// assume the new app was added to the list
-			app = iAppData;
-			}
-		if (hasChanged)
-			iUpdateCounter++;
-		}
-	return app;
-	}
-
-EXPORT_C void CApaAppList::PurgeL()
-/** Removes any applications from the list if they are no longer present 
-on the phone. It updates applications that have been 
-superceded. */
-	{
-	CApaAppData* appData=iAppData;
-	CApaAppData* prev=NULL;
-	while (appData)
-		{
-		CApaAppData* next=appData->iNext;
-		if (appData->iIsPresent==CApaAppData::ENotPresent)
-			{
-			if (prev)
-				prev->iNext=next;
-			else
-				iAppData=next;
-			delete appData;
-			}
-		else if (appData->iIsPresent==CApaAppData::ESuperseded)
-			{
-			CApaAppData* newApp=NULL;
-			TApaAppEntry appEntry;
-			appData->iSuccessor->Get(appEntry);
-			TRAPD(err,newApp=CApaAppData::NewL(appEntry, iFs,*iDefaultAppIcon));
-			if (err==KErrNone)
-				{
-				// remove the old one and add the new one in its place
-				if (prev)
-					prev->iNext=newApp;
-				else
-					iAppData=newApp;
-				newApp->iNext = appData->iNext;
-				delete appData;
-				// increment the iterator
-				prev = newApp;
-				}
-			}
-		else
-			prev=appData;
-		appData=next;
-		}
- 
-	ScanComplete();
-	}
-
-EXPORT_C TInt CApaAppList::Count() const
-/** Gets the count of applications present in the app list.
-
-@return The number of applications in the list. */
-
-	{
-	TInt count=0;
-	CApaAppData* appData=iAppData;
-	while (appData)
-		{
-		count++;
-		appData=appData->iNext;
-		}
-	return count;
-	}
-
-EXPORT_C CApaAppData* CApaAppList::FirstApp() const
-/** Gets a pointer to the first application in the list 
-that can use the default screen mode.
-
-@return A pointer to the first application. */
-	{
-	return FirstApp(0);
-	}
-
-EXPORT_C CApaAppData* CApaAppList::FirstApp(TInt aScreenMode) const
-/** Gets a pointer to the first application in the list 
-that can use the specified screen mode.
-
-@param aScreenMode The index of the screen mode. Specifying 
-KIgnoreScreenMode returns the first application in the list, 
-regardless of screen mode.
-@return A pointer to the first application that can use the 
-specified screen mode. */
-	{
-
-	CApaAppData* appData=iValidFirstAppData;
-
-	if(aScreenMode!=KIgnoreScreenMode)
-		{
-		while (appData && !appData->CanUseScreenMode(aScreenMode))
-			appData = appData->iNext;
-		}
-
-	return appData;
-	}
-
-EXPORT_C CApaAppData* CApaAppList::NextApp(const CApaAppData* aApp) const
-/** Gets a pointer to the next application after aApp in the list 
-that can use the default screen mode.
-
-@param aApp A pointer to an application in the list.
-@return A pointer to the next application after aApp in the list 
-that can use the default screen mode.
-@panic APGRFX 12 aApp is NULL. */
-	{
-	return NextApp(aApp,0);
-	}
-
-EXPORT_C CApaAppData* CApaAppList::NextApp(const CApaAppData* aApp, TInt aScreenMode) const
-/** Gets a pointer to the next application after aApp in the list 
-that can use the specified screen mode.
-
-@param aApp A pointer to an application in the list. 
-@param aScreenMode The index of the screen mode. Specifying 
-KIgnoreScreenMode returns the next application in the list, 
-regardless of screen mode.
-@return A pointer to the next application after aApp in the list 
-that can use the specified screen mode.
-@panic APGRFX 12 aApp is NULL. */
-
-	{
-	__ASSERT_ALWAYS(aApp,Panic(EPanicNoAppDataSupplied));
-	//
-	CApaAppData* iApp=aApp->iNext; //lint !e613 Possible use of null pointer - Asserted above
-
-	if(aScreenMode!=KIgnoreScreenMode)
-		while (iApp && !iApp->CanUseScreenMode(aScreenMode))
-			iApp = iApp->iNext;
-
-	return iApp;
-	}
-
-EXPORT_C CApaAppData* CApaAppList::AppDataByUid(TUid aAppUid) const
-/** Gets a pointer to the application in the list whose third 
-UID matches the specified UID.
-
-@param aAppUid An application's third UID. 
-@return A pointer to the application, if successful. Null, 
-if no match is found or if KNullUid was specified. */
-	{
-	if (aAppUid==KNullUid)
-		return NULL; // never match null UID as it represents an un-UIDed file
-	CApaAppData* appData=iAppData;
-	while (appData)
-		{
-		if (appData->AppEntry().iUidType[2]==aAppUid)
-			return appData;
-		appData=appData->iNext;
-		}
-	return NULL;
-	}
-
-EXPORT_C CApaAppData* CApaAppList::AppDataByFileName(const TDesC& aFullFileName) const
-/** Gets a pointer to the application in the list whose application
-file name matches the one specified
-
-@param aFullFileName a file name. 
-@return A pointer to the application, if successful. Null, 
-if no match is found or if KNullDesC was specified.
-@internalTechnology
-*/
-	{
-	if (aFullFileName.Length()==0)
-		{
-		return NULL; // never match null UID as it represents an un-UIDed file
-		}
-	CApaAppData* appData=iAppData;
-	while (appData)
-		{
-		if (appData->AppEntry().iFullName.CompareF(aFullFileName)==0)
-			{
-			return appData;
-			}
-		appData=appData->iNext;
-		}
-	return NULL;
-	}
-	
-/**
-Adds a registration file to the iForcedRegistrations array.
-
-@param aRegistrationFile The function takes ownership of the HBufC.
-@internalComponent
-*/
-EXPORT_C void CApaAppList::AddForcedRegistrationL(HBufC* aRegistrationFile)
-	{
-	TInt err = iForcedRegistrations.InsertInOrder(aRegistrationFile, TLinearOrder<HBufC>(CompareStrings));
-	if (err == KErrAlreadyExists) // We silently ignore attempts to insert duplicates
-		{
-		delete aRegistrationFile;
-		}
-	else
-		{
-		User::LeaveIfError(err);
-		}
-	} //lint !e818 Suppress pointer parameter 'aRegistrationFile' could be declared as pointing to const
-	
-EXPORT_C void CApaAppList::ResetForcedRegistrations()
-	{
-	iForcedRegistrations.ResetAndDestroy();
-	}
-
-EXPORT_C TInt CApaAppList::UpdateCounter() const
-/** Gets the number of times the application list has been updated. 
-It returns zero for a newly created empty list.
-
-@return The number of times the list has been changed since it was 
-created. */
-	{
-	return iUpdateCounter;
-	}
-
-EXPORT_C TUid CApaAppList::PreferredDataHandlerL(const TDataType& aDataType) const
-/** Finds the preferred application to handle the specified data type.
-
-@param aDataType The data type of interest.
-@return The third UID of the application in the list which has the 
-highest priority for handling the specified data type. A null UID is 
-returned if no application in the list can handle the specified data type. */
-	{
-	TInt dummy;
-	return PreferredDataHandlerL(aDataType, NULL, dummy);
-	}
-	
-EXPORT_C TUid CApaAppList::PreferredDataHandlerL(const TDataType& aDataType, const TUid* aServiceUid, TInt& aPriority) const
-/** Finds the preferred application to handle the specified data type.
-
-@param aDataType The data type of interest.
-@param aServiceUid The optional service UID.
-@param aPriority The priority associated with the returned app.
-@return The third UID of the application in the list which has the 
-highest priority for handling a combination of the specified data type
-and service. A null UID is returned if no application in the list can
-handle the combination of specified data type and service.
-@internalComponent
-*/
-	{
-	// If there is a service uid we first try to use the service specific list
-	// of datatypes
-	if (aServiceUid)
-		{
-		CApaAppData* appData=iAppData;
-		aPriority=KDataTypePriorityNotSupported;
-		TUid uid={0};
-		while (appData)
-			{
-			TInt priority = appData->ImplementsServiceWithDataType(*aServiceUid, aDataType);
-			if (priority > aPriority)
-				{
-				aPriority=priority;
-				uid=appData->AppEntry().iUidType[2];
-				}
-			appData=appData->iNext;
-			}
-		if (aPriority != KDataTypePriorityNotSupported)
-			{
-			return uid;
-			}
-		}
-	
-	CApaAppData* appData=iAppData;
-	aPriority=KDataTypePriorityNotSupported;
-	TUid uid={0};
-	while (appData)
-		{
-		TInt priority=appData->DataType(aDataType);
-		if ((priority > aPriority) &&
-			(!aServiceUid || (aServiceUid && appData->ImplementsService(*aServiceUid))))
-			{
-			aPriority=priority;
-			uid=appData->AppEntry().iUidType[2];
-			}
-		appData=appData->iNext;
-		}
-	return uid;
-	}
-
-void CApaAppList::ScanComplete()
-	{
-	if(!IsFirstScanComplete() && iObserver)
-		iObserver->InitialListPopulationComplete();
-	iValidFirstAppData = iAppData;
-	iFlags|=EFirstScanComplete;
-	}
-
-/**
- *
- * Tests whether the first scan for list of Apps has completed.
- *
- * @return   "TBool"
- *            True, if the first scan for list of Apps has completed; false, otherwise.
- * @internalComponent
- */
-EXPORT_C TBool CApaAppList::IsFirstScanComplete() const
-	{
-	return iFlags&EFirstScanComplete;
-	}
-
-EXPORT_C TBool CApaAppList::AppScanInProgress() const
-/** @internalComponent */
-	{
-	return (iAppIdler!=NULL) && iAppIdler->IsActive();
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CBufFlat* CApaAppList::ServiceArrayBufferL(TUid aAppUid) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	while (app && app->AppEntry().iUidType[2] != aAppUid)
-		{
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (app)
-		{
-		if (!app->RegistrationFileUsed())
-			{
-			User::Leave(KErrNotSupported);
-			}
-		if (app->iServiceArray)
-			{
-			CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-			CleanupStack::PushL(buf);
-			RBufWriteStream writeStream(*buf);
-			writeStream << *(app->iServiceArray);
-			writeStream.CommitL();
-			writeStream.Release();
-			CleanupStack::Pop(buf);
-			return buf;
-			}
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CBufFlat* CApaAppList::ServiceUidBufferL(TUid aAppUid) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	while (app && app->AppEntry().iUidType[2] != aAppUid)
-		{
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (app)
-		{
-		if (!app->RegistrationFileUsed())
-			{
-			User::Leave(KErrNotSupported);
-			}
-		if (app->iServiceArray)
-			{
-			CArrayFixFlat<TApaAppServiceInfo>& serviceArray = *(app->iServiceArray);
-			CArrayFixFlat<TUid>* uidArray = new(ELeave) CArrayFixFlat<TUid>(4);
-			CleanupStack::PushL(uidArray);
-			for (TInt i = serviceArray.Count()-1; i >= 0; i--)
-				{
-				uidArray->AppendL(serviceArray[i].Uid());
-				}
-			CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-			CleanupStack::PushL(buf);
-			RBufWriteStream writeStream(*buf);
-			writeStream << *uidArray;
-			writeStream.CommitL();
-			writeStream.Release();
-			CleanupStack::Pop(buf);
-			CleanupStack::PopAndDestroy(uidArray);
-			return buf;
-			}
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CBufFlat* CApaAppList::ServiceOpaqueDataBufferL(TUid aAppUid, TUid aServiceUid) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	while (app && app->AppEntry().iUidType[2] != aAppUid)
-		{
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (app)
-		{
-		if (!app->RegistrationFileUsed())
-			{
-			User::Leave(KErrNotSupported);
-			}
-		if (app->iServiceArray)
-			{
-			CArrayFixFlat<TApaAppServiceInfo>* implArray = NULL;
-			CArrayFixFlat<TApaAppServiceInfo>& serviceArray = *(app->iServiceArray);
-			for (TInt i = serviceArray.Count()-1; i >= 0; i--)
-				{
-				const TApaAppServiceInfo& infoRef = serviceArray[i];
-				if (infoRef.Uid() == aServiceUid)
-					{
-					if (!implArray)
-						{
-						implArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-						CleanupStack::PushL(TCleanupItem(CleanupServiceArray, implArray));
-						}
-					CArrayFixFlat<TDataTypeWithPriority>* dummy =
-						new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(1);
-					CleanupStack::PushL(dummy);					
-					TApaAppServiceInfo info(aServiceUid, dummy, infoRef.OpaqueData().AllocLC());
-					implArray->AppendL(info);
-					CleanupStack::Pop(const_cast<TDesC8*>(&info.OpaqueData()));
-					CleanupStack::Pop(dummy);
-					}
-				}
-			if (implArray)
-				{
-				CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-				CleanupStack::PushL(buf);
-				RBufWriteStream writeStream(*buf);
-				writeStream << *implArray;
-				writeStream.CommitL();
-				writeStream.Release();
-				CleanupStack::Pop(buf);
-				CleanupStack::PopAndDestroy(implArray);
-				return buf;
-				}
-			}
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CBufFlat* CApaAppList::ServiceImplArrayBufferL(TUid aServiceUid) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	// build an array containing all implementations of the service identified by aServiceUid
-	CArrayFixFlat<TApaAppServiceInfo>* implArray = NULL;
-	while (app)
-		{
-		if (app->iServiceArray)
-			{
-			for (TInt i = app->iServiceArray->Count()-1; i >= 0; i--)
-				{
-				const TApaAppServiceInfo& infoRef = (*app->iServiceArray)[i];
-				if (infoRef.Uid() == aServiceUid)
-					{
-					if (!implArray)
-						{
-						implArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-						CleanupStack::PushL(TCleanupItem(CleanupServiceArray, implArray));
-						}
-					CArrayFixFlat<TDataTypeWithPriority>* datatypes = DataTypeArrayDeepCopyLC(infoRef.DataTypes());
-					HBufC8* data = infoRef.OpaqueData().AllocLC();
-					TApaAppServiceInfo info(app->AppEntry().iUidType[2], datatypes, data);
-					implArray->AppendL(info);
-					CleanupStack::Pop(data);
-					CleanupStack::Pop(datatypes);
-					}
-				}
-			}
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (implArray)
-		{
-		CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-		CleanupStack::PushL(buf);
-		RBufWriteStream writeStream(*buf);
-		writeStream << *(implArray);
-		writeStream.CommitL();
-		writeStream.Release();
-		CleanupStack::Pop(buf);
-		CleanupStack::PopAndDestroy(implArray);
-		return buf;
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-
-EXPORT_C CBufFlat* CApaAppList::ServiceImplArrayBufferL(TUid aServiceUid, const TDataType& aDataType) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	// build an array containing all implementations of the service identified by aServiceUid
-	CArrayFixFlat<TApaAppServiceInfo>* implArray = NULL;
-	while (app)
-		{
-		if (app->iServiceArray)
-			{
-			for (TInt i = app->iServiceArray->Count()-1; i >= 0; i--)
-				{
-				const TApaAppServiceInfo& infoRef = (*app->iServiceArray)[i];
-				if (infoRef.Uid() == aServiceUid)
-					{
-				 	if (KDataTypePriorityNotSupported != app->DataType(aDataType, infoRef.DataTypes()))
-						{
-						if (!implArray)
-							{
-							implArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-							CleanupStack::PushL(TCleanupItem(CleanupServiceArray, implArray));
-							}
-						CArrayFixFlat<TDataTypeWithPriority>* datatypes = DataTypeArrayDeepCopyLC(infoRef.DataTypes());
-						HBufC8* data = infoRef.OpaqueData().AllocLC();
-						TApaAppServiceInfo info(app->AppEntry().iUidType[2], datatypes, data);
-						implArray->AppendL(info);
-						CleanupStack::Pop(data);
-						CleanupStack::Pop(datatypes);
-						}
-					}
-				}
-			}
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (implArray)
-		{
-		CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-		CleanupStack::PushL(buf);
-		RBufWriteStream writeStream(*buf);
-		writeStream << *(implArray);
-		writeStream.CommitL();
-		writeStream.Release();
-		CleanupStack::Pop(buf);
-		CleanupStack::PopAndDestroy(implArray);
-		return buf;
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-	
-CArrayFixFlat<TDataTypeWithPriority>* CApaAppList::DataTypeArrayDeepCopyLC(const CArrayFixFlat<TDataTypeWithPriority>& aOriginal) const
-	{
-	CArrayFixFlat<TDataTypeWithPriority>* result = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(1);
-	CleanupStack::PushL(result);
-	TInt ii = 0;
-	TInt end = aOriginal.Count();
-	while (ii < end)
-		{
-		result->AppendL(aOriginal[ii]);
-		ii++;
-		}
-	return result;
-	}
-	
-EXPORT_C TInt CApaAppList::CompareStrings(const HBufC& aFirst, const HBufC& aSecond)
-	{
-	return aFirst.CompareF(aSecond);
-	}
-
-EXPORT_C CApaAppList* CApaAppList::Self()
-	{ // static
-	return static_cast<CApaAppList*>(Dll::Tls());
-	}
-	
-/*EXPORT_C*/ RFs& CApaAppList::ShareProtectedFileServer()
-	{
-	return iFsShareProtected; //lint !e1536 Exposing low access member - need to consider a redesign or design clarification here(iFsShareProtected should be owned be the one that needs it) but postpone for now as that may require large changes
-	}
-	
-CApaAppIconArray* CApaAppList::LoadDefaultIconsL() const
-	{
-	__ASSERT_ALWAYS(iDefaultAppIcon, Panic(EPanicNullPointer));
-	CApaIconLoader* iconLoader = CApaIconLoader::NewLC(iFs);
-	CApaAppIconArray* icons = CApaAppIconArray::NewRealDefaultIconsLC(KNumberOfIconsInDefaultMbm,*iDefaultAppIcon, *iconLoader);
-	const TBool badMbmEntryInfo = !icons->LoadIconsL();
-	if(badMbmEntryInfo)
-		{
-		CleanupStack::PopAndDestroy(2,iconLoader);
-		return CApaAppIconArray::NewL();
-		}
-	else
-		{
-		CleanupStack::Pop(icons);
-		CleanupStack::PopAndDestroy(iconLoader);
-		}
-	return icons;
-	}
-
-void CApaAppList::AcquireDefaultIconArrayL() const
-	{
-	ASSERT(iDefaultIconUsageCount >= 0);
-	if (iDefaultIconUsageCount == 0)
-		{
-		iDefaultIconArray = LoadDefaultIconsL();
-		}
-	++iDefaultIconUsageCount;
-	}
-
-// Should NEVER be called by an object that does not call AcquireDefaultIconArrayL and
-// ReleaseDefaultIconArray at the beginning and end of its lifetime respectively
-const CApaAppIconArray& CApaAppList::DefaultIconArray() const
-	{
-	__ASSERT_ALWAYS(iDefaultIconArray, Panic(EPanicNullPointer));
-	return *iDefaultIconArray;
-	}
-
-void CApaAppList::ReleaseDefaultIconArray() const
-	{
-	ASSERT(iDefaultIconUsageCount > 0);
-	if(0 == --iDefaultIconUsageCount)
-		{
-		delete iDefaultIconArray;
-		iDefaultIconArray = NULL;		
-		}
-	}
-	
-// DEF077478 - Required to update the default icons that the app list holds.
-void CApaAppList::UpdateDefaultIconsL()
-	{
-	CApaAppIconArray* iconArray = LoadDefaultIconsL();
-	if (iconArray)
-		{
-		delete iDefaultIconArray;
-		iDefaultIconArray = iconArray;
-		}
-	}
-
-
-// ApaUtils
-
-EXPORT_C TBool ApaUtils::HandleAsRegistrationFile(const TUidType& aUidType)
-	{ // static
-	return (aUidType[1].iUid==KUidAppRegistrationFile.iUid ||
-		   aUidType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile);
-	}
-	
-// Returns ETrue if a language change event is received and a re-scan is in progress otherwise EFalse. 
-EXPORT_C TBool CApaAppList::IsLanguageChangePending() const
-	{
-	return (iFlags & ELangChangePending);
-	}
-//
-// Class CApaLangChangeMonitor
-//
-
-CApaAppList::CApaLangChangeMonitor::~CApaLangChangeMonitor()
-	{	
-	Cancel();
-	iLangNotifier.Close();
-	}
-
-CApaAppList::CApaLangChangeMonitor* CApaAppList::CApaLangChangeMonitor::NewL(CApaAppList& aAppList)
-	{ // static	
-	CApaLangChangeMonitor* self=new(ELeave) CApaLangChangeMonitor(aAppList);
-	self->ConstructL();
-	return self;
-	}
-
-CApaAppList::CApaLangChangeMonitor::CApaLangChangeMonitor(CApaAppList& aAppList)
-	: CActive(EPriorityNormal),
-	iAppList(aAppList)
-	{	
-	iPrevLanguage = User::Language();
-	CActiveScheduler::Add(this);
-	}
-
-void CApaAppList::CApaLangChangeMonitor::ConstructL()
-	{
-	User::LeaveIfError(iLangNotifier.Create());
-	Start();
-	}
- 
-void CApaAppList::CApaLangChangeMonitor::Start()
-	{
-	iLangNotifier.Logon(iStatus);
-	SetActive();
- 	}
- 
-void CApaAppList::CApaLangChangeMonitor::DoCancel()
-	{
- 	iLangNotifier.LogonCancel();
-	}
- 
-void CApaAppList::CApaLangChangeMonitor::RunL()
-	{
-	// Logon to get further events before handling current request.
-	TRequestStatus status = iStatus;
-	Start();
-	
-	// if it is a language change event, start a rescan on app-list.
- 	if (status.Int() == EChangesLocale && iPrevLanguage != User::Language())
-		{		
-		iPrevLanguage = User::Language();
-		iAppList.iFlags |= CApaAppList::ELangChangePending;
-		iAppList.StartIdleUpdateL(iAppList.iObserver);
-		}
-	}
-
-TInt CApaAppList::CApaLangChangeMonitor::RunError(TInt /*aError*/)
-	{
-	// Reset ELangChangePending flag if RunL leaves.
-	iAppList.iFlags &= ~CApaAppList::ELangChangePending;
-	// Reset iPrevLanguage to ELangNone if RunL leaves.
-	iPrevLanguage = ELangNone;
-	return KErrNone;
-	}
--- a/localisation/apparchitecture/apgrfx/APGAPLSTV2.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3082 +0,0 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "APGAPLST.H"
-#include "APGSTD.H" 
-#include "APFDEF.H"
-#include "../apparc/TRACE.H"
-#include "apgnotif.h"
-#include "../apfile/aprfndr.h"
-#include <e32math.h>
-#include <bautils.h>
-#include <s32mem.h>
-#include "APGPRIV.H"
-#include "APGAIR.H"
-#include "APGICNFL.H"
-#include "apprivate.h"
-#include <e32uid.h>
-#ifdef SYMBIAN_BAFL_SYSUTIL
-#include <bafl/sysutil.h>
-#endif
-
-
-// Delays in the pseudo idle object that builds the application list
-//
-
-const TInt KIdleStartDelay=0;
-const TInt KMaxOpaqueDataLength = 0x1000; // maximum length of opaque data that can be passed between client and apparc server via a TApaAppServiceInfo object - this can be increased in future if needed
-const TInt KBufferExpansionGranularity = 0x100;
-const TInt KNumberOfIconsInDefaultMbm = 3;
-const TInt KAppListToFileStartDelay = 60000000;
-#ifdef SYMBIAN_BAFL_SYSUTIL
-const TInt KInfoBufLength=KSysUtilVersionTextLength;
-//This file is used for storing the rom version. If actual rom version differs from the one stored here the applist is not restored.
-//This file is versioned to avoid a data compatability break on adding further information to this file.
-//On adding further info to this file, KROMVersionCacheFileMajorVersion or KROMVersionCacheFileMinorVersion or KROMVersionCacheFileBuildVersion needs to be incremented appropriately.
-_LIT(KROMVersionStringCacheFileName, "ROMVersionCache.bin");
-const TInt8 KROMVersionCacheFileMajorVersion=1;
-const TInt8 KROMVersionCacheFileMinorVersion=0;
-const TInt16 KROMVersionCacheFileBuildVersion=0;
-#endif
-
-//
-// Class CApaLangChangeMonitor
-//
-
-NONSHARABLE_CLASS(CApaAppList::CApaLangChangeMonitor) : public CActive
-		{
-	/**
-	Utility class used to monitor locale/language change event.
-	@internalComponent
-	*/
-	public:
-		static CApaLangChangeMonitor* NewL(CApaAppList& aAppList);
-		~CApaLangChangeMonitor();
-		void Start();
-		
-	private:
-		CApaLangChangeMonitor(CApaAppList& aAppList);
-		void ConstructL();
-		
-	private:	//from CActive
-		void RunL();
-		void DoCancel();
-		TInt RunError(TInt aError);
-		
-	private:
-		RChangeNotifier iLangNotifier;
-		CApaAppList& iAppList;
-		TLanguage iPrevLanguage;
-		};
-
-		
-//
-// Local functions
-//
-
-void CleanupServiceArray(TAny* aServiceArray)
-	{
-	__ASSERT_DEBUG(aServiceArray, Panic(EPanicNullPointer));
-	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = static_cast<CArrayFixFlat<TApaAppServiceInfo>*>(aServiceArray);
-	TInt serviceCount = serviceArray->Count();
-	if (serviceCount > 0)
-		{
-		for (TInt i = serviceCount - 1; i >= 0; i--)
-			{
-			(*serviceArray)[i].Release();
-			}
-		}
-	delete serviceArray;
-	serviceArray = 0;
-	}
-
-
-//
-// Class CApaAppViewData
-//
-
-CApaAppViewData::~CApaAppViewData()
-	{
-	delete iIcons;
-	delete iCaption;
-	delete iIconFileName;
-	}
-
-CApaAppViewData::CApaAppViewData()
-	: iNonMbmIconFile(EFalse)
-	{
-	}
-
-void CApaAppViewData::ConstructL()
-	{
-	iIcons=CApaAppIconArray::NewL();
-	}
-
-CApaAppViewData* CApaAppViewData::NewLC()
-	{
-	CApaAppViewData* self=new(ELeave) CApaAppViewData();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;	
-	}
-
-void CApaAppViewData::SetUid(TUid aUid)
-	{
-	iUid=aUid;
-	}
-
-void CApaAppViewData::SetScreenMode(TInt aScreenMode)
-	{
-	iScreenMode=aScreenMode;
-	}
-
-EXPORT_C TInt CApaAppViewData::ScreenMode() const
-	{
-	return iScreenMode;
-	}
-
-void CApaAppViewData::SetCaptionL(const TDesC& aCaption)
-	{
-	HBufC* newCaption=aCaption.AllocL();
-	delete(iCaption); // after the AllocL succeeds
-	iCaption=newCaption;
-	}
-
-void CApaAppViewData::SetIconArray(CApaAppIconArray* aIcons)
-	{
-	delete iIcons;
-	iIcons = aIcons;
-	}
-
-void CApaAppViewData::SetIconFileNameL(const TDesC& aFileName)
-	{
-	HBufC* fileName = aFileName.AllocL();
-	delete iIconFileName; // after the AllocL succeeds
-	iIconFileName = fileName;
-	}
-
-void CApaAppViewData::SetNumOfViewIcons(TInt aNumOfViewIcons)
-	{
-	iNumOfViewIcons = aNumOfViewIcons;
-	}
-
-void CApaAppViewData::SetNonMbmIconFile(TBool aNonMbmIconFile)
-	{
-	iNonMbmIconFile = aNonMbmIconFile;
-	}
-
-EXPORT_C TUid CApaAppViewData::Uid() const
-	{
-	return iUid;
-	}
-
-EXPORT_C CApaMaskedBitmap* CApaAppViewData::Icon(const TSize& aSize) const
-	{
-	return iIcons->IconBySize(aSize);
-	}
-
-EXPORT_C CArrayFixFlat<TSize>* CApaAppViewData::IconSizesL() const
-	{
-	return iIcons->IconSizesL();
-	}
-
-EXPORT_C TPtrC CApaAppViewData::IconFileName() const
-	{
-	if (iIconFileName)
-		{
-		return *iIconFileName;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-EXPORT_C TBool CApaAppViewData::NonMbmIconFile() const
-	{
-	return iNonMbmIconFile;
-	}
-
-
-//
-// class CApaAppEntry
-//
-
-CApaAppEntry* CApaAppEntry::NewL(const TApaAppEntry& aAppEntry)
-	{ // static
-	CApaAppEntry* self=new(ELeave) CApaAppEntry(aAppEntry.iUidType);
-	CleanupStack::PushL(self);
-	self->ConstructL(aAppEntry.iFullName);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaAppEntry::~CApaAppEntry()
-	{
-	delete iFullName;
-	}
-
-void CApaAppEntry::Get(TApaAppEntry& aAppEntry) const
-	{
-	aAppEntry.iFullName=*iFullName;
-	aAppEntry.iUidType=iUidType;
-	}
-
-CApaAppEntry::CApaAppEntry(const TUidType& aUidType)
-	: iUidType(aUidType)
-	{
-	}
-
-void CApaAppEntry::ConstructL(const TDesC& aFileName)
-	{
-	iFullName=aFileName.AllocL();
-	}
-
-
-//
-// class TApaAppServiceInfo
-//
-
-TApaAppServiceInfo::TApaAppServiceInfo()
-	: iUid(KNullUid),
-	  iDataTypes(0),
-	  iOpaqueData(NULL)
-	{
-	}
-
-TApaAppServiceInfo::TApaAppServiceInfo(TUid aUid, 
-	CArrayFixFlat<TDataTypeWithPriority>* aDataTypes, HBufC8* aOpaqueData)
-	: iUid(aUid),
-	  iDataTypes(aDataTypes),
-	  iOpaqueData(aOpaqueData)
-	{
-	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));
-	__ASSERT_DEBUG(iOpaqueData, Panic(EPanicNullPointer));
-	}
-
-void TApaAppServiceInfo::ExternalizeL(RWriteStream& aStream) const
-	{
-	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));
-	__ASSERT_DEBUG(iOpaqueData, Panic(EPanicNullPointer));
-	aStream << iUid;
-	aStream << *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above
-	aStream << *iOpaqueData;//lint !e613 Possible use of null pointer - Asserted above
-	}
-
-void TApaAppServiceInfo::InternalizeL(RReadStream& aStream)
-	{
-	aStream >> iUid;
-	iDataTypes = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(1);
-	aStream >> *iDataTypes;
-	iOpaqueData = HBufC8::NewL(aStream, KMaxOpaqueDataLength);
-	}
-
-void TApaAppServiceInfo::Release()
-	{
-	if (iDataTypes)
-		{
-		iDataTypes->Reset();
-		delete iDataTypes;		
-		}
-	if (iOpaqueData)
-		{
-		delete iOpaqueData;
-		iOpaqueData = NULL;
-		}
-	}
-
-CArrayFixFlat<TDataTypeWithPriority>& TApaAppServiceInfo::DataTypes()
-	{
-	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));
-	return *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above
-	}
-
-/** Returns the service UID.
-
-Note that some APIs may store a UID other than a service UID
-in a TApaAppServiceInfo object. Such APIs clearly state what
-the UID represents.
-
-@return the service UID.
-*/
-EXPORT_C TUid TApaAppServiceInfo::Uid() const
-	{
-	return iUid;
-	}
-	
-EXPORT_C const CArrayFixFlat<TDataTypeWithPriority>& TApaAppServiceInfo::DataTypes() const
-	{
-	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));	
-	return *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above
-	}
-
-/** Returns the service implementation's opaque data.
-
-For each service UID registered by an application, the associated
-opaque data indicates how the service is implemented by that application.
-
-The meaning of the opaque data is not known to the framework, it will vary
-according to the service.
-
-For some services the opaque data may be a name intended for user display,
-for others it may be structured data that the service's client-side code can interpret.
-
-@return the service implementation's opaque data.
-*/
-EXPORT_C const TDesC8& TApaAppServiceInfo::OpaqueData() const
-	{
-	if (iOpaqueData)
-		{
-		return *iOpaqueData;
-		}
-	return KNullDesC8;
-	}
-
-//
-// class CApaAppServiceInfoArray
-//
-
-CApaAppServiceInfoArray::CApaAppServiceInfoArray()
-	{
-	}
-
-//
-// class CApaAppServiceInfoArrayWrapper
-//
-
-CApaAppServiceInfoArrayWrapper* CApaAppServiceInfoArrayWrapper::NewL(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray)
-	{
-	CApaAppServiceInfoArrayWrapper* self = new CApaAppServiceInfoArrayWrapper(aServiceInfoArray);
-	if (!self)
-		{
-		CleanupServiceArray(aServiceInfoArray);
-		User::LeaveNoMemory();
-		}
-	return self;
-	}
-
-CApaAppServiceInfoArrayWrapper::CApaAppServiceInfoArrayWrapper(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray)
-	: iServiceInfoArray(aServiceInfoArray)
-	{
-	}
-
-CApaAppServiceInfoArrayWrapper::~CApaAppServiceInfoArrayWrapper()
-	{
-	CleanupServiceArray(iServiceInfoArray);
-	iServiceInfoArray = NULL;
-	}
-
-TArray<TApaAppServiceInfo> CApaAppServiceInfoArrayWrapper::Array()
-	{
-	return iServiceInfoArray->Array();
-	}
-
-
-//
-// Class CApaAppData
-//
-
-EXPORT_C CApaAppData* CApaAppData::NewL(const TApaAppEntry& aAppEntry, RFs& aFs)
-	{
-	CApaAppData* self=new(ELeave) CApaAppData(aFs);
-	CleanupStack::PushL(self);
-	self->ConstructL(aAppEntry);
-	CleanupStack::Pop(); // self
-	return self;
-	}
-
-CApaAppData::CApaAppData(RFs& aFs)
-	:iCaption(NULL), iShortCaption(NULL), 
-	iIsPresent(CApaAppData::EIsPresent), iFs(aFs),
-	iNonMbmIconFile(EFalse),
-	iApplicationLanguage(ELangNone), iIndexOfFirstOpenService(-1),
-	iNonNativeApplicationType(TUid::Null()),
-	iShortCaptionFromResourceFile(NULL)
-	{
-	}
-
-void CApaAppData::ConstructL(const TApaAppEntry& aAppEntry)
-	{
-	iUidType = aAppEntry.iUidType; // if the 2nd UID is KUidAppRegistrationFile, iUidType will be updated in StoreApplicationInformation to reflect the TUidType for the application binary
-	if (ApaUtils::HandleAsRegistrationFile(aAppEntry.iUidType))
-		{
-		iRegistrationFile = aAppEntry.iFullName.AllocL();
-		}
-	else
-		{
-		iFullName = aAppEntry.iFullName.AllocL();
-		}
-
-	iCapabilityBuf.FillZ(iCapabilityBuf.MaxLength());
-	iIcons = CApaAppIconArray::NewL();
-	iViewDataArray=new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);
-	iOwnedFileArray=new(ELeave) CDesCArraySeg(1);
-	User::LeaveIfError(StoreApplicationInformation());
-	}
-
-// Return a standard error code
-// The value returned only reflect the caption status
-// If there is errors setting up captions the old values are retained
-// All other errors are silently ignored
-// General notes:
-// 1. This method is deliberately very similar to the old CApaAppData::GetAifData
-//    in order to maintain behavioural compatibility for V1 apps
-// 2. Be very careful in this method, because it can be called on a newly constructed object,
-//    or on an existing object, so don't assume member data pointers will be NULL
-TInt CApaAppData::StoreApplicationInformation()
-	{
-	HBufC* caption = NULL;
-	HBufC* shortCaption = NULL;
-
-	iTimeStamp = TTime(0); // cannot init in constructor because this function can be called on an existing CApaAppData object
-
-	CApaAppInfoReader* appInfoReader = NULL;
-	TBool readSuccessful = EFalse;
-	TBool isNonNativeApp = EFalse;
-	if (iRegistrationFile != NULL)
-		{
-		if (TParsePtrC(*iRegistrationFile).Path().CompareF(KLitPathForNonNativeResourceAndIconFiles)==0)
-			{
-			isNonNativeApp = ETrue;
-			}
-
-		TRAPD(err,appInfoReader = CApaAppInfoReaderV2::NewL(iFs, *iRegistrationFile, iUidType[2]));
-		if(err != KErrNone)
-			{
-			appInfoReader = NULL;
-			}
-
-		if (appInfoReader == NULL)
-			{
-			if (iFullName == NULL)
-				{
-				// assume that if iFullName is NULL, this method has been called as part
-				// of constructing a new app data object. The CApaAppInfoReader derived object
-				// could not be created, therefore we have no way to determine the full filename
-				// of the app binary, so give up
-				return KErrNoMemory;
-				}
-			}
-		else
-			{
-			readSuccessful = appInfoReader->Read();
-			HBufC* appBinaryFullName=appInfoReader->AppBinaryFullName();
-			if (appBinaryFullName)
-				{
-				delete iFullName;
-				iFullName = appBinaryFullName;
-				}
-			if (iFullName == NULL)
-				{
-				delete appInfoReader;
-				return KErrNoMemory;
-				}
-			// if this object has just been constructed, iUidType is currently the TUidType
-			// of the registration file, it should be the TUidType of the app binary file
-			TUidType uidType = appInfoReader->AppBinaryUidType();
-			if (uidType[1].iUid != KNullUid.iUid)
-				{
-				iUidType = uidType;
-				}
-			}
-		}
-
-	if (appInfoReader != NULL)
-		{
-		// must get captions regardless of value of readSuccessful,
-		// because the V1 reader might have read captions
-		// this is done to maintain behavioural compatibility with V1
-		caption = appInfoReader->Caption();
-		shortCaption = appInfoReader->ShortCaption();
-
-		CApaAppIconArray* icons = appInfoReader->Icons();
-		if(icons)
-			{
-			delete iIcons;
-			iIcons = icons;
-			iIconLoader = appInfoReader->IconLoader();
-			}
-		else
-			{			
-			TRAPD(err, icons = CApaAppIconArray::NewL());
-			if(err == KErrNone)
-				{
-				delete iIcons;
-				iIcons = icons;
-				}
-			}
-		iTimeStamp = appInfoReader->TimeStamp();
-		delete iLocalisableResourceFileName;
-		iLocalisableResourceFileName = appInfoReader->LocalisableResourceFileName();
-		iLocalisableResourceFileTimeStamp = appInfoReader->LocalisableResourceFileTimeStamp();
-
-		if (isNonNativeApp)
-			{
-			// In the case of a non-native app, the resource file has been prefixed with a
-			// TCheckedUid, the second of whose UIDs is the non-native application type uid.
-			TEntry entry;
-			const TInt error=iFs.Entry(*iRegistrationFile, entry);
-			if (error!=KErrNone)
-				{
-				delete appInfoReader;
-				return error;
-				}
-			__ASSERT_DEBUG(entry.iType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile, Panic(EPanicUnexpectedUid));
-			iNonNativeApplicationType=entry.iType[1];
-			}
-
-		delete iOpaqueData;
-		iOpaqueData = appInfoReader->OpaqueData();
-
-		if (readSuccessful)
-			{
-			appInfoReader->Capability(iCapabilityBuf);
-
-			iDefaultScreenNumber = appInfoReader->DefaultScreenNumber();
-
-			delete iIconFileName;
-			iIconFileName = appInfoReader->IconFileName();
-			iIconFileTimeStamp = appInfoReader->IconFileTimeStamp();
-			iNonMbmIconFile = appInfoReader->NonMbmIconFile();
-			iNumOfAppIcons = appInfoReader->NumOfAppIcons();
-			iApplicationLanguage = appInfoReader->AppLanguage();
-					
-			// views
-			iViewDataArray->ResetAndDestroy();
-			CArrayPtrFlat<CApaAppViewData>* viewDataArray = appInfoReader->Views();
-			if (viewDataArray)
-				{
-				delete iViewDataArray;
-				iViewDataArray = viewDataArray;
-				
-				if(!iIconLoader && ViewMbmIconsRequireLoading())
-				    {
-				    //if VIEW_DATA contains a MBM icon we need to initialize iIconLoader
-				    iIconLoader = appInfoReader->IconLoader();
-				    }
-				}
-
-			// owned files
-			iOwnedFileArray->Reset();
-			CDesCArray* ownedFileArray = appInfoReader->OwnedFiles();
-			if (ownedFileArray)
-				{
-				delete iOwnedFileArray;
-				iOwnedFileArray = ownedFileArray;
-				}
-			
-			UpdateServiceArray(appInfoReader->ServiceArray(iIndexOfFirstOpenService));
-			}
-		delete appInfoReader;
-		}
-
-	if (!caption)
-		{
-		TParsePtrC parse (*iFullName);
-		caption = parse.Name().Alloc();
-		}
-
-	// Put the captions into place
-	if (caption)
-		{
-		if (!shortCaption)
-			{
-			shortCaption = caption->Alloc();
-			if (!shortCaption)
-				{
-				delete caption;
-				caption = NULL;
-				}
-			}
-		}
-	if (caption)
-		{
-		delete iCaption;
-		iCaption = caption;
-		delete iShortCaption;
-		iShortCaption = shortCaption;
-		}
-
-	return caption ? KErrNone : KErrNoMemory;
-	}
-
-EXPORT_C CApaAppData::~CApaAppData()
-// Just delete components, NOT iNext (next CApaAppData in the list).
-	{
-	delete iSuccessor;
-	delete iCaption;
-	delete iShortCaption;
-	delete iFullName;
-	delete iShortCaptionFromResourceFile;
-	delete iCaptionFromResourceFile;
-	delete iIcons;
-	delete iIconLoader;
-	if(iViewDataArray)
-		{
-		iViewDataArray->ResetAndDestroy();
-		delete iViewDataArray;
-		}
-	delete iOwnedFileArray;
-	delete iIconFileName;
-	delete iIconFileNameFromResourceFile;
-	delete iLocalisableResourceFileName;
-	if (iServiceArray)
-		{
-		CleanupServiceArray(iServiceArray);
-		iServiceArray = NULL;
-		}
-	delete iOpaqueData;
-	delete iRegistrationFile;
-	iNext = NULL;
-	}
-
-void CApaAppData::UpdateServiceArray(CArrayFixFlat<TApaAppServiceInfo>* aNewServiceArray)
-	{
-	// clear out any existing service info
-	if (iServiceArray)
-		{
-		CleanupServiceArray(iServiceArray);
-		iServiceArray = NULL;
-		}
-	// store new service array
-	iServiceArray = aNewServiceArray;
-	}
-	
-TDataTypePriority CApaAppData::DataType(const TDataType& aDataType, const CArrayFixFlat<TDataTypeWithPriority>& aDataTypeArray) const
-	{
-	TInt count=aDataTypeArray.Count();
-	for (TInt ii=0;ii<count;ii++)
-		{
-		const TDataTypeWithPriority& type=aDataTypeArray[ii];
-		if (type.iDataType==aDataType)
-			{
-			return type.iPriority;
-			}
-		else
-			{
-			TPtrC8 src=type.iDataType.Des8();
-			TPtrC8 trg=aDataType.Des8();
-			if (src.Match(trg)==0 || trg.Match(src)==0)
-				{
-				if (type.iPriority == KDataTypePrioritySystem)
-					{
-					// This is more or less a magic number so don't decrement
-					return KDataTypePrioritySystem;
-					}
-				else
-					{
-					return (TInt16)(type.iPriority-1);
-					}
-				}
-			}
-		}
-	return KDataTypePriorityNotSupported;
-	}
-
-/**
- * Returns the CApaMaskedBitmap of size aSize for the application associated
- * with this CApaAppData. If the icons for the application are not yet loaded then it would be loaded first.
- * If there is not a bitmap of exact size aSize then 
- * the icon closest to but smaller than the one asked for is returned, or NULL if
- * none is smaller.
- * 
- * @since Uikon1.2
- */
-EXPORT_C CApaMaskedBitmap* CApaAppData::Icon(TSize aSize) const
-	{
-	return iIcons->IconBySize(aSize);
-	}
-
-/**
- * Returns a pointer to the small, medium or large application icon for aIconIndex equal to 0, 1 or 2 respectively.
- * Panics if aIconIndex is not one of these three values.
- *
- * This method is superseded by an overload which returns the icon by finding the closest match to a specified size.
- *
- * @deprecated
- */
-EXPORT_C CApaMaskedBitmap* CApaAppData::Icon(TInt aIconIndex) const
-	{
-	__ASSERT_DEBUG(aIconIndex>-1 && aIconIndex<3, Panic(EDPanicBadIconSize)); //only support old behaviour
-	TSize sizeExpected;
-	switch(aIconIndex)
-		{
-	case KApaIconIndexSmall:
-		sizeExpected=TSize(24,24);
-		break;
-	case KApaIconIndexMedium:
-		sizeExpected=TSize(32,32);
-		break;
-	case KApaIconIndexLarge:
-		sizeExpected=TSize(48,48);
-		break;
-	default:
-		break;
-		}
-	return Icon(sizeExpected);
-	}
-
-void CApaAppData::LoadIconsL()
-	{
-	iIconLoader->LoadAllIconsL();
-	}
-
-EXPORT_C CArrayFixFlat<TSize>* CApaAppData::IconSizesL()const
-/** Gets the sizes of icons available for the application. 
-* If the icons for the application are not yet loaded then it would be loaded first.
-
-@return A pointer to an array of the icon sizes. The caller takes ownership. */
-	{
-	return iIcons->IconSizesL();
-	}
-
-EXPORT_C TApaAppEntry CApaAppData::AppEntry() const
-/** Constructs an application entry based on this object.
-
-@return The application entry. */
-	{
-	return TApaAppEntry(iUidType,*iFullName);
-	}
-
-
-EXPORT_C void CApaAppData::Capability(TDes8& aCapabilityBuf)const
-/** Gets the application's capabilities.
-
-@param aCapabilityBuf On return, contains the application's capabilities, 
-specified as a TApaAppCapabilityBuf object. */
-	{
-	TApaAppCapability::CopyCapability(aCapabilityBuf,iCapabilityBuf);
-	}
-
-/**
- * Returns a pointer to the array of view data objects current for this application. Does not imply transfer of ownership.
- *
- * @since App-Framework_6.1
- */
-EXPORT_C CArrayPtrFlat<CApaAppViewData>* CApaAppData::Views() const
-	{
-	return iViewDataArray;
-	}
-
-/**
- * Returns a pointer to the array of files for which this application claims ownership. Does not imply transfer of ownership.
- *
- * @since App-Framework_6.1
- */
-EXPORT_C CDesCArray* CApaAppData::OwnedFiles() const
-	{
-	return iOwnedFileArray;
-	}
-
-TBool CApaAppData::Update()
-// returns true if changes were made to the cached data
-	{
-	__APA_PROFILE_START(17);
-	TBool changed=EFalse;
-
-	// Get app info file entry
-	TEntry entry;
-	TInt ret;
-	if (iRegistrationFile != NULL)
-		{
-		ret = iFs.Entry(*iRegistrationFile, entry);
-		if (ret==KErrNone && entry.iModified!=iTimeStamp)
-			{
-			// assume registration file may have changed
-			changed = ETrue;
-			}
-		else
-			{
-			if (iLocalisableResourceFileName)
-				{
-				// see if localisable resource information might have changed
-				TParse parse;
-				ret = parse.SetNoWild(KAppResourceFileExtension, iLocalisableResourceFileName, NULL);
-				if (ret == KErrNone)
-					{
-					TFileName resourceFileName(parse.FullName());
-					BaflUtils::NearestLanguageFile(iFs, resourceFileName);
-					if (resourceFileName.CompareF(*iLocalisableResourceFileName)!=0)
-						{
-						changed = ETrue;
-						}
-					else
-						{
-						ret = iFs.Entry(*iLocalisableResourceFileName, entry);
-						if ((ret==KErrNotFound && iLocalisableResourceFileTimeStamp!=TTime(0)) ||
-							(ret==KErrNone && entry.iModified!=iLocalisableResourceFileTimeStamp))
-							{
-							changed = ETrue;
-							}
-						}
-					}
-				}
-			}
-		}
-	if (changed)
-		{
-		// re-read data
-		// Ignore result, nothing we can do in case failure
-		// and the old values should be preserved
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-		const TInt ignore = StoreApplicationInformation();
-#else
-        const TInt ignore = StoreApplicationInformation(aDefaultAppIconFileName);
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-		} //lint !e529 Symbol 'ignore' not subsequently referenced
-		
-	else 
-		{
-		if (iIconFileName)
-			{
-			ret = iFs.Entry(*iIconFileName, entry);
-			// See if the icon file has been "modified"
-			// It could have been replaced with a differnt version, deleted or added 
-			// if the icon file specified in the resource was missing
-			if ((ret==KErrNotFound && iIconFileTimeStamp!=TTime(0)) ||
-					(ret==KErrNone && entry.iModified!=iIconFileTimeStamp))
-					{
-					// Assume the icon file has changed
-					iIconFileTimeStamp = entry.iModified;
-					changed = ETrue;
-					}
-			}
-		}
-
-	__APA_PROFILE_END(17);
-	return changed;
-	}
-
-EXPORT_C TDataTypePriority CApaAppData::DataType(const TDataType& aDataType) const
-// returns the priority of the data type
-/** If the application supports the specified data type, the function returns 
-the priority with which it should be selected for handling it.
-
-If the application does not support the specified data type, 
-KDataTypePriorityNotSupported is returned.
-
-Note that the function supports wildcard matching, using "*" and "?". In the case 
-of a wildcard match, the priority value returned is reduced by 1, so that in this 
-case, the application could never have the maximum priority 
-(KDataTypePriorityUserSpecified).
-
-@param aDataType The data type of interest.
-@return The priority with which the application should be selected for handling 
-the specified data type, or KDataTypePriorityNotSupported if the data type is 
-not supported. */
-	{
-	if (iIndexOfFirstOpenService >= 0)
-		{
-		const CArrayFixFlat<TDataTypeWithPriority>& dataTypeArray = 
-			(*iServiceArray)[iIndexOfFirstOpenService].DataTypes();
-		return DataType(aDataType, dataTypeArray);
-		}
-	return KDataTypePriorityNotSupported;
-	}
-
-
-EXPORT_C TBool CApaAppData::IsPending() const
-/* Returns true if the app info is not yet updated by the current scan. */
-	{
-	return (iIsPresent==CApaAppData::EPresentPendingUpdate 
-		|| iIsPresent==CApaAppData::ENotPresentPendingUpdate);
-	}
-
-EXPORT_C TBool CApaAppData::CanUseScreenMode(TInt aScreenMode)
-/** Tests whether the specified screen mode is valid for any of 
-this application's views. If the app has no views, the function 
-assumes that only the default screen mode (at screen mode index 
-zero) is allowed. This function is used by CApaAppList to create 
-a list of valid applications.
-
-@param aScreenMode The index of the screen mode.
-@return True if screen mode is valid, otherwise false. */
-	{
-	const TInt count=iViewDataArray->Count();
-	// If there are no views, assume only the default screen mode is allowed
-	TBool ret=(count==0 && aScreenMode==0);
-	for(TInt ii=0;ii<count;ii++)
-		{
-		const CApaAppViewData* data=(*iViewDataArray)[ii];
-		if(data->ScreenMode()==aScreenMode)
-			{
-			ret=ETrue;
-			break;
-			}
-		}
-	return ret;
-	}
-
-EXPORT_C void CApaAppData::GetIconInfo(TInt& aIconCount, TInt& aDefaultIconsUsed) const
-/** Gets icon information for the app. If the icons for the application are not yet loaded then it would be loaded first.
-
-@param aIconCount On return, this contains the number of app icons
-@param aDefaultIconsUsed On return, this indicates whether the default icons have been used
-*/
-	{
-	aIconCount = iIcons->Count();
-	aDefaultIconsUsed = iIcons->DefaultIconsUsed();
-	}
-
-/** Gets the default screen number used by the application.
-
-A device may have more than once screen. This function
-returns the number associated with the screen which will
-be the default screen used by the application.
-
-@return The default screen number
-*/
-EXPORT_C TUint CApaAppData::DefaultScreenNumber() const
-	{
-	return iDefaultScreenNumber;
-	}
-
-/** Returns true if app info was provided by a registration file
-
-@return true if app info was provided by a registration file
-*/
-EXPORT_C TBool CApaAppData::RegistrationFileUsed() const
-	{
-	return iRegistrationFile != NULL;
-	}
-
-/** Returns the full filename of the registration resource file
-
-@return The full path and filename of the registration resource file.
-@internalTechnology
-*/
-EXPORT_C TPtrC CApaAppData::RegistrationFileName() const
-	{
-	if (iRegistrationFile)
-		{
-		return *iRegistrationFile;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-
-/** Returns the full filename of the localisable resource file
-
-@return The full path and filename of the localisable resource file.
-@internalTechnology
-*/
-EXPORT_C TPtrC CApaAppData::LocalisableResourceFileName() const
-	{
-	if (iLocalisableResourceFileName)
-		{
-		return *iLocalisableResourceFileName;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-
-/** Returns the non-native application opaque data
-
-@return The non-native application opaque data.
-@internalComponent
-*/
-EXPORT_C TPtrC8 CApaAppData::OpaqueData() const
-	{
-	if (iOpaqueData)
-		{
-		return *iOpaqueData;
-		}
-	else
-		{
-		return TPtrC8(KNullDesC8);
-		}
-	}
-
-EXPORT_C TUid CApaAppData::NonNativeApplicationType() const
-/** @internalComponent */
-	{
-	return iNonNativeApplicationType;
-	}
-
-/** Returns the full filename of the file containing application icons
-
-@return The full path and filename of the icon file.
-*/
-EXPORT_C TPtrC CApaAppData::IconFileName() const
-	{
-	if (iIconFileName)
-		{
-		return *iIconFileName;
-		}
-	else
-		{
-		return TPtrC(KNullDesC);
-		}
-	}
-
-/** Returns true if the application provides a non-MBM icon filename.
-
-If this function returns false, this does not necessarily mean
-an MBM icon filename is provided.
-
-@return true if the application provides a non-MBM icon filename.
-*/
-EXPORT_C TBool CApaAppData::NonMbmIconFile() const
-	{
-	return iNonMbmIconFile;
-	}
-
-
-/** Determines the current language the application is using to display its
-user interface.
-@return The current language.
-*/	
-EXPORT_C TLanguage CApaAppData::ApplicationLanguage() const
-	{
-	return iApplicationLanguage;
-	}
-
-/** Returns true if the application implements the specified service.
-@param aServiceUid The service UID.
-@return true if the application implements the specified service.
-@internalComponent
-*/
-EXPORT_C TBool CApaAppData::ImplementsService(TUid aServiceUid) const
-	{
-	if (iServiceArray)
-		{
-		TInt count = iServiceArray->Count();
-		for (TInt i = count-1; i >= 0; i--)
-			{
-			if ((*iServiceArray)[i].Uid() == aServiceUid)
-				{
-				return ETrue;
-				}
-			}
-		}
-	return EFalse;
-	}
-	
-/** Checks if the application implements the specified service and if the 
-service explicitly supports the datatype. Explicitly means that the datatype is
-listed in the service's list of datatype in the registration file and is
-not the general datatype associated with the application (aka the Open service).
-@param aServiceUid The service UID.
-@param aDataType The datattype
-@return The priority. KDataTypePriorityNotSupported if the app doesn't support
-this service with this datatype.
-@internalComponent
-*/
-TInt CApaAppData::ImplementsServiceWithDataType(TUid aServiceUid, const TDataType& aDataType) const
-	{
-	TInt result = KDataTypePriorityNotSupported;
-	if (iServiceArray)
-		{
-		TInt count = iServiceArray->Count();
-		for (TInt i = count-1; i >= 0; i--)
-			{
-			// There can be more than one instance of a given service so we iterate
-			// through the whole service list even if we have already found a suitable
-			// service.
-			if ((*iServiceArray)[i].Uid() == aServiceUid)
-				{
-				const CArrayFixFlat<TDataTypeWithPriority>& datatypes =
-					(*iServiceArray)[i].DataTypes();
-				TInt priority = DataType(aDataType, datatypes);
-				if (priority > result)
-					{
-					result = priority;
-					}
-				}
-			}
-		}
-	return result;
-	}
-
-EXPORT_C void CApaAppData::SetShortCaptionL(const TDesC& aShortCaption)
-	{
-	if(iShortCaption->Compare(aShortCaption) != 0)
-		{
-		HBufC* newShortCaption=aShortCaption.AllocL();
-		if (!iShortCaptionFromResourceFile)
-			{ // store the rsc file caption into iShortCaptionFromResourceFile so that it can be externalized.
-			iShortCaptionFromResourceFile = iShortCaption;
-			}
-		else
-			{
-			delete iShortCaption;
-			}
-		iShortCaption = newShortCaption;
-		}
-	}
-
-/** Sets the caption of the application. If the caption is from central repository,
- it overrides tha value from the resource file.  
-*/
-EXPORT_C void CApaAppData::SetCaptionL(const TDesC& aCaption)
-	{
-	if(iCaption->Compare(aCaption) != 0)
-		{
-		HBufC* newCaption=aCaption.AllocL();
-		if (!iCaptionFromResourceFile)
-			{ // store the rsc file caption into iCaptionFromResourceFile so that it can be externalized.
-			iCaptionFromResourceFile = iCaption;
-			}
-		else
-			{
-			delete iCaption;
-			}
-		iCaption = newCaption;
-		}
-	}
-
-/** Sets the icon details of an application. If these details are from the central repository,
- it overrides the value in the resource file and loads it.
-*/
-EXPORT_C void CApaAppData::SetIconsL(const TDesC& aFileName, TInt aNumIcons)
-	{
-	if (iIconFileName && 
-		iIconFileName->Compare(aFileName) == 0 &&
-		iNumOfAppIcons == aNumIcons)
-		return;
-
-	if (!iIconFileNameFromResourceFile)
-		{
-	 	iNumOfAppIconsFromResourceFile = iNumOfAppIcons;
-	 	iIconFileNameFromResourceFile = iIconFileName;
-	 	iIconFileName = NULL;
-	 	iNonMbmIconFileFromResourceFile = iNonMbmIconFile;
-	 	iIconFileTimeStampFromResourceFile = iIconFileTimeStamp;
-		}
-		
-	iNonMbmIconFile = !CApaAppInfoReaderV2::FileIsMbm(aFileName);
-	iNumOfAppIcons = aNumIcons;
-	
-	if (aFileName != KNullDesC)
-		{
-		iIconFileName = aFileName.AllocL();
-		if (!iNonMbmIconFile)
-			{
-			if (iNumOfAppIcons > 0)
-				{
-				// Creates an Application Icon Array
-				CApaAppIconArray* icons = CApaAppIconArray::NewAppIconsL(iNumOfAppIcons, *iIconFileName, *iIconLoader);
-				delete iIcons;
-				iIcons = icons;
-				}
-			}
-		else
-			{	// Creates an Empty Icon Array if application has Non-Mbm Icons
-			CApaAppIconArray* icons = CApaAppIconArray::NewL();
-			delete iIcons;
-			iIcons = icons;
-			}
-		}
-	else
-		{
-		CApaAppIconArray* icons = CApaAppIconArray::NewDefaultIconsL();
-		delete iIcons;
-		iIcons = icons;
-		}
-	}
-
-void CApaAppData::SetAppPending()
-	{
-	if (iIsPresent == CApaAppData::ENotPresent 
-		|| iIsPresent == CApaAppData::ENotPresentPendingUpdate)
-		{
-		iIsPresent = CApaAppData::ENotPresentPendingUpdate;
-		}
-	else
-		{
-		iIsPresent = CApaAppData::EPresentPendingUpdate;
-		}
-	}
-
-//
-// Class CApaAppList
-//
-
-EXPORT_C CApaAppList* CApaAppList::NewL(RFs& aFs,CApaAppRegFinder* aAppRegFinder, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay)
-	{
-	CApaAppList* self=new CApaAppList(aFs, aAppRegFinder, aLoadMbmIconsOnDemand, aIdlePeriodicDelay);
-	if (!self)
-		{
-		delete aAppRegFinder;
-		User::LeaveNoMemory();
-		}
-	else
-		{
-		CleanupStack::PushL(self);
-		self->ConstructL();
-		CleanupStack::Pop(self);
-		}
-	return self;
-	}
-
-CApaAppList::CApaAppList(RFs& aFs, CApaAppRegFinder* aAppRegFinder, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay)
-	:iFs(aFs),
-	iFlags(0),
-	iAppRegFinder(aAppRegFinder),
-	iIdlePeriodicDelay(aIdlePeriodicDelay),
-	iLoadMbmIconsOnDemand(aLoadMbmIconsOnDemand),
-    iUninstalledApps(NULL)	
-	{
-	}
-
-void CApaAppList::ConstructL()
-	{
-	User::LeaveIfError(iFsShareProtected.Connect());
-	User::LeaveIfError(iFsShareProtected.ShareProtected());
-	User::LeaveIfError(Dll::SetTls(this));
-	
-	//Start language change monitor.
-	iAppLangMonitor = CApaLangChangeMonitor::NewL(*this);
-	GetAppsListCachePathL();
-	}
-	
-EXPORT_C CApaAppList::~CApaAppList()
-/** Frees all resources prior to destruction, including the application data list. */
-	{
-	iValidFirstAppData = NULL;
-	DeleteAppData();
-
-	iAppData = NULL;
-	iObserver = NULL;
-	iFsShareProtected.Close();
-
-	delete iDefaultIconArray;
-	delete iDefaultAppIconMbmFileName;
-	delete iAppRegFinder;
-	delete iAppIdler;
-	delete iAppListStorer;
-	delete iAppIconLoader;
-	delete iAppLangMonitor;
-	iAppsListCacheFileName.Close();
-	iAppsListCacheBackUpFileName.Close();
-	iAppsListCachePath.Close();
-	}
-
-// Stop scanning applications if and uninstallation has started	
-EXPORT_C void CApaAppList::StopScan(TBool aNNAInstall)
-	{
-	if (aNNAInstall)
-		{
-		iNNAInstallation = ETrue;
-		}
-	if (iAppIdler)
-		{
-		delete iAppIdler;
-		iAppIdler=NULL;
-		}
-	UndoSetPending(iAppData);
-	}
-	
-// Allow scanning when uninstallation is complete
-EXPORT_C void CApaAppList::RestartScanL()
-	{
-	TRAP_IGNORE(PurgeL());
-	StartIdleUpdateL();
-	}
-	
-EXPORT_C TBool CApaAppList::AppListUpdatePending()
-	{
-	return iNNAInstallation;
-	}
-
-void CApaAppList::UndoSetPending(CApaAppData* aAppData)
-	// Reset all apps to pevious pending state so they don't get purged
-	{
-  	for (; aAppData; aAppData = aAppData->iNext)
-		{
-		if (aAppData->iIsPresent == CApaAppData::EPresentPendingUpdate)
-			{
-			aAppData->iIsPresent = CApaAppData::EIsPresent;
-			}
-		}
-	}
-
-EXPORT_C void CApaAppList::StartIdleUpdateL()
-/** Updates the list asynchronously, using an idle time active object, 
-and no observer. When the update is finished, the resulting app 
-list is stored. */
-	{
-	// find the default icons (.mbm file) for applications, wrt current locale
-	CreateDefaultAppIconFileNameL();
-
-	// File operation is abandoned if it is in progress.
-	if (iAppListStorer && iAppListStorer->IsActive())
-		{
-		delete iAppListStorer;
-		iAppListStorer = NULL;
-		}
-
-	// Stops icon loading if it is in progress.
-	if (iAppIconLoader && iAppIconLoader->IsActive())
-		{
-		delete iAppIconLoader;
-		iAppIconLoader = NULL;
-		}
-
-	// DEF076594 - if changing locale, need to update the default icons here
-	// If updating the default icons array fails, the array is left in the state
-	// it was in before the call.
-	if(iDefaultIconArray)
-		{
-		TRAP_IGNORE(UpdateDefaultIconsL());
-		}
-
-	// start to scan.
-	if (iAppIdler)
-		{
-		delete iAppIdler;
-		iAppIdler=NULL;
-		}
-		
-	// DEF072701
-	// When performing the update scan let the idle object have lower priority.
-	if (IsFirstScanComplete())
-		{
-		iAppIdler=CPeriodic::NewL(CActive::EPriorityLow);
-		}
-	else
-		{
-		iAppIdler=CPeriodic::NewL(CActive::EPriorityStandard);
-		}
-	SetPending(iAppData);
-	iAppRegFinder->FindAllAppsL();
- 
- 	// DEF072701
- 	// If this is the first scan i.e the boot scan then it may take some time. Thus
- 	// the periodic delay value should be used so that this process will stop periodically 
- 	// to allow time for other processes.
- 	// If this is just a re-scan it should take much less time. Therefore it should just
- 	// be completed in one go rather than periodically delayed. Thus the delay value
- 	// should be set to 0.
-	iAppIdler->Start(KIdleStartDelay, IsFirstScanComplete()? 0 : iIdlePeriodicDelay, TCallBack(IdleUpdateCallbackL, this));
-	}
-
-EXPORT_C void CApaAppList::StartIdleUpdateL(MApaAppListObserver* aObserver)
-/** Updates the list asynchronously, using an idle time active object 
-and an observer. When the update is finished, the resulting app list 
-is stored and the observer is notified with an MApaAppListServObserver::EAppListChanged 
-message, if the list changed.
-@param aObserver Observer to be notified when the update has finished. */
-	{
-	iObserver=aObserver;
-
-	// Rename Appslist.bin file to AppsList_Backup.bin, so that it can be renamed back, if rescan/update scan does not change applist.
-	TInt replaceError = iFs.Replace(iAppsListCacheFileName, iAppsListCacheBackUpFileName);
-	if (replaceError != KErrNone)
-		{
-		iFs.Delete(iAppsListCacheFileName);
-		}
-	StartIdleUpdateL();
-	}
-
-void CApaAppList::CreateDefaultAppIconFileNameL()
-	{
-	TFileName tempFileName(KDefaultAppIconMbm);
-	BaflUtils::NearestLanguageFile(iFs, tempFileName);
-	delete iDefaultAppIconMbmFileName;
-	iDefaultAppIconMbmFileName = NULL;
-	iDefaultAppIconMbmFileName = tempFileName.AllocL();
-	}
-
-EXPORT_C void CApaAppList::InitListL(MApaAppListObserver* aObserver)
-/** It Restores the data present in the AppsList.bin file and updates the applist. 
- * If Restore operation fails then it 
- * starts updating the list asynchronously, by calling StartIdleUpdateL().
-
-@param aObserver Observer to be notified when the update has finished. */
-	{
-	DeleteAppsListBackUpAndTempFiles();
-	TInt ret = KErrGeneral;
-//#ifndef __WINS__ // on the emulator, don't read app list from file, as doing so means apps
-                 // built while the emulator isn't running won't appear in the list
-	TRAP(ret, RestoreL());
-//#endif
-	if (ret != KErrNone)
-		{
-		// There was an error during restore, so update the list asynchronously.
-		DeleteAppData();
-		iFs.Delete(iAppsListCacheFileName);
-		StartIdleUpdateL(aObserver);
-		}
-	else
-		{
-		iObserver = aObserver;
-		if (iLoadMbmIconsOnDemand)
-			{
-			InitiateStoringOfAppList();
-			}
-		else
-			{
-			StartIconLoadingL();
-			}
-		}
-	}
-
-void CApaAppList::StartIconLoadingL()
-	{
-	iAppIconLoader = new(ELeave) CApaIdleIconLoader(iAppData, iFs, *this);
-	iAppIconLoader->Start();
-	}
-
-void CApaAppList::ScanRemovableDrivesAndUpdateL()
-/** Rename Appslist.bin file to AppsList_Backup.bin, so that it can be renamed back, 
-     if the update scan on removable media drives does not change applist. */
-	{
-	const RArray<TDriveUnitInfo>& listOfRemovableMediaDrives = iAppRegFinder->DriveList();
-	const TInt count = listOfRemovableMediaDrives.Count();
-
-	// Removable media scan would take place only if removable drives are present.
-	if (count)
-		{
-		CApaAppData* appData = iAppData;
-		while (appData)
-			{
-			for (TInt driveIndex = 0; driveIndex < count; ++driveIndex)
-				{
-				if (TParsePtrC(*appData->iRegistrationFile).Drive() == listOfRemovableMediaDrives[driveIndex].iDriveUnit.Name())
-					{
-					appData->SetAppPending();
-					break;
-					}
-				}
-			appData = appData->iNext;
-			}
-
-		while (IdleUpdateL())
-			{ // It updates the removable media apps present in AppList if it has changed.
-
-			};
-		}
-	}
-
-void CApaAppList::DeleteAppsListBackUpAndTempFiles()
-/** Deletes all files inside AppsListCache folder except AppsList.bin */
-	{
-	_LIT(KTemp, "AppsList.bin");
-	CDir* cache = NULL;
-	TInt ret = iFs.GetDir(iAppsListCachePath, KEntryAttNormal, ESortNone, cache);
-	if (ret == KErrNone)
-		{
-		const TInt count = cache->Count();
-		for (TInt i = 0; i < count; ++i)
-			{
-			TBufC<KMaxFileName> cacheFileName = (*cache)[i].iName;
-	#if defined (SYMBIAN_BAFL_SYSUTIL)
-				if ((cacheFileName.Match(KTemp) == KErrNotFound) && (cacheFileName.Match(KROMVersionStringCacheFileName) == KErrNotFound)) 
-	#else
-				if ((cacheFileName.Match(KTemp) == KErrNotFound)) 
-	#endif
-				{
-				TFileName fileNameToDelete;
-				fileNameToDelete.Append(iAppsListCachePath);
-				fileNameToDelete.Append(cacheFileName);
-				iFs.Delete(fileNameToDelete);
-				}
-			}
-		delete cache;
-		}
-	}
-
-void CApaAppList::RestoreL()
-/** It restores the data present in the AppsList.bin file */
-	{
-	RFileReadStream theReadStream;
-	User::LeaveIfError(theReadStream.Open(iFs, iAppsListCacheFileName, EFileRead));
-	CleanupClosePushL(theReadStream);
-	
-	TLanguage appListFileLanguage = (TLanguage)theReadStream.ReadInt32L();
-	if (appListFileLanguage != User::Language())
-		{
-		User::Leave(KErrNotSupported);
-		}
-		
-#if defined (SYMBIAN_BAFL_SYSUTIL)
-	//Build the filename for the cache file
-	TInt maxSizeofFileName = iAppsListCachePath.Length() + KROMVersionStringCacheFileName().Length();
-	RBuf romVersionCacheFileName;
-	romVersionCacheFileName.CreateL(maxSizeofFileName);
-	romVersionCacheFileName.CleanupClosePushL();
-	romVersionCacheFileName.Append(iAppsListCachePath);
-	romVersionCacheFileName.Append(KROMVersionStringCacheFileName());
-	
-	RFileReadStream romVerStream;
-	User::LeaveIfError(romVerStream.Open(iFs,romVersionCacheFileName,EFileRead));
-	CleanupClosePushL(romVerStream);
-	
-	TVersion actualROMVersionCacheFileVersion(KROMVersionCacheFileMajorVersion, KROMVersionCacheFileMinorVersion, KROMVersionCacheFileBuildVersion);
-	TVersionName actualROMVersionCacheFileVersionName = actualROMVersionCacheFileVersion.Name();
-	
-	//read the rom file version
-	TInt8 romVersionCacheFileMajorVersion = romVerStream.ReadInt8L();
-	TInt8 romVersionCacheFileMinorVersion = romVerStream.ReadInt8L();
-	TInt16 romVersionCacheFileBuildVersion = romVerStream.ReadInt16L();
-	TVersion romVersionCacheFileVersion(romVersionCacheFileMajorVersion, romVersionCacheFileMinorVersion, romVersionCacheFileBuildVersion);
-	TVersionName romVersionCacheFileVersionName = romVersionCacheFileVersion.Name();
-	
-	//If persisted file version differs from what apparc can handle, recreate rom version file and applist.bin
-	if (romVersionCacheFileVersionName.Compare(actualROMVersionCacheFileVersionName) != 0)
-		{
-		User::Leave(KErrGeneral);
-		}
-		
-	//Read the length & value of software version from it.
-	TBuf<KInfoBufLength> softwareVersion;
-	TUint32 length = romVerStream.ReadUint32L();
-	if (length>KInfoBufLength)
-		{
-		//File must be corrupt, an attempt to read will panic
-		User::Leave(KErrCorrupt);
-		}	
-	romVerStream.ReadL(softwareVersion, length);
-
-	//the persisted version has been successfully read
-	//read the actual current version string
-	TBuf<KInfoBufLength> actualSoftwareVersion;
-	TInt err = SysUtil::GetSWVersion(actualSoftwareVersion); //use the SysUtil implementation
-	if(err == KErrNone)
-		{
-		if (softwareVersion.Compare(actualSoftwareVersion) != 0)
-			{
-			//Leave if the current version is different from the previous stored version and recreate applist.
-#ifdef _DEBUG
-			RDebug::Print(_L("!!Firmware update detected!! Rebuilding AppList"));
-#endif
-			User::Leave(KErrGeneral);
-			}
-		}
-	else
-		{
-		//Leave if any error reading the version information, except if file is not present
-		if (err != KErrPathNotFound && err != KErrNotFound)
-			{
-#ifdef _DEBUG
-			RDebug::Print(_L("!!Error %d reading Firmware version.  Rebuilding AppList"),err);
-#endif
-			User::Leave(err);
-			}
-		}
-	CleanupStack::PopAndDestroy(2); //romVerStream, romVersionCacheFileName
-#endif
-	
-	// Create Default Icon File Name
-	CreateDefaultAppIconFileNameL();
-	
-	TInt ret = KErrNone;
-	while (ret == KErrNone)
-		{
-		CApaAppData* const pApp = new (ELeave) CApaAppData(iFs);
-		CleanupStack::PushL(pApp);
-
-		// Restore entries till we leave
-		TRAP(ret, pApp->InternalizeL(theReadStream));
-		
-		if (ret != KErrNone && ret != KErrEof)
-			{
-			User::Leave(ret);
-			}
-		// Check that the app has not been added to the list twice
-		if (ret == KErrNone && !AppDataByUid(pApp->iUidType[2]))
-			{
-			AddToList(pApp);
-			CleanupStack::Pop(pApp);
-			}
-		else
-			{ // Delete pApp if an End of File condition is reached or the app has been added to the list twice
-			CleanupStack::PopAndDestroy(pApp);
-			}
-		}	
-	// Close the stream;
-	CleanupStack::PopAndDestroy(&theReadStream);
-
-	iFs.Rename(iAppsListCacheFileName, iAppsListCacheBackUpFileName);
-	iAppRegFinder->FindAllRemovableMediaAppsL();	// Builds the Removable Media Drive List
-
-	iFlags |= ENotifyUpdateOnFirstScanComplete;
-
-	// It runs an update scan on removable media apps.
-	ScanRemovableDrivesAndUpdateL();
-	}
-
-EXPORT_C TBool CApaAppList::IsLanguageChangePending() const
-/** Returns ETrue if a language change event is received and a re-scan is in progress otherwise EFalse. */
-	{
-	return (iFlags & ELangChangePending);
-	}
-
-void CApaAppData::InternalizeL(RReadStream& aReadStream)
-/** Internalizes the appdata from the AppsList.bin file */
-	{
-	TUint highTime = aReadStream.ReadUint32L();
-	TUint lowTime = aReadStream.ReadUint32L();
-	iTimeStamp = TTime(MAKE_TINT64(highTime, lowTime));
-
-	highTime = aReadStream.ReadUint32L();
-	lowTime = aReadStream.ReadUint32L();
-	iIconFileTimeStamp = TTime(MAKE_TINT64(highTime, lowTime));
-	iCaption = HBufC::NewL(aReadStream, KMaxFileName);	// Caption
-	iShortCaption = HBufC::NewL(aReadStream, KMaxFileName);	// Shortcaption
-	iFullName = HBufC::NewL(aReadStream, KMaxFileName);		// Filename of application binary
-
-	TUid uid1;
-	uid1.iUid = aReadStream.ReadUint32L();
-	TUid uid2;
-	uid2.iUid = aReadStream.ReadUint32L();	
-	TUid uid3;
-	uid3.iUid = aReadStream.ReadUint32L();
-	iUidType = TUidType(uid1, uid2, uid3);	// Application UID
-	
-	aReadStream >> iCapabilityBuf;
-
-	iRegistrationFile = HBufC::NewL(aReadStream, KMaxFileName);	// Registration Filename
-		
-	iDefaultScreenNumber = aReadStream.ReadUint32L();	// Default Screen number
-	
-	iNumOfAppIcons = aReadStream.ReadInt32L();	// No. of icons
-
-	iNonMbmIconFile = aReadStream.ReadUint32L();
-
-	HBufC* iconFileName = HBufC::NewL(aReadStream, KMaxFileName);	// Icon Filename
-	if (*iconFileName != KNullDesC)
-		{
-		iIconFileName = iconFileName;
-		if (!iNonMbmIconFile)
-			{
-			if (iNumOfAppIcons > 0)
-				{ // Create IconLoader to load icons
-				iIconLoader = CApaIconLoader::NewL(iFs);
-				// Creates an Application Icon Array
-				iIcons = CApaAppIconArray::NewAppIconsL(iNumOfAppIcons, *iIconFileName, *iIconLoader);
-				}
-			else
-			    TRAP_IGNORE(iIcons = CApaAppIconArray::NewDefaultIconsL()); // Creates and Loads Default Icons.
-			}
-		else
-			{	// Creates an Empty Icon Array if application has Non-Mbm Icons
-			iIcons = CApaAppIconArray::NewL();
-			}
-		}
-	else
-		{
-		delete iconFileName;
-		TRAP_IGNORE(iIcons = CApaAppIconArray::NewDefaultIconsL()); // Creates and Loads Default Icons.
-		}
-
-	HBufC* localisableResourceFileName = HBufC::NewL(aReadStream, KMaxFileName);	// Registration Filename
-	if (*localisableResourceFileName != KNullDesC)
-		{
-		iLocalisableResourceFileName = localisableResourceFileName;
-		}
-	else
-		{
-		delete localisableResourceFileName;
-		}	
-
-	highTime = aReadStream.ReadUint32L();
-	lowTime = aReadStream.ReadUint32L();
-	iLocalisableResourceFileTimeStamp = TTime(MAKE_TINT64(highTime, lowTime));	// Localisable file timestamp
-
-	iApplicationLanguage = (TLanguage)aReadStream.ReadInt32L();	// Application Language
-
-	iIndexOfFirstOpenService = aReadStream.ReadUint32L();		// Index of first open service
-
-	iNonNativeApplicationType.iUid = aReadStream.ReadUint32L();
-
-	HBufC8* opaqueData = HBufC8::NewL(aReadStream, KMaxFileName);	// Opaque Data
-	if (*opaqueData != KNullDesC8)
-		{
-		iOpaqueData = opaqueData;
-		}
-	else
-		{
-		delete opaqueData;
-		}
-
-	iViewDataArray = new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);	// ViewDataArray
-	const TInt viewCount = aReadStream.ReadInt32L();
-	TInt i;	
-	for (i = 0; i < viewCount; ++i)
-		{
-		CApaAppViewData* pView = CApaAppViewData::NewLC();
-
-		pView->iCaption = HBufC::NewL(aReadStream, KMaxFileName);
-		pView->iNumOfViewIcons = aReadStream.ReadUint32L();
-		pView->iNonMbmIconFile = aReadStream.ReadUint32L();
-		HBufC* iconFileName = HBufC::NewL(aReadStream, KMaxFileName);	// Icon Filename		
-		if (*iconFileName != KNullDesC)
-			{
-			pView->iIconFileName = iconFileName;
-			if (!pView->iNonMbmIconFile)
-				{
-				if (pView->iNumOfViewIcons > 0)
-					{
-					if (!iIconLoader)
-						{	// Create Icon Loader if it was not done for App or any of the previous views for the App.
-						iIconLoader = CApaIconLoader::NewL(iFs);
-						}
-					// Creates an Application View Icon Array
-					CApaAppIconArray* iconViewArray = CApaAppIconArray::NewViewIconsL(pView->iNumOfViewIcons, *pView->iIconFileName, *iIconLoader);
-					pView->SetIconArray(iconViewArray);
-					}
-				}
-			}
-		else
-			{
-			delete iconFileName;
-			}
-		pView->iScreenMode = aReadStream.ReadUint32L();
-		pView->iUid.iUid = aReadStream.ReadUint32L();
-
-		iViewDataArray->AppendL(pView);
-		CleanupStack::Pop(pView);
-		}
-
-	iServiceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(1);
-	const TInt serviceCount = aReadStream.ReadUint32L();
-
-	for (i = 0; i < serviceCount; ++i)
-		{
-		TApaAppServiceInfo serviceInfo ;
-		aReadStream >> serviceInfo;
-		iServiceArray->AppendL(serviceInfo);
-		}
-
-	iOwnedFileArray = new(ELeave) CDesCArraySeg(1);
-	const TInt fileCount = aReadStream.ReadUint32L();	
-	for (i = 0; i < fileCount; ++i)
-		{
-		TFileName ownedFile;
-		aReadStream >> ownedFile;
-		iOwnedFileArray->AppendL(ownedFile);
-		}
-	}
-
-TBool CApaAppData::ViewMbmIconsRequireLoading() const
-	{
-	const TInt count = iViewDataArray->Count();
-	for (TInt i = 0; i < count; ++i)
-		{
-		const CApaAppViewData* const viewData = iViewDataArray->At(i);
-		if ((!viewData->iNonMbmIconFile) && (!viewData->iIcons->AreViewIconsLoaded()))
-			{
-			return ETrue;
-			}
-		}
-	return EFalse;
-	}
-	
-TBool CApaAppData::MbmIconsRequireLoading() const
-	{
-	if (!iNonMbmIconFile)
-		{
-		if (!iIcons->AreAppIconsLoaded())
-			{
-			return ETrue;
-			}
-		}
-
-	if (ViewMbmIconsRequireLoading())
-		{// if a view has mbm icons, and its not yet loaded we should load its icons.
-		return ETrue;
-		}
-	return EFalse; // icons were loaded already so no need to load them again.
-	}
-
-void CApaAppData::ExternalizeL(RWriteStream& aWriteStream) const
-	{
-	aWriteStream.WriteUint32L(I64HIGH(iTimeStamp.Int64()));
-	aWriteStream.WriteUint32L(I64LOW(iTimeStamp.Int64()));
-
-	if (iIconFileNameFromResourceFile)
-		{
-		aWriteStream.WriteUint32L(I64HIGH(iIconFileTimeStampFromResourceFile.Int64()));
-	    aWriteStream.WriteUint32L(I64LOW(iIconFileTimeStampFromResourceFile.Int64()));
-		}
-	else
-		{
-	aWriteStream.WriteUint32L(I64HIGH(iIconFileTimeStamp.Int64()));
-	aWriteStream.WriteUint32L(I64LOW(iIconFileTimeStamp.Int64()));
-		}
-		
-	if (iCaptionFromResourceFile)	// Caption present in the resource file would be externalized if the one in applist has dynamically changed
-		{
-		aWriteStream << *iCaptionFromResourceFile;
-		}
-	else
-		{
-		aWriteStream << *iCaption;
-		}
-		
-	if (iShortCaptionFromResourceFile)	// Short caption present in the resource file would be externalized if the one in applist has dynamically changed
-		{
-		aWriteStream << *iShortCaptionFromResourceFile;
-		}
-	else
-		{
-		aWriteStream << *iShortCaption;
-		}
-	aWriteStream << *iFullName;	// FullName
-
-	TInt i;
-	for (i = 0; i < 3; ++i)
-		{
-		aWriteStream << iUidType[i];	// Uid Type
-		}
-
-	aWriteStream << iCapabilityBuf;
-	aWriteStream << RegistrationFileName();	// Registration filename
-	aWriteStream.WriteUint32L(iDefaultScreenNumber);	// Default screen number
-
-	if (iIconFileNameFromResourceFile)
-		{
-		aWriteStream.WriteUint32L(iNumOfAppIconsFromResourceFile);	// number of icons
-
-		aWriteStream.WriteUint32L(iNonMbmIconFileFromResourceFile);
-
-		aWriteStream << *iIconFileNameFromResourceFile;
-		}
-	else
-		{
-	aWriteStream.WriteUint32L(iNumOfAppIcons);	// number of icons
-
-	aWriteStream.WriteUint32L(iNonMbmIconFile);
-
-	aWriteStream << IconFileName();
-		}
-
-	aWriteStream << LocalisableResourceFileName();
-
-	aWriteStream.WriteUint32L(I64HIGH(iLocalisableResourceFileTimeStamp.Int64()));
-	aWriteStream.WriteUint32L(I64LOW(iLocalisableResourceFileTimeStamp.Int64()));
-
-	aWriteStream.WriteInt32L(iApplicationLanguage);
-
-	aWriteStream.WriteUint32L(iIndexOfFirstOpenService);
-
-	aWriteStream.WriteUint32L(iNonNativeApplicationType.iUid);
-
-	aWriteStream << OpaqueData();
-	
-	TInt count = iViewDataArray->Count();
-	aWriteStream.WriteUint32L(count);
-
-	for (i = 0; i < count; ++i)
-		{
-		const CApaAppViewData* const viewData = iViewDataArray->At(i);
-		aWriteStream << *(viewData->iCaption);
-		aWriteStream.WriteUint32L(viewData->iNumOfViewIcons);
-		aWriteStream.WriteUint32L(viewData->iNonMbmIconFile);
-		aWriteStream << viewData->IconFileName();		
-		aWriteStream.WriteUint32L(viewData->iScreenMode);
-		aWriteStream.WriteUint32L(viewData->iUid.iUid);
-		}
-
-	// TApaAppServiceInfo service array
-	if (iServiceArray)
-		{
-		count = iServiceArray->Count();
-		aWriteStream.WriteUint32L(count);
-		for (i = 0; i < count; ++i)
-			{
-			aWriteStream << iServiceArray->At(i);
-			}
-		}
-	else
-		{
-		aWriteStream.WriteUint32L(NULL);
-		}
-
-	if (iOwnedFileArray)
-		{
-		count = iOwnedFileArray->MdcaCount();
-		aWriteStream.WriteUint32L(count);
-		for (i = 0; i < count; ++i)
-			{
-			aWriteStream << (*iOwnedFileArray)[i];
-			}
-		}
-	else
-		{
-		aWriteStream.WriteUint32L(0);
-		}
-	}
-
-TInt CApaAppList::IdleUpdateCallbackL(TAny* aObject)
-	{
-	CApaAppList* self=REINTERPRET_CAST(CApaAppList*,aObject);
-	const TBool moreToCome=self->IdleUpdateL();
-	if (moreToCome==EFalse)
-		{
-		//Reset language change flag if scanning is over.
-		if (self->IsLanguageChangePending())
-			{
-			self->iFlags &= ~ELangChangePending;
-			}
-		self->StopIdler();
-		if (self->iLoadMbmIconsOnDemand)
-			{
-			self->InitiateStoringOfAppList();
-			}
-		else
-			{
-			self->StartIconLoadingL();
-			}
-		}
-	return moreToCome;
-	}
-
-void CApaAppList::StoreL()
-	{
-	iAppListStorer = CApaAppListStorer::NewL(iAppData, iFs, *this);
-	iAppListStorer->StartL(KAppListToFileStartDelay);
-	}
-
-void CApaAppList::NotifyObserver()
-	{
-	if (iObserver)
-		{
-		if (iFlags & EAppListHasChanged || iFlags & ENotifyUpdateOnFirstScanComplete)
-			{
-			// NotifyUpdate will notify clients for both list update and scan complete.
-			iObserver->NotifyUpdate(MApaAppListServObserver::EAppListChanged);
-			}
-		else
-			{
-			// NotifyScanComplete will notify clients for scan complete.
-			iObserver->NotifyScanComplete();
-			}
-		iObserver=NULL;
-		}
-	}
-
-void CApaAppList::StopIdler()
-	{
- 	delete iAppIdler;
-	iAppIdler=NULL;
-	}
-
-TInt CApaAppList::IdleUpdateL()
-// returns ETrue if there is more scanning to be done.
-	{
-	TBool more=EFalse;
-	TApaAppEntry currentApp = TApaAppEntry();
-	TRAPD(err,more=iAppRegFinder->NextL(currentApp, iForcedRegistrations));
-	if (err!=KErrNone)
-		{
-		if (iFlags & ENotifyUpdateOnFirstScanComplete)
-			{
-			User::Leave(err);
-			}
-		return more;
-		}
-	TBool hasChanged=EFalse;
-	if (more)
-		{
-		TRAPD(err,UpdateNextAppL(currentApp,hasChanged));
-		if (err!=KErrNone)
-			{
-			SetNotFound(iAppData,hasChanged);
-			if (iFlags & ENotifyUpdateOnFirstScanComplete)
-				{
-				User::Leave(err);
-				}	
-			more=EFalse; // abandon ship
-			}
-		}
-	else
-		{
-		SetNotFound(iAppData,hasChanged);
-		PurgeL();
-		}
-
-	if (hasChanged)
-		{
-		iFlags |= EAppListHasChanged;
-		}
-	return more;
-	}
-
-EXPORT_C TBool CApaAppList::IsIdleUpdateComplete() const
-/** Tests whether an asynchronous update of the list is currently in progress.
-
-@return True if no asynchronous update of the list is currently in progress, 
-otherwise false. */
-	{
-	return iAppIdler == NULL;
-	}
-
-void CApaAppList::SetPending(CApaAppData* aAppData)
-	// set all apps to pending update - we'll find them again as we scan
-	{
-  	for (; aAppData; aAppData = aAppData->iNext)
-		{
-		aAppData->SetAppPending();
-		}
-	}
-
-void CApaAppList::SetNotFound(CApaAppData* aAppData, TBool& aHasChanged)
-	// mark any unfound apps not present
-	{
-	while (aAppData)
-		{
-		if (aAppData->IsPending())
-			{
-			aAppData->iIsPresent = CApaAppData::ENotPresent;
-			aHasChanged = ETrue;
-			}
-		aAppData = aAppData->iNext;
-		}
-	}
-
-void CApaAppList::AddToList( CApaAppData* aAppData )
-{
-	__ASSERT_DEBUG(aAppData, Panic(EPanicNullPointer));
-	aAppData->iNext=iAppData;
-	iAppData=aAppData;
-}
-
-void CApaAppList::UpdateNextAppL(const TApaAppEntry& aAppEntry,TBool& aHasChanged)
-	{
-	CApaAppData* appData=AppDataByUid(aAppEntry.iUidType[2]);
-	if (appData==NULL)
-		{// not in list, so add it at the start
-		TRAPD(err,appData=CApaAppData::NewL(aAppEntry, iFs));
-		if (err==KErrNone)
-			{
-			AddToList( appData );
-			aHasChanged=ETrue;
-			}
-		}
-	else if (appData->IsPending())
-		{ // not found yet during current scan - we may need to override this one
-		
-		// On a system which scans for registration .RSC files (V2 apps) first, followed by
-		// .APP files (V1 apps), it's valid for a V1 app to override a V2 app (if the V2 app
-		// has just been removed). If this is the case, assume it's ok to compare the V1 .APP filename,
-		// with the V2 .RSC filename as their filenames will never match (which is what we want in this case).
-		TPtrC currentFileName;
-		if (appData->RegistrationFileUsed())
-			{
-			currentFileName.Set(*appData->iRegistrationFile);
-			}
-		else
-			{
-			currentFileName.Set(*appData->iFullName);
-			}
-		if (aAppEntry.iFullName.CompareF(currentFileName)!=0)
-			{
-			delete appData->iSuccessor;
-			appData->iSuccessor = NULL;
-			appData->iSuccessor = CApaAppEntry::NewL(aAppEntry);
-
-
-			appData->iIsPresent = CApaAppData::ESuperseded;
-			aHasChanged=ETrue;
-			}
-		else
-			{
-			if (appData->Update()
-				|| appData->iIsPresent==CApaAppData::ENotPresentPendingUpdate) 
-				{
-				aHasChanged=ETrue; 
-				}
-			appData->iIsPresent = CApaAppData::EIsPresent;
-			}
-		}
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CApaAppData* CApaAppList::FindAndAddSpecificAppL(CApaAppRegFinder* aFinder, TUid aAppUid)
-	{
-//Scans and adds the specified application to the app list if found
-	__ASSERT_DEBUG(aFinder, Panic(EPanicNullPointer));
-	TBool found = EFalse;
-	TApaAppEntry appEntry;
-	aFinder->FindAllAppsL();
-	while (aFinder->NextL(appEntry, iForcedRegistrations))
-		{
-		if (appEntry.iUidType[2] == aAppUid)
-			{
-			found = ETrue;
-			break;
-			}
-		}
-	
-	CApaAppData* app = NULL;
-	if (found)
-		{
-		// add the app to the list
-		TBool hasChanged = EFalse;
-		CApaAppData* prevFirstAppInList = iAppData;
-		UpdateNextAppL(appEntry, hasChanged);
-		if (iAppData != prevFirstAppInList)
-			{
-			// assume the new app was added to the list
-			app = iAppData;
-			}
-		if (hasChanged)
-			{
-			iFlags |= EAppListHasChanged;
-			}
-		}
-	return app;
-	}
-
-EXPORT_C void CApaAppList::PurgeL()
-/** Removes any applications from the list if they are no longer present 
-on the phone. It updates applications that have been 
-superceded. */
-	{
-	CApaAppData* appData=iAppData;
-	CApaAppData* prev=NULL;
-	while (appData)
-		{
-		CApaAppData* next=appData->iNext;
-		if (appData->iIsPresent==CApaAppData::ENotPresent)
-			{
-			if (prev)
-				prev->iNext=next;
-			else
-				iAppData=next;
- 
-			//Add uninstalled application UID to a list
-            if(iUninstalledApps==NULL)
-                iUninstalledApps=new(ELeave) CArrayFixFlat<TUid>(1);
-            
-            iUninstalledApps->AppendL(appData->AppEntry().iUidType[2]);
- 			
-			delete appData;
-			}
-		else if (appData->iIsPresent==CApaAppData::ESuperseded)
-			{
-			CApaAppData* newApp=NULL;
-			TApaAppEntry appEntry;
-			appData->iSuccessor->Get(appEntry);
-			TRAPD(err,newApp=CApaAppData::NewL(appEntry, iFs));
-			if (err==KErrNone)
-				{
-				// remove the old one and add the new one in its place
-				if (prev)
-					prev->iNext=newApp;
-				else
-					iAppData=newApp;
-				newApp->iNext = appData->iNext;
-				delete appData;
-				// increment the iterator
-				prev = newApp;
-				}
-			}
-		else
-			prev=appData;
-		appData=next;
-		}
-	}
-
-EXPORT_C TInt CApaAppList::Count() const
-/** Gets the count of applications present in the app list.
-
-@return The number of applications in the list. */
-
-	{
-	TInt count=0;
-	CApaAppData* appData=iAppData;
-	while (appData)
-		{
-		count++;
-		appData=appData->iNext;
-		}
-	return count;
-	}
-
-EXPORT_C CApaAppData* CApaAppList::FirstApp() const
-/** Gets a pointer to the first application in the list 
-that can use the default screen mode.
-
-@return A pointer to the first application. */
-	{
-	return FirstApp(0);
-	}
-
-EXPORT_C CApaAppData* CApaAppList::FirstApp(TInt aScreenMode) const
-/** Gets a pointer to the first application in the list 
-that can use the specified screen mode.
-
-@param aScreenMode The index of the screen mode. Specifying 
-KIgnoreScreenMode returns the first application in the list, 
-regardless of screen mode.
-@return A pointer to the first application that can use the 
-specified screen mode. */
-	{
-
-	CApaAppData* appData=iValidFirstAppData;
-
-	if(aScreenMode!=KIgnoreScreenMode)
-		{
-		while (appData && !appData->CanUseScreenMode(aScreenMode))
-			appData = appData->iNext;
-		}
-
-	return appData;
-	}
-
-EXPORT_C CApaAppData* CApaAppList::NextApp(const CApaAppData* aApp) const
-/** Gets a pointer to the next application after aApp in the list 
-that can use the default screen mode.
-
-@param aApp A pointer to an application in the list.
-@return A pointer to the next application after aApp in the list 
-that can use the default screen mode.
-@panic APGRFX 12 aApp is NULL. */
-	{
-	return NextApp(aApp,0);
-	}
-
-EXPORT_C CApaAppData* CApaAppList::NextApp(const CApaAppData* aApp, TInt aScreenMode) const
-/** Gets a pointer to the next application after aApp in the list 
-that can use the specified screen mode.
-
-@param aApp A pointer to an application in the list. 
-@param aScreenMode The index of the screen mode. Specifying 
-KIgnoreScreenMode returns the next application in the list, 
-regardless of screen mode.
-@return A pointer to the next application after aApp in the list 
-that can use the specified screen mode.
-@panic APGRFX 12 aApp is NULL. */
-
-	{
-	__ASSERT_ALWAYS(aApp,Panic(EPanicNoAppDataSupplied));
-	//
-	CApaAppData* iApp=aApp->iNext; //lint !e613 Suppress possible use of null pointer - asserted above
-
-	if(aScreenMode!=KIgnoreScreenMode)
-		while (iApp && !iApp->CanUseScreenMode(aScreenMode))
-			iApp = iApp->iNext;
-
-	return iApp;
-	}
-
-EXPORT_C CApaAppData* CApaAppList::AppDataByUid(TUid aAppUid) const
-/** Gets a pointer to the application in the list whose third 
-UID matches the specified UID.
-
-@param aAppUid An application's third UID. 
-@return A pointer to the application, if successful. Null, 
-if no match is found or if KNullUid was specified. */
-	{
-	if (aAppUid==KNullUid)
-		return NULL; // never match null UID as it represents an un-UIDed file
-	CApaAppData* appData=iAppData;
-	while (appData)
-		{
-		if (appData->AppEntry().iUidType[2]==aAppUid)
-			return appData;
-		appData=appData->iNext;
-		}
-	return NULL;
-	}
-
-EXPORT_C CApaAppData* CApaAppList::AppDataByFileName(const TDesC& aFullFileName) const
-/** Gets a pointer to the application in the list whose application
-file name matches the one specified
-
-@param aFullFileName a file name. 
-@return A pointer to the application, if successful. Null, 
-if no match is found or if KNullDesC was specified.
-@internalTechnology
-*/
-	{
-	if (aFullFileName.Length()==0)
-		{
-		return NULL; // never match null UID as it represents an un-UIDed file
-		}
-	CApaAppData* appData=iAppData;
-	while (appData)
-		{
-		if (appData->AppEntry().iFullName.CompareF(aFullFileName)==0)
-			{
-			return appData;
-			}
-		appData=appData->iNext;
-		}
-	return NULL;
-	}
-	
-/**
-Adds a registration file to the iForcedRegistrations array.
-
-@param aRegistrationFile The function takes ownership of the HBufC.
-@internalComponent
-*/
-EXPORT_C void CApaAppList::AddForcedRegistrationL(HBufC* aRegistrationFile)
-	{
-	TInt err = iForcedRegistrations.InsertInOrder(aRegistrationFile, TLinearOrder<HBufC>(CompareStrings));
-	if (err == KErrAlreadyExists) // We silently ignore attempts to insert duplicates
-		{
-		delete aRegistrationFile;
-		}
-	else
-		{
-		User::LeaveIfError(err);
-		}
-	} //lint !e818 Suppress pointer parameter 'aRegistrationFile' could be declared as pointing to const
-	
-EXPORT_C void CApaAppList::ResetForcedRegistrations()
-	{
-	iForcedRegistrations.ResetAndDestroy();
-	}
-
-EXPORT_C TUid CApaAppList::PreferredDataHandlerL(const TDataType& aDataType) const
-/** Finds the preferred application to handle the specified data type.
-
-@param aDataType The data type of interest.
-@return The third UID of the application in the list which has the 
-highest priority for handling the specified data type. A null UID is 
-returned if no application in the list can handle the specified data type. */
-	{
-	TInt dummy;
-	return PreferredDataHandlerL(aDataType, NULL, dummy);
-	}
-	
-EXPORT_C TUid CApaAppList::PreferredDataHandlerL(const TDataType& aDataType, const TUid* aServiceUid, TInt& aPriority) const
-/** Finds the preferred application to handle the specified data type.
-
-@param aDataType The data type of interest.
-@param aServiceUid The optional service UID.
-@param aPriority The priority associated with the returned app.
-@return The third UID of the application in the list which has the 
-highest priority for handling a combination of the specified data type
-and service. A null UID is returned if no application in the list can
-handle the combination of specified data type and service.
-@internalComponent
-*/
-	{
-	// If there is a service uid we first try to use the service specific list
-	// of datatypes
-	if (aServiceUid)
-		{
-		CApaAppData* appData=iAppData;
-		aPriority=KDataTypePriorityNotSupported;
-		TUid uid={0};
-		while (appData)
-			{
-			TInt priority = appData->ImplementsServiceWithDataType(*aServiceUid, aDataType);
-			if (priority > aPriority)
-				{
-				aPriority=priority;
-				uid=appData->AppEntry().iUidType[2];
-				}
-			appData=appData->iNext;
-			}
-		if (aPriority != KDataTypePriorityNotSupported)
-			{
-			return uid;
-			}
-		}
-	
-	CApaAppData* appData=iAppData;
-	aPriority=KDataTypePriorityNotSupported;
-	TUid uid={0};
-	while (appData)
-		{
-		TInt priority=appData->DataType(aDataType);
-		if ((priority > aPriority) &&
-			(!aServiceUid || (aServiceUid && appData->ImplementsService(*aServiceUid))))
-			{
-			aPriority=priority;
-			uid=appData->AppEntry().iUidType[2];
-			}
-		appData=appData->iNext;
-		}
-	return uid;
-	}
-  
-void CApaAppList::DeleteAppData()
-	{
-	iValidFirstAppData = NULL;
-	iFlags &= ~EFirstScanComplete;
-	iFlags &= ~EAppListHasChanged;
-	iFlags &= ~ELangChangePending;
-	
-	CApaAppData* next = NULL;
-	for (CApaAppData* appData=iAppData; appData; appData = next)
-		{
-		next = appData->iNext;
-		delete appData;
-		}
-	iAppData = NULL;
-	}
-
-void CApaAppList::ScanComplete()
-	{
-	if (!(iFlags & EFirstScanComplete) && iObserver)
-		iObserver->InitialListPopulationComplete();
-	iValidFirstAppData = iAppData;
-	iFlags|=EFirstScanComplete;
-	iNNAInstallation = EFalse;
-	}
-
-/**
- *
- * Tests whether the first scan for list of Apps has completed.
- *
- * @return   "TBool"
- *            True, if the first scan for list of Apps has completed; false, otherwise.
- * @internalComponent
- */
-EXPORT_C TBool CApaAppList::IsFirstScanComplete() const
-	{
-	return iFlags&EFirstScanComplete;
-	}
-
-EXPORT_C TBool CApaAppList::AppScanInProgress() const
-/** @internalComponent */
-	{
-	return (iAppIdler!=NULL) && iAppIdler->IsActive();
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CBufFlat* CApaAppList::ServiceArrayBufferL(TUid aAppUid) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	while (app && app->AppEntry().iUidType[2] != aAppUid)
-		{
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (app)
-		{
-		if (!app->RegistrationFileUsed())
-			{
-			User::Leave(KErrNotSupported);
-			}
-		if (app->iServiceArray)
-			{
-			CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-			CleanupStack::PushL(buf);
-			RBufWriteStream writeStream(*buf);
-			writeStream << *(app->iServiceArray);
-			writeStream.CommitL();
-			writeStream.Release();
-			CleanupStack::Pop(buf);
-			return buf;
-			}
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CBufFlat* CApaAppList::ServiceUidBufferL(TUid aAppUid) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	while (app && app->AppEntry().iUidType[2] != aAppUid)
-		{
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (app)
-		{
-		if (!app->RegistrationFileUsed())
-			{
-			User::Leave(KErrNotSupported);
-			}
-		if (app->iServiceArray)
-			{
-			CArrayFixFlat<TApaAppServiceInfo>& serviceArray = *(app->iServiceArray);
-			CArrayFixFlat<TUid>* uidArray = new(ELeave) CArrayFixFlat<TUid>(4);
-			CleanupStack::PushL(uidArray);
-			for (TInt i = serviceArray.Count()-1; i >= 0; i--)
-				{
-				uidArray->AppendL(serviceArray[i].Uid());
-				}
-			CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-			CleanupStack::PushL(buf);
-			RBufWriteStream writeStream(*buf);
-			writeStream << *uidArray;
-			writeStream.CommitL();
-			writeStream.Release();
-			CleanupStack::Pop(buf);
-			CleanupStack::PopAndDestroy(uidArray);
-			return buf;
-			}
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CBufFlat* CApaAppList::ServiceOpaqueDataBufferL(TUid aAppUid, TUid aServiceUid) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	while (app && app->AppEntry().iUidType[2] != aAppUid)
-		{
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (app)
-		{
-		if (!app->RegistrationFileUsed())
-			{
-			User::Leave(KErrNotSupported);
-			}
-		if (app->iServiceArray)
-			{
-			CArrayFixFlat<TApaAppServiceInfo>* implArray = NULL;
-			CArrayFixFlat<TApaAppServiceInfo>& serviceArray = *(app->iServiceArray);
-			for (TInt i = serviceArray.Count()-1; i >= 0; i--)
-				{
-				const TApaAppServiceInfo& infoRef = serviceArray[i];
-				if (infoRef.Uid() == aServiceUid)
-					{
-					if (!implArray)
-						{
-						implArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-						CleanupStack::PushL(TCleanupItem(CleanupServiceArray, implArray));
-						}
-					CArrayFixFlat<TDataTypeWithPriority>* dummy =
-						new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(1);
-					CleanupStack::PushL(dummy);					
-					TApaAppServiceInfo info(aServiceUid, dummy, infoRef.OpaqueData().AllocLC());
-					implArray->AppendL(info);
-					CleanupStack::Pop(CONST_CAST(TDesC8*,&info.OpaqueData()));
-					CleanupStack::Pop(dummy);
-					}
-				}
-			if (implArray)
-				{
-				CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-				CleanupStack::PushL(buf);
-				RBufWriteStream writeStream(*buf);
-				writeStream << *implArray;
-				writeStream.CommitL();
-				writeStream.Release();
-				CleanupStack::Pop(buf);
-				CleanupStack::PopAndDestroy(implArray);
-				return buf;
-				}
-			}
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-
-/**
-@internalComponent
-*/
-EXPORT_C CBufFlat* CApaAppList::ServiceImplArrayBufferL(TUid aServiceUid) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	// build an array containing all implementations of the service identified by aServiceUid
-	CArrayFixFlat<TApaAppServiceInfo>* implArray = NULL;
-	while (app)
-		{
-		if (app->iServiceArray)
-			{
-			for (TInt i = app->iServiceArray->Count()-1; i >= 0; i--)
-				{
-				const TApaAppServiceInfo& infoRef = (*app->iServiceArray)[i];
-				if (infoRef.Uid() == aServiceUid)
-					{
-					if (!implArray)
-						{
-						implArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-						CleanupStack::PushL(TCleanupItem(CleanupServiceArray, implArray));
-						}
-					CArrayFixFlat<TDataTypeWithPriority>* datatypes = DataTypeArrayDeepCopyLC(infoRef.DataTypes());
-					HBufC8* data = infoRef.OpaqueData().AllocLC();
-					TApaAppServiceInfo info(app->AppEntry().iUidType[2], datatypes, data);
-					implArray->AppendL(info);
-					CleanupStack::Pop(data);
-					CleanupStack::Pop(datatypes);
-					}
-				}
-			}
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (implArray)
-		{
-		CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-		CleanupStack::PushL(buf);
-		RBufWriteStream writeStream(*buf);
-		writeStream << *(implArray);
-		writeStream.CommitL();
-		writeStream.Release();
-		CleanupStack::Pop(buf);
-		CleanupStack::PopAndDestroy(implArray);
-		return buf;
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-
-EXPORT_C CBufFlat* CApaAppList::ServiceImplArrayBufferL(TUid aServiceUid, const TDataType& aDataType) const
-	{
-	CApaAppData* app = FirstApp(KIgnoreScreenMode);
-	// build an array containing all implementations of the service identified by aServiceUid
-	CArrayFixFlat<TApaAppServiceInfo>* implArray = NULL;
-	while (app)
-		{
-		if (app->iServiceArray)
-			{
-			for (TInt i = app->iServiceArray->Count()-1; i >= 0; i--)
-				{
-				const TApaAppServiceInfo& infoRef = (*app->iServiceArray)[i];
-				if (infoRef.Uid() == aServiceUid)
-					{
-				 	if (KDataTypePriorityNotSupported != app->DataType(aDataType, infoRef.DataTypes()))
-						{
-						if (!implArray)
-							{
-							implArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-							CleanupStack::PushL(TCleanupItem(CleanupServiceArray, implArray));
-							}
-						CArrayFixFlat<TDataTypeWithPriority>* datatypes = DataTypeArrayDeepCopyLC(infoRef.DataTypes());
-						HBufC8* data = infoRef.OpaqueData().AllocLC();
-						TApaAppServiceInfo info(app->AppEntry().iUidType[2], datatypes, data);
-						implArray->AppendL(info);
-						CleanupStack::Pop(data);
-						CleanupStack::Pop(datatypes);
-						}
-					}
-				}
-			}
-		app = NextApp(app, KIgnoreScreenMode);
-		}
-
-	if (implArray)
-		{
-		CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
-		CleanupStack::PushL(buf);
-		RBufWriteStream writeStream(*buf);
-		writeStream << *(implArray);
-		writeStream.CommitL();
-		writeStream.Release();
-		CleanupStack::Pop(buf);
-		CleanupStack::PopAndDestroy(implArray);
-		return buf;
-		}
-	User::Leave(KErrNotFound);
-	return NULL; // to keep compiler happy
-	}
-	
-CArrayFixFlat<TDataTypeWithPriority>* CApaAppList::DataTypeArrayDeepCopyLC(const CArrayFixFlat<TDataTypeWithPriority>& aOriginal) const
-	{
-	CArrayFixFlat<TDataTypeWithPriority>* result = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(1);
-	CleanupStack::PushL(result);
-	TInt ii = 0;
-	TInt end = aOriginal.Count();
-	while (ii < end)
-		{
-		result->AppendL(aOriginal[ii]);
-		ii++;
-		}
-	return result;
-	}
-	
-EXPORT_C TInt CApaAppList::CompareStrings(const HBufC& aFirst, const HBufC& aSecond)
-	{
-	return aFirst.CompareF(aSecond);
-	}
-
-EXPORT_C CApaAppList* CApaAppList::Self()
-	{ // static
-	return STATIC_CAST(CApaAppList*,Dll::Tls());
-	}
-	
-/*EXPORT_C*/ RFs& CApaAppList::ShareProtectedFileServer()
-	{
-	return iFsShareProtected; //lint !e1536 Exposing low access member - need to consider a redesign or design clarification here(iFsShareProtected should be owned be the one that needs it) but postpone for now as that may require large changes
-	}
-	
-CApaAppIconArray* CApaAppList::LoadDefaultIconsL() const
-	{
-	CApaIconLoader* iconLoader = CApaIconLoader::NewLC(iFs);
-	CApaAppIconArray* icons = CApaAppIconArray::NewRealDefaultIconsLC(KNumberOfIconsInDefaultMbm,*iDefaultAppIconMbmFileName, *iconLoader);
-	const TBool badMbmEntryInfo = !icons->LoadIconsL();
-	if(badMbmEntryInfo)
-		{
-		CleanupStack::PopAndDestroy(2,iconLoader);
-		return CApaAppIconArray::NewL();
-		}
-	else
-		{
-		CleanupStack::Pop(icons);
-		CleanupStack::PopAndDestroy(iconLoader);
-		}
-	return icons;
-	}
-
-void CApaAppList::AcquireDefaultIconArrayL() const
-	{
-	ASSERT(iDefaultIconUsageCount >= 0);
-	if (iDefaultIconUsageCount == 0)
-		{
-		iDefaultIconArray = LoadDefaultIconsL();
-		}
-	++iDefaultIconUsageCount;
-	}
-
-// Should NEVER be called by an object that does not call AcquireDefaultIconArrayL and
-// ReleaseDefaultIconArray at the beginning and end of its lifetime respectively
-const CApaAppIconArray& CApaAppList::DefaultIconArray() const
-	{
-	__ASSERT_ALWAYS(iDefaultIconArray, Panic(EPanicNullPointer));
-	return *iDefaultIconArray;
-	}
-
-void CApaAppList::ReleaseDefaultIconArray() const
-	{
-	ASSERT(iDefaultIconUsageCount > 0);
-	if(0 == --iDefaultIconUsageCount)
-		{
-		delete iDefaultIconArray;
-		iDefaultIconArray = NULL;		
-		}
-	}
-	
-// DEF077478 - Required to update the default icons that the app list holds.
-void CApaAppList::UpdateDefaultIconsL()
-	{
-	CApaAppIconArray* iconArray = LoadDefaultIconsL();
-	if (iconArray)
-		{
-		delete iDefaultIconArray;
-		iDefaultIconArray = iconArray;
-		}
-	}
-
-void CApaAppList::DeleteAppListStorer()
-	{
-	delete iAppListStorer;
-	iAppListStorer = NULL;
-	}
-
-void CApaAppList::DeleteAppIconLoader()
-	{
-	delete iAppIconLoader;
-	iAppIconLoader = NULL;
-	}
-
-void CApaAppList::InitiateStoringOfAppList()
-	{
-	ScanComplete();	
-	NotifyObserver();
-	iFlags &= ~ENotifyUpdateOnFirstScanComplete;
-	// now that the scan is finished, iDefaultAppIconMbmFileName is deleted
-	delete iDefaultAppIconMbmFileName;
-	iDefaultAppIconMbmFileName=NULL;
-	// if applist has not changed and AppsList_Backup.bin file exists then it is replaced back to AppsList.bin
-	if (!(iFlags & EAppListHasChanged) && BaflUtils::FileExists(iFs, iAppsListCacheBackUpFileName))
-		{
-		TInt replaceError = iFs.Replace(iAppsListCacheBackUpFileName, iAppsListCacheFileName);
-		if (replaceError == KErrNone)
-			{
-			return;
-			}
-		}
-    iFlags &= ~EAppListHasChanged;
-	iFs.Delete(iAppsListCacheBackUpFileName);
-	TInt err = iFs.MkDir(iAppsListCachePath);
-	if (err == KErrNone || err == KErrAlreadyExists)
-		{
-		TRAP(err, StoreL());
-		if (err)
-			{
-			DeleteAppListStorer();
-			}
-		}
-	}
-//
-// Class CApaAppListStorer
-//
-
-CApaAppList::CApaAppListStorer::CApaAppListStorer(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList) : CActive(EPriorityIdle), iCurrentAppData(aFirstAppData), iFs(aFs), iAppList(aAppList)
-	{
-	}
-
-CApaAppList::CApaAppListStorer::~CApaAppListStorer()
-	{
-	Cancel();
-	iWriteStream.Close();
-	iFs.Delete(iTempFilename);
-	iTimer.Close();
-	iCurrentAppData = NULL;
-	}
-
-CApaAppList::CApaAppListStorer* CApaAppList::CApaAppListStorer::NewL(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList)
-	{
-	CApaAppListStorer* self = new(ELeave) CApaAppListStorer(aFirstAppData, aFs, aAppList);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-void CApaAppList::CApaAppListStorer::ConstructL()
-	{
-	User::LeaveIfError(iTimer.CreateLocal());
-	CActiveScheduler::Add(this);
-	}
-
-void CApaAppList::CApaAppListStorer::StartL(const TTimeIntervalMicroSeconds32& aDelay)
-	{
-	User::LeaveIfError(iWriteStream.Temp(iFs, iAppList.iAppsListCachePath, iTempFilename, EFileWrite));
-	iWriteStream.WriteInt32L(User::Language());
-
-#if defined (SYMBIAN_BAFL_SYSUTIL)
-	//Write a cache of the ROM version to a separate stream
-	//Build the filename for the cache file
-	TInt maxSizeofFileName = iAppList.iAppsListCachePath.Length() + KROMVersionStringCacheFileName().Length();
-	RBuf romVersionCacheFileName;
-	romVersionCacheFileName.CreateL(maxSizeofFileName);
-	romVersionCacheFileName.CleanupClosePushL();
-	romVersionCacheFileName.Append(iAppList.iAppsListCachePath);
-	romVersionCacheFileName.Append(KROMVersionStringCacheFileName());
-	
-	RFileWriteStream romVerStream;
-	User::LeaveIfError(romVerStream.Replace(iFs,romVersionCacheFileName,EFileWrite));
-	CleanupClosePushL(romVerStream);
-	
-	// Write the file version that apparc can handle.
-	romVerStream.WriteInt8L(KROMVersionCacheFileMajorVersion);
-	romVerStream.WriteInt8L(KROMVersionCacheFileMinorVersion);
-	romVerStream.WriteInt16L(KROMVersionCacheFileBuildVersion);
-		
-	TBuf<KInfoBufLength> version;
-	SysUtil::GetSWVersion(version);
-	
-	// Write the software version even if SysUtil returns err since all conditions are taken care during restore.
-	romVerStream.WriteUint32L(version.Length());
-	romVerStream.WriteL(version, version.Length());
-	CleanupStack::PopAndDestroy(2); //romVerStream, romVersionCacheFileName
-#endif //(SYMBIAN_BAFL_SYSUTIL)
-	
-	iTimer.After(iStatus, aDelay);
-	SetActive();
-	}
-
-void CApaAppList::CApaAppListStorer::RunL()
-	{ 
-	// iStatus could be KErrNone or negative when timer completes, irrespective of its status we need to re-queue the request.
-	if (iCurrentAppData)
-		{
-		StoreEntryL(iWriteStream, *iCurrentAppData);
-		iCurrentAppData = iCurrentAppData->Next();
-		SetActive();
-		TRequestStatus* status = &iStatus;
-		User::RequestComplete(status, KErrNone);
-		}
-	else
-		{
-		iWriteStream.CommitL();
-		iWriteStream.Close();
-
-		TInt err = iFs.Replace(iTempFilename, iAppList.iAppsListCacheFileName);
-		if (err != KErrNone)
-			{
-			iFs.Delete(iTempFilename);
-			}
-		iAppList.DeleteAppListStorer();
-		}
-	}
-
-void CApaAppList::CApaAppListStorer::StoreEntryL(RWriteStream& aWriteStream, const CApaAppData& aApp)
-	{
-	aWriteStream << aApp;
-	}
-
-void CApaAppList::CApaAppListStorer::DoCancel()
-	{
-	iTimer.Cancel();
-	}
-
-TInt CApaAppList::CApaAppListStorer::RunError(TInt /*aError*/)
-	{
-	iAppList.DeleteAppListStorer();
-	return KErrNone;
-	}
-
-//
-// Class CApaIdleIconLoader
-//
-
-CApaAppList::CApaIdleIconLoader::CApaIdleIconLoader(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList) : CActive(EPriorityLow), iCurrentAppData(aFirstAppData), iFs(aFs), iAppList(aAppList)
-	{ // Priority is less than KAppListServerPriority, to maintain server responsiveness.
-	CActiveScheduler::Add(this);
-	}
-
-CApaAppList::CApaIdleIconLoader::~CApaIdleIconLoader()
-	{
-	Cancel();
-	iCurrentAppData = NULL;
-	}
-
-void CApaAppList::CApaIdleIconLoader::Start()
-	{
-	SetActive();
-	TRequestStatus* status = &iStatus;
-	User::RequestComplete(status, KErrNone);
-	}
-
-void CApaAppList::CApaIdleIconLoader::RunL()
-/** if the icons are not already loaded on demand then it would be loaded here. */
-	{
-	while (iCurrentAppData && !iCurrentAppData->MbmIconsRequireLoading())
-		{
-		iCurrentAppData = iCurrentAppData->Next();
-		}
-
-	if(iCurrentAppData)
-		{
-		Start();
-		CApaAppData* const appData = iCurrentAppData;
-		iCurrentAppData = iCurrentAppData->Next();
-		appData->LoadIconsL();
-		}
-	else
-		{
-		iAppList.InitiateStoringOfAppList();
-		iAppList.DeleteAppIconLoader();
-		}
-	}
-
-void CApaAppList::CApaIdleIconLoader::DoCancel()
-	{
-	}
-
-TInt CApaAppList::CApaIdleIconLoader::RunError(TInt /*aError*/)
-	{
-	return KErrNone;
-	}
-
-// ApaUtils
-
-EXPORT_C TBool ApaUtils::HandleAsRegistrationFile(const TUidType& aUidType)
-	{ // static
-	return (aUidType[1].iUid==KUidAppRegistrationFile.iUid ||
-		   aUidType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile);
-	}
-	
-
-//
-// Class CApaLangChangeMonitor
-//
-
-CApaAppList::CApaLangChangeMonitor::~CApaLangChangeMonitor()
-	{	
-	Cancel();
-	iLangNotifier.Close();
-	}
-
-CApaAppList::CApaLangChangeMonitor* CApaAppList::CApaLangChangeMonitor::NewL(CApaAppList& aAppList)
-	{ // static	
-	CApaLangChangeMonitor* self=new(ELeave) CApaLangChangeMonitor(aAppList);
-	self->ConstructL();
-	return self;
-	}
-
-CApaAppList::CApaLangChangeMonitor::CApaLangChangeMonitor(CApaAppList& aAppList)
-	: CActive(EPriorityNormal),
-	iAppList(aAppList)
-	{	
-	iPrevLanguage = User::Language();
-	CActiveScheduler::Add(this);
-	}
-
-void CApaAppList::CApaLangChangeMonitor::ConstructL()
-	{
-	User::LeaveIfError(iLangNotifier.Create());
-	Start();
-	}
- 
-void CApaAppList::CApaLangChangeMonitor::Start()
-	{
-	iLangNotifier.Logon(iStatus);
-	SetActive();
-	}
-
-void CApaAppList::CApaLangChangeMonitor::DoCancel()
-	{
-	iLangNotifier.LogonCancel();
-	}
-
-void CApaAppList::CApaLangChangeMonitor::RunL()
-	{
-	// Logon to get further events before handling current request.
-	TRequestStatus status = iStatus;
-	Start();
-	
-	// if it is a language change event, start a rescan on app-list.
-	if (status.Int() == EChangesLocale && iPrevLanguage != User::Language())
-		{		
-		iPrevLanguage = User::Language();
-		iAppList.iFlags |= CApaAppList::ELangChangePending;
-		iAppList.StartIdleUpdateL(iAppList.iObserver);
-		}
-	}
-
-TInt CApaAppList::CApaLangChangeMonitor::RunError(TInt /*aError*/)
-	{
-	// Reset ELangChangePending flag if RunL leaves.
-	iAppList.iFlags &= ~CApaAppList::ELangChangePending;
-	// Reset iPrevLanguage to ELangNone if RunL leaves.
-	iPrevLanguage = ELangNone;
-	return KErrNone;
-	}
-
-void CApaAppList::GetAppsListCachePathL()
-	{
-	_LIT(KAppsListCacheFileName, ":\\private\\10003a3f\\AppsListCache\\AppsList.bin");
-	_LIT(KAppsListCacheBackUpFileName, ":\\private\\10003a3f\\AppsListCache\\AppsList_Backup.bin");
-	_LIT(KAppsListCachePath, ":\\private\\10003a3f\\AppsListCache\\");
-	TChar sysDrive = RFs::GetSystemDriveChar();
-	TInt maxSizeofFileName = KAppsListCacheFileName().Length() + 1;
-	iAppsListCacheFileName.CreateL(maxSizeofFileName);
-	iAppsListCacheFileName.Append(sysDrive);
-	iAppsListCacheFileName.Append(KAppsListCacheFileName());
-	maxSizeofFileName = KAppsListCacheBackUpFileName().Length() + 1;
-	iAppsListCacheBackUpFileName.CreateL(maxSizeofFileName);
-	iAppsListCacheBackUpFileName.Append(sysDrive);
-	iAppsListCacheBackUpFileName.Append(KAppsListCacheBackUpFileName());
-	maxSizeofFileName = KAppsListCachePath().Length() + 1;
-	iAppsListCachePath.CreateL(maxSizeofFileName);
-	iAppsListCachePath.Append(sysDrive);
-	iAppsListCachePath.Append(KAppsListCachePath());
-	}
-
-
-// The function transfers ownership of the pointer owned by a CApaAppList to the caller
-// to avoid copying the array.
-
-EXPORT_C CArrayFixFlat<TUid>* CApaAppList::UninstalledAppArray()
-    {
-    CArrayFixFlat<TUid>* uninstalledApps=iUninstalledApps;
-    iUninstalledApps=NULL;
-    return uninstalledApps;
-    }
--- a/localisation/apparchitecture/apgrfx/APGCLI.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGCLI.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,451 +11,129 @@
 // Contributors:
 //
 // Description:
+// apgcli.cpp
 //
 
 #include "../apserv/APSCLSV.H"
+#include "../apserv/apsserv.h"
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#if !defined(__APGICNFL_PARTNER_H__)
+#include "apgicnflpartner.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "APGCLI.H"
-#include "APACMDLN.H"
 #include "APGSTD.H"
 #include "APGICNFL.H"
-#include <apsserv.h>
-#include <apmrec.h>
-#include <s32mem.h>
 #include "APGPRIV.H"
-#include <apadef.h>
 #include "apprivate.h"
 
-#if defined(USE_IH_RAISE_EVENT)
-#include <SystemMonitor/RaiseEvent.h>
-#include <test/testinstrumentation.h>
-#endif
-
-class CApaLsSessionExtension;
+const TUint KInitialIconBufSize = sizeof(TSize)*6 + sizeof(TInt);
+const TUint KInitialViewDataBufSize = sizeof(TApaAppViewInfo)*6 + sizeof(TInt);
+const TUint KInitialOwnedFilesBufSize = sizeof(TFileName)*6 + sizeof(TInt);
+const TUint KDefaultBufSize = 0x400;
+const TUint KAsyncMessageSlots = 4; // One slot each for, RApaLsSession::SetNotify, RApaLsSession::
+                                    // RegisterListPopulationCompleteObserver and RApaLsSession::NotifyOnDataMappingChange
+                                    // CAsyncFileRecognition::Start makes an asynch request of apparc server.
 
-const TUint KInitialIconBufSize=sizeof(TSize)*6+sizeof(TInt);
-const TUint KInitialViewDataBufSize=sizeof(TApaAppViewInfo)*6+sizeof(TInt);
-const TUint KInitialOwnedFilesBufSize=sizeof(TFileName)*6+sizeof(TInt);
-const TUint KDefaultBufSize = 0x400;
-const TUint KAsyncMessageSlots=4; //one slot each for, RApaLsSession::SetNotify, RApaLsSession::
-                                  //RegisterListPopulationCompleteObserver and RApaLsSession::NotifyOnDataMappingChange
-                                  //CAsyncFileRecognition::Start makes an asynch request of apparc server.
-
-_LIT8(KAllDataTypes,"*");
-
-extern void CleanupServiceArray(TAny* aServiceArray);
+extern void CleanupAppServiceArray(TAny* aServiceArray);
 
 IMPORT_C extern const TInt KMinApplicationStackSize;
 
+/** 
+@internalComponent
+*/
 class MArrayFiller
 	{
 public:
-	virtual void AppendItemL(RReadStream& aReadStream)=0;
+	virtual void AppendItemFromStreamL(RReadStream& aReadStream) = 0;
 	};
 
-class TSizeArrayFiller : public MArrayFiller
+/** 
+@internalComponent
+*/
+NONSHARABLE_CLASS(TSizeArrayFiller) : public MArrayFiller
 	{
 public:
-	inline TSizeArrayFiller(CArrayFixFlat<TSize>& aArray) :iArray(aArray) {}
-	virtual void AppendItemL(RReadStream& aReadStream);
+	inline TSizeArrayFiller(CArrayFixFlat<TSize>& aArray) : iArray(aArray) {}
+public: // from MArrayFiller
+	void AppendItemFromStreamL(RReadStream& aReadStream);
 private:
 	CArrayFixFlat<TSize>& iArray;
 	};
 
-class TViewDataArrayFiller : public MArrayFiller
+/** 
+@internalComponent
+*/
+NONSHARABLE_CLASS(TViewDataArrayFiller) : public MArrayFiller
 	{
 public:
-	inline TViewDataArrayFiller(CApaAppViewArray& aArray) :iArray(aArray) {}
-	virtual void AppendItemL(RReadStream& aReadStream);
+	inline TViewDataArrayFiller(CApaAppViewArray& aArray) : iArray(aArray) {}
+public: // from MArrayFiller
+	void AppendItemFromStreamL(RReadStream& aReadStream);
 private:
 	CApaAppViewArray& iArray;
 	};
 
-class TDesCArrayFiller : public MArrayFiller
+/** 
+@internalComponent
+*/
+NONSHARABLE_CLASS(TDesCArrayFiller) : public MArrayFiller
 	{
 public:
-	inline TDesCArrayFiller(CDesCArray& aArray) :iArray(aArray) {}
-	virtual void AppendItemL(RReadStream& aReadStream);
+	inline TDesCArrayFiller(CDesCArray& aArray) : iArray(aArray) {}
+public: // from MArrayFiller
+	void AppendItemFromStreamL(RReadStream& aReadStream);
 private:
 	CDesCArray& iArray;
 	};
 
-/**
-This class is used to simplify the usage of the asynchronous RApaLsSession::RecognizeFilesL() function.
-@internalComponent
-*/
-class CAsyncFileRecognition : public CActive
-	{
-public:
-	CAsyncFileRecognition(CDataRecognitionResultArray& aResult, TRequestStatus& aUsersRequestStatus, CApaLsSessionExtension& aSession);
-	~CAsyncFileRecognition();
-	void Start(const TDesC& aPath, const TDesC8& aDataType);
-private:
-	void RunL();
-	void DoCancel();
-private: // data
-	TPckgBuf<TUint> iRequiredBufferSizePckg;
-	CDataRecognitionResultArray& iResult;
-	TRequestStatus& iUsersRequestStatus;
-	CApaLsSessionExtension& iSession;
-	const TDesC* iPath;
-	const TDesC8* iDataType;
-	};
-
-/**
-This class is an extension class for RApaLsSession. It was added to reduce the need
-of BC breaks in later releases.
-@internalComponent
-*/
-class CApaLsSessionExtension : public CBase
-	{
-public:
-	CApaLsSessionExtension(RApaLsSession& aSession);
-	~CApaLsSessionExtension();
-
-	void SendReceive(TInt aFunction,const TIpcArgs& aArgs,TRequestStatus& aStatus) const;
-	TInt SendReceive(TInt aFunction,const TIpcArgs& aArgs) const;
-
-	// file recognition functions
-	void RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus);
-	void CancelRecognizeFiles();
-	void FilesRecognized(const TDesC& aPath, TInt aRequiredBufferSize, CDataRecognitionResultArray& aResult, TRequestStatus& aUsersRequestStatus, const TRequestStatus& aErrorCode);
-	TBool RecognitionActive() const;
-private:
-	RApaLsSession& iSession;	// we are a friend of this class!
-	CAsyncFileRecognition* iAsyncFileRecognition;
-	};
+// TSizeArrayFiller
 
-/**
-An entry of a CDataRecognitionResultArray object. Stores TDataRecognitionResult and the file name
-in a compact format.
-@internalComponent
-*/
-class CDataRecognitionResultArrayEntry : public CBase
+void TSizeArrayFiller::AppendItemFromStreamL(RReadStream& aReadStream)
 	{
-public:
-	CDataRecognitionResultArrayEntry(HBufC* aFileName, HBufC8* aDataType, TUid aUid, TInt aConfidence);
-	~CDataRecognitionResultArrayEntry();
-	void GetDataRecognitionResult(TDataRecognitionResult& aResult) const;
-	const TDesC& FileName() const;
-private:
-	HBufC* iFileName;
-	HBufC8* iDataType;
-	TUid iUid;
-	TInt iConfidence;
-	};
-
-//////////////////////////////
-// CAsyncFileRecognition
-//////////////////////////////
-
-CAsyncFileRecognition::CAsyncFileRecognition(CDataRecognitionResultArray& aResult, TRequestStatus& aUsersRequestStatus, CApaLsSessionExtension& aSession)
-	: CActive(EPriorityStandard),
-	  iResult(aResult),
-	  iUsersRequestStatus(aUsersRequestStatus),
-	  iSession(aSession)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-void CAsyncFileRecognition::Start(const TDesC& aPath, const TDesC8& aDataType)
-	{
-	iPath = &aPath;
-	iDataType = &aDataType;
-	iStatus = KRequestPending;
-	iSession.SendReceive(EAppListServRecognizeFilesAsync,TIpcArgs(&aPath,&iRequiredBufferSizePckg,&aDataType),iStatus);
-	SetActive();
-	}
-
-CAsyncFileRecognition::~CAsyncFileRecognition()
-	{
-	Cancel();
-	iPath = NULL;
-	iDataType = NULL;
-	}
-
-void CAsyncFileRecognition::RunL()
-	{
-	iSession.FilesRecognized(*iPath, iRequiredBufferSizePckg(), iResult, iUsersRequestStatus, iStatus);
+	TSize size;
+	size.iWidth = aReadStream.ReadUint32L();
+	size.iHeight= aReadStream.ReadUint32L();
+	iArray.AppendL(size);
 	}
 
-void CAsyncFileRecognition::DoCancel()
-	{
-	iSession.SendReceive(ECancelRecognizeFiles,TIpcArgs(TIpcArgs::ENothing));
-	TRequestStatus* status = &iUsersRequestStatus;
-	User::RequestComplete( status, KErrCancel );
-	}
+// TViewDataArrayFiller
 
-//////////////////////////////
-// CApaLsSessionExtension
-//////////////////////////////
-
-CApaLsSessionExtension::CApaLsSessionExtension(RApaLsSession& aSession)
-	: iSession(aSession),
-	  iAsyncFileRecognition(NULL)
+void TViewDataArrayFiller::AppendItemFromStreamL(RReadStream& aReadStream)
 	{
+	TApaAppViewInfo info;
+	aReadStream >> info;
+	iArray.AppendL(info);
 	}
 
-CApaLsSessionExtension::~CApaLsSessionExtension()
+// TDesCArrayFiller
+
+void TDesCArrayFiller::AppendItemFromStreamL(RReadStream& aReadStream)
 	{
-	delete iAsyncFileRecognition;
-	}
-
-void CApaLsSessionExtension::SendReceive(TInt aFunction,const TIpcArgs& aArgs,TRequestStatus& aStatus) const
-	{
-	iSession.SendReceive(aFunction,aArgs,aStatus); //lint !e1060 Suppress protected member is not accessible to non-member non-friend
+	TFileName info;
+	aReadStream >> info;
+	iArray.AppendL(info);
 	}
 
-TInt CApaLsSessionExtension::SendReceive(TInt aFunction,const TIpcArgs& aArgs) const
-	{
-	return iSession.SendReceive(aFunction,aArgs); //lint !e1060 Suppress protected member is not accessible to non-member non-friend
-	}
-
-/**
-Asynchronous recognition of a directory.
-Function uses an internal CAsyncFileRecognition object to hide the 
-second server message (transferring the data to the client) from the user.
-When the path is not correct or the server is already busy with another 
-recognition request, the function completes the request with an error.
+/** 
 @internalComponent
 */
-void CApaLsSessionExtension::RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus)
-	{
-	_LIT(KBackslash,"\\");
-
-	if(aPath.Right(1) != KBackslash)
-		{
-		TRequestStatus* status = &aStatus;
-		User::RequestComplete(status,KErrPathNotFound);
-		}
-	
-	aResult.SetPath(aPath);
-	aStatus = KRequestPending;
-
-	if(!iAsyncFileRecognition)
-		{
-		iAsyncFileRecognition = new (ELeave) CAsyncFileRecognition(aResult, aStatus, *this);
-		iAsyncFileRecognition->Start(aPath, aDataType);
-		}
-	else
-		{
-		TRequestStatus* status = &aStatus;
-		User::RequestComplete(status,KErrInUse);
-		}
-	}
-
-TBool CApaLsSessionExtension::RecognitionActive() const
+EXPORT_C TUint MinApplicationStackSize()
 	{
-	return iAsyncFileRecognition ? ETrue : EFalse;
-	}
-
-void CApaLsSessionExtension::CancelRecognizeFiles()
-	{
-	if(iAsyncFileRecognition)
-		{
-		iAsyncFileRecognition->Cancel();
-		delete iAsyncFileRecognition;
-		iAsyncFileRecognition = NULL;
-		}
-	}
-
-void CApaLsSessionExtension::FilesRecognized(const TDesC& aPath, TInt aRequiredBufferSize, CDataRecognitionResultArray& aResult, TRequestStatus& aUsersRequestStatus, const TRequestStatus& aErrorCode)
-/**
-Callback function called by an CAsyncFileRecognition object, when an asynchronous
-recognition has finished. If the recognition was successful, the data is transferred
-to the client-side.
-@internalComponent
-*/
-	{
-	TRequestStatus* status = &aUsersRequestStatus;
-	if(aErrorCode == KErrNone)
-		{
-		// transfer the result
-		TRAPD(error,iSession.TransferAndInternalizeDataL(aPath, aRequiredBufferSize, aResult));
-		User::RequestComplete(status, error);
-		}
-	else
-		{
-		User::RequestComplete(status, aErrorCode.Int());
-		}
-	delete iAsyncFileRecognition;
-	iAsyncFileRecognition = 0;
+	return KMinApplicationStackSize;
 	}
 
 
-///////////////////////////////////////
-// CDataRecognitionResultArrayEntry
-///////////////////////////////////////
-
-CDataRecognitionResultArrayEntry::CDataRecognitionResultArrayEntry(HBufC* aFileName, HBufC8* aDataType, TUid aUid, TInt aConfidence)
-	: iFileName(aFileName), 
-	  iDataType(aDataType), 
-	  iUid(aUid), 
-	  iConfidence(aConfidence)
-	{
-	}
-
-CDataRecognitionResultArrayEntry::~CDataRecognitionResultArrayEntry()
-	{
-	delete iFileName;
-	delete iDataType;
-	}
-
-void CDataRecognitionResultArrayEntry::GetDataRecognitionResult(TDataRecognitionResult& aResult) const
-	{
-	TDataRecognitionResult result;
-	if(iDataType->Length() != 0)
-		{
-		TDataType dataType(*iDataType);
-		result.iDataType = dataType;
-		}
-	else
-		{
-		TDataType dataType(iUid);
-		result.iDataType = dataType;
-		}
-	result.iConfidence = iConfidence;
-	aResult = result;
-	}
-
-const TDesC& CDataRecognitionResultArrayEntry::FileName() const
-	{
-	if (iFileName == NULL)
-		return KNullDesC;
-	else
-		return *iFileName;
-	}
-
-
-///////////////////////////////////
-// CDataRecognitionResultArray
-///////////////////////////////////
-
-/**
-Constructor
-@publishedAll
-@released
-*/
-EXPORT_C CDataRecognitionResultArray::CDataRecognitionResultArray()
-	{
-	}
-
-/**
-Destructor
-@publishedAll
-@released
-*/
-EXPORT_C CDataRecognitionResultArray::~CDataRecognitionResultArray()
-	{
-	iEntries.ResetAndDestroy();
-	}
-
-/**
-Returns the path of the recognition results.
-@publishedAll
-@released
-@return The path of the recognition results
-*/
-EXPORT_C const TFileName& CDataRecognitionResultArray::Path() const
-	{
-	return iPath;
-	}
-
-/**
-Returns the number of entries in the CDataRecognitionResultArray.
-@publishedAll
-@released
-@return The number of entries in the CDataRecognitionResultArray.
-*/
-EXPORT_C TUint CDataRecognitionResultArray::Count() const
-	{
-	return iEntries.Count();
-	}
-
-/**
-Returns the recognition result of the given index.
-@publishedAll
-@released
-@param aResult On successful completion, this parameter contains the recognition result at the given index.
-@param aIndex The index of the recognition result to be returned. An invalid index causes
-the function to leave with KErrNotFound.
-@return The requested TDataRecognitionResult object
-@leave KErrNotFound An invalid index is passed
-*/
-EXPORT_C void CDataRecognitionResultArray::GetDataRecognitionResultL(TDataRecognitionResult& aResult, const TUint aIndex) const
-	{
-	if( aIndex >= iEntries.Count() )
-		{
-		User::Leave(KErrNotFound);
-		}
-	iEntries[aIndex]->GetDataRecognitionResult(aResult);
-	}
-
-/**
-Returns the file name of the object at the given index.
-@publishedAll
-@released
-@param aFileName On successful completion, this parameter contains the file name of the object at the given index. 
-@param aIndex Specifies which file name to be returned. An invalid index causes
-the function to leave with KErrNotFound.
-@return The requested file name
-@leave KErrNotFound An invalid index is passed
-*/
-EXPORT_C void CDataRecognitionResultArray::GetFileNameL(TFileName& aFileName, const TUint aIndex) const
-	{
-	if( aIndex >= iEntries.Count() )
-		{
-		User::Leave(KErrNotFound);
-		}
-	aFileName.Zero();
-	aFileName.Copy( (iEntries[aIndex]->FileName()) );
-	}
-
-TUint CDataRecognitionResultArray::InternalizeL(const CBufFlat& aBuffer)
-	{
-	RBufReadStream readStream;
-	
-	readStream.Open(aBuffer);
-	const TInt count=readStream.ReadUint32L();
-	for (TInt i=0; i<count; ++i)
-		{
-		const TInt fileNameLength = readStream.ReadUint8L();
-		HBufC* const fileName = HBufC::NewLC(fileNameLength);
-		TPtr fileNamePtr = fileName->Des();
-		readStream.ReadL(fileNamePtr,fileNameLength);
-
-		const TInt dataTypeLength = readStream.ReadUint8L();
-		HBufC8* const dataType = HBufC8::NewLC(dataTypeLength);
-		TPtr8 dataTypePtr = dataType->Des();
-		readStream.ReadL(dataTypePtr,dataTypeLength);
-
-		TUid uid;
-		uid.iUid = readStream.ReadInt32L();
-		
-		TInt const confidence = readStream.ReadInt32L();
-		
-		CDataRecognitionResultArrayEntry* entry = new (ELeave) CDataRecognitionResultArrayEntry(fileName,dataType,uid,confidence);
-		iEntries.Append(entry);
-		
-		CleanupStack::Pop(dataType);	// ownership was transferred to "entry"
-		CleanupStack::Pop(fileName);	// ownership was transferred to "entry"
-		}
-
-	readStream.Close();
-		
-	return KErrNone;
-	}
-
-void CDataRecognitionResultArray::SetPath(const TFileName& aPath)
-	{
-	iPath.Copy(aPath);
-	}
-
-////////////////////////////////////
-//RApaLsSession
-////////////////////////////////////
+//
+// class RApaLsSession
+//
 
 EXPORT_C RApaLsSession::RApaLsSession()
-	: iExtension(0)
+	: iExtension(NULL)
 	{}
 
 
@@ -471,6 +149,16 @@
 	return(r); 
 	}
 
+EXPORT_C void RApaLsSession::Close()
+/** 
+Closes the session. Needs to be called to avoid memory leaks.
+@publishedAll
+@released
+*/
+	{
+	CancelRecognizeFiles();
+	RHandleBase::Close();
+	}
 
 
 /** Gets the version of the application architecture server.
@@ -483,7 +171,6 @@
 	}
 
 
-
 /** Gets the total number of applications.
 
 Control panel applications are excluded.
@@ -493,11 +180,10 @@
 */
 EXPORT_C TInt RApaLsSession::AppCount(TInt& aCount) const
 	{
-	return DoAppCount(aCount,EAppListServAppCount);
+	return DoAppCount(aCount, EAppListServAppCount);
 	}
 
 
-
 /** Gets the total number of embeddable applications.
 
 Control panel applications are excluded.
@@ -507,19 +193,19 @@
 */
 EXPORT_C TInt RApaLsSession::EmbeddableAppCount(TInt& aCount) const
 	{
-	return DoAppCount(aCount,EAppListServEmbedCount);
+	return DoAppCount(aCount, EAppListServEmbedCount);
 	}
 
+
 TInt RApaLsSession::DoAppCount(TInt& aCount,TInt aCommand) const
 // returns the number of embeddable apps in the server side list
 	{
 	__ASSERT_DEBUG(aCommand==EAppListServEmbedCount || aCommand==EAppListServAppCount,Panic(EDPanicWrongCommand));
-	const TInt returnValue=SendReceiveWithReconnect(aCommand,TIpcArgs());
-	if (returnValue<0)
-		{
+	const TInt returnValue = SendReceiveWithReconnect(aCommand,TIpcArgs());
+	if (returnValue < 0)
 		return returnValue;
-		}
-	aCount=returnValue;
+	
+	aCount = returnValue;
 	return KErrNone;
 	}
 
@@ -540,7 +226,6 @@
 	}
 
 
-
 /** Initialises the process of getting all applications in the cached list.
 
 Control panel applications are excluded.
@@ -713,8 +398,6 @@
 	return GetServerApps(aServiceUid, 0);
 	}
 
-
-
 /** Initialises the process of getting server applications in the cached list.
 
 Control panel applications are excluded.
@@ -737,8 +420,6 @@
 	return SendReceiveWithReconnect(EAppListServInitServerAppList,TIpcArgs(aScreenMode, aServiceUid.iUid));
 	}
 
-
-
 /** Gets information about the next application or embeddable application from 
 the cached list.
 
@@ -755,8 +436,6 @@
 	return GetNextApp(aInfo,0);
 	}
 
-
-
 /** Gets information about the next application or embeddable application from 
 the cached list.
 
@@ -772,14 +451,15 @@
 EXPORT_C TInt RApaLsSession::GetNextApp(TApaAppInfo& aInfo,TInt aScreenMode) const
 	{
 	TPckg<TApaAppInfo> info(aInfo);
-	TInt ret=SendReceiveWithReconnect(EAppListServGetNextApp,TIpcArgs(aScreenMode,&info));
-	if (ret==KErrNone)
+	TInt err = SendReceiveWithReconnect(EAppListServGetNextApp, TIpcArgs(aScreenMode,&info));
+	if (!err)
 		aInfo = info();
-	else if (ret==KErrNotFound)
-		ret = ENoMoreAppsInList;
-	else if (ret==KErrCorrupt)
-		ret = EAppListInvalid;
-	return ret;
+	else if (err==KErrNotFound)
+		err = ENoMoreAppsInList;
+	else if (err==KErrCorrupt)
+		err = EAppListInvalid;
+	
+	return err;
 	}
 
 
@@ -793,10 +473,10 @@
 @return KErrNone if successful; KErrNotFound if a matching entry could not be found; 
 otherwise one of the other system wide error codes. 
 */
-EXPORT_C TInt RApaLsSession::GetAppInfo(TApaAppInfo& aInfo,TUid aAppUid) const
+EXPORT_C TInt RApaLsSession::GetAppInfo(TApaAppInfo& aInfo, TUid aAppUid) const
 	{
 	TPckg<TApaAppInfo> info(aInfo);
-	return SendReceiveWithReconnect(EAppListServGetAppInfo,TIpcArgs(aAppUid.iUid,&info));
+	return SendReceiveWithReconnect(EAppListServGetAppInfo, TIpcArgs(aAppUid.iUid,&info));
 	} //lint !e1764 Suppress reference parameter 'aInfo' could be declared const ref
 	
 /** Sets the short caption of the application.
@@ -813,12 +493,12 @@
 EXPORT_C TInt RApaLsSession::SetAppShortCaption(const TDesC& aShortCaption, TLanguage aLanguage, TUid aAppUid)
 	{
 	if (aShortCaption.Length() > KApaMaxAppCaption || aShortCaption.Length() == 0)
-		{
 		return KErrArgument;
-		}
+
 	return SendReceiveWithReconnect(EAppListServSetAppShortCaption, TIpcArgs(aAppUid.iUid, &aShortCaption, aLanguage));
 	} //lint !e1762 Suppress member function could be made const
 
+
 /** Gets the default screen-number of the application with the specified UID.
 
 @param aDefaultScreenNumber On return, contains the default screen-number, if an application 
@@ -830,12 +510,11 @@
 */
 EXPORT_C TInt RApaLsSession::GetDefaultScreenNumber(TInt& aDefaultScreenNumber, TUid aAppUid) const
 	{
-	const TInt result=SendReceiveWithReconnect(EAppListServGetDefaultScreenNumber, TIpcArgs(aAppUid.iUid));
-	if (result<0)
-		{
+	const TInt result = SendReceiveWithReconnect(EAppListServGetDefaultScreenNumber, TIpcArgs(aAppUid.iUid));
+	if (result < 0)
 		return result;
-		}
-	aDefaultScreenNumber=result;
+
+	aDefaultScreenNumber = result;
 	return KErrNone;
 	}
 
@@ -856,577 +535,6 @@
 	}
 
 
-
-/** Starts an application defined by the specified command line information.
-    This is an asynchronous method which doesn't wait for the process creation to complete.
-    To be informed of the process creation success, 
-    then appropriate overloaded method taking a TRequestStatus parameter should be used.
-    
-This is only recommended for non document based applications.
-
-View based applications are usually started by activating a specific view 
-using CCoeAppUi::ActivateViewL. Alternatively, using StartApp() to start a 
-view based application will activate the application's default view.
-
-@param aCommandLine The command line.
-@return KErrNone, if successful; KErrNotFound, if the application cannot be 
-found; otherwise one of the other system-wide error codes. 
-@see CCoeAppUi::ActivateViewL() 
-*/
-EXPORT_C TInt RApaLsSession::StartApp(const CApaCommandLine& aCommandLine)
-	{
-	return DoStartApp(aCommandLine, NULL,NULL);
-	}
-	
-/** Starts an application defined by the specified command line information.
-    This is an asynchronous method which doesn't wait for the process creation to complete.
-    To be informed of the process creation success, 
-    then appropriate overloaded method taking a TRequestStatus parameter should be used.
-
-This is only recommended for non document based applications.
-
-View based applications are usually started by activating a specific view 
-using CCoeAppUi::ActivateViewL. Alternatively, using StartApp() to start a 
-view based application will activate the application's default view.
-
-@param aCommandLine The command line.
-@param aThreadId On return, the id of the main thread started.
-@return KErrNone, if successful; KErrNotFound, if the application cannot be 
-found; otherwise one of the other system-wide error codes. 
-@see CCoeAppUi::ActivateViewL() 
-*/	
-EXPORT_C TInt RApaLsSession::StartApp(const CApaCommandLine& aCommandLine,TThreadId& aThreadId)
-	{
-	return DoStartApp(aCommandLine, &aThreadId,NULL);
-	}
-
-	
-/** Starts an application defined by the specified command line information.
-
-This is only recommended for non document based applications.
-
-View based applications are usually started by activating a specific view 
-using CCoeAppUi::ActivateViewL. Alternatively, using StartApp() to start a 
-view based application will activate the application's default view.
-
-@param aCommandLine The command line.
-@param aThreadId On return, the id of the main thread started.
-@param aRequestStatusForRendezvous If not NULL, the asynchronous RProcess::Rendezvous() 
-function is called (being passed this TRequestStatus object) before RProcess::Resume() is called on 
-the new application process. If this function does not return KErrNone, RProcess::Rendezvous() will
-not be called passing aRequestStatusForRendezvous, so in this case the caller must not wait
-on aRequestStatusForRendezvous.
-@return KErrNone, if successful; KErrNotFound, if the application cannot be 
-found; otherwise one of the other system-wide error codes. 
-@see CCoeAppUi::ActivateViewL() 
-*/
-EXPORT_C TInt RApaLsSession::StartApp(const CApaCommandLine& aCommandLine,TThreadId& aThreadId,TRequestStatus* aRequestStatusForRendezvous )
-	{
-	return DoStartApp(aCommandLine, &aThreadId,aRequestStatusForRendezvous);
-	}
-
-
-TInt RApaLsSession::DoStartApp(const CApaCommandLine& aCommandLine, TThreadId* aThreadId,TRequestStatus* aRequestStatusForRendezvous)
-	{
-	TRAPD(error, DoStartAppL(aCommandLine, aThreadId, aRequestStatusForRendezvous));
-	return error;
-	}
-
-void RApaLsSession::DoStartAppL(const CApaCommandLine& aCommandLine, TThreadId* aThreadId,TRequestStatus* aRequestStatusForRendezvous)
-	{
-	// This function does not require "this" object to be connected to the Apparc server,
-	// but if not, it works with some limitations (see the following document for a list
-	// of these limitations: 
-	// generic/app-framework/Documentation/PREQ967_solution_constraints.doc).
-
-#if defined(USE_IH_RAISE_EVENT)
-	const TInt appStartupInstrumentationEventIdBase=aCommandLine.AppStartupInstrumentationEventIdBase();
-	if (appStartupInstrumentationEventIdBase!=0)
-		{
-		IH_DECLARE( lInstrumentationHandler );
-		IH_CREATE( lInstrumentationHandler );
-		IH_RAISE_EVENT( lInstrumentationHandler, appStartupInstrumentationEventIdBase+MTestInstrumentation::TIDOffsetBeginApplicationFirstRedraw );
-		IH_RAISE_EVENT( lInstrumentationHandler, appStartupInstrumentationEventIdBase+MTestInstrumentation::TIDOffsetBeginApplicationReadyForInput );
-		IH_DELETE( lInstrumentationHandler );
-		}
-#endif
-
- 	// Retrieve the executable name from the CApaCommandLine object passed in.
-	const TPtrC logicalExecutableName(aCommandLine.ExecutableName());
-	// Rule-based app launching is not allowed unless there is a connected RApaLsSession object.
-	if(Handle() != KNullHandle)
-		{
-		// requesting from rule-based plug-ins if we can run an application 
-		// if server fails while requested rule-based plug-ins it returns a negative value - proceed with launching the application in this case
-		TBool okayToRun = SendReceiveWithReconnect(EAppListServRuleBasedLaunching, TIpcArgs(&logicalExecutableName));
-		if(!okayToRun)
-			{
-			User::Leave(KErrCancel);
-			}
-		}
-
-	TFileName nativeExecutableNameOfNonNativeApplication;
-	RProcess process;
-	HBufC8* opaqueData=NULL;
-	CleanupStack::PushL(TCleanupItem(DeletePointerToPointerToTAny, &opaqueData));
-
-	// if we're connected to the Apparc server, try to get the opaque-data and native-executable name
-	// (the latter is only if it's a non-native application that we're launching)
-	if (Handle()!=KNullHandle)
-		{
-		const TInt lengthOfOpaqueData=User::LeaveIfError(SendReceiveWithReconnect(EAppListServGetNativeExecutableNameIfNonNative, TIpcArgs(&nativeExecutableNameOfNonNativeApplication, &logicalExecutableName)));
-		if (lengthOfOpaqueData>0)
-			{
-			User::LeaveIfError(GetOpaqueData(opaqueData, lengthOfOpaqueData));
-			}
-		}
-
-	// try first to create the application process without interacting with the Apparc server at all - 
-	// assumes "logicalExecutableName" is itself a native executable
-	TUidType uidType(KNullUid, KNullUid, KNullUid);
-	TInt err = process.CreateWithStackOverride(logicalExecutableName, KNullDesC, uidType, MinApplicationStackSize(), EOwnerProcess);
-	 
-	// If we haven't been able to create the process using the native executable name from the command line
-	// object, instead try to create it using the native executable name of the non-native application.
-	// Can only do this if apparc is connected and thus this name has been retrieved above and 
-	// nativeExecutableNameOfNonNativeApplication populated.
-	if ((err != KErrNone) && nativeExecutableNameOfNonNativeApplication.Length()>0)
-			{
-			err = process.CreateWithStackOverride(nativeExecutableNameOfNonNativeApplication, KNullDesC, uidType, MinApplicationStackSize(), EOwnerProcess);
-			}
-
-	// if we managed to create the process via either of the two methods attempted above (with the native 
-	// name or the native name of the non-native app), finish setting it up and "resume" it
-	if (err == KErrNone)
-		{
-		CleanupStack::PushL(TCleanupItem(CleanupOperation, &process));
-		if (opaqueData!=NULL)
-			{
-			const_cast<CApaCommandLine&>(aCommandLine).SetOpaqueDataL(*opaqueData);
-			}
-		aCommandLine.SetProcessEnvironmentL(process);
-		if (aThreadId!=NULL)
-			{
-			GetThreadIdL(*aThreadId, process);
-			}
-		if (aRequestStatusForRendezvous!=NULL)
-			{
-			process.Rendezvous(*aRequestStatusForRendezvous);
-			}
-		// Note - must not leave between here and the end of this method because we only expect
-		// the caller to wait on aRequestStatusForRendezvous if this method does not leave.
-		if(aRequestStatusForRendezvous != NULL && *aRequestStatusForRendezvous != KRequestPending)
-			{
-			User::WaitForRequest(*aRequestStatusForRendezvous);
-			User::Leave(aRequestStatusForRendezvous->Int()); // item on cleanupstack terminates and closes the process
-			}
-		else
-			{
-			process.Resume();	
-			}
-		CleanupStack::Pop(&process);	
-		process.Close();
-		}
-	else // Couldn't create a process
-		{
-		if (Handle()==KNullHandle) // not connected to apparc
-			{
-			const TPtrC executableName(aCommandLine.ExecutableName());
-			
-			// Java applications have an empty ExecutableName, as they use the CApaCommandLine's
-			// opaque-data attribute. Not connected to apparc so can't start a non-native app.
-			// Therefore we should handle this case with KErrNotSupported rather than whatever
-			// RProcess::Create returns when passed an empty descriptor.  
-			if (executableName.Length() == 0)
-				{
-				User::Leave(KErrNotSupported);
-				}
-				
-			// Otherwise return the error code from RProcess::Create.
-			User::Leave(err);
-			
-			}
-		else // Handle()!=KNullHandle
-			{
-			// we can only proceed with the remaining option if we're connected to the Apparc server	
-			// as a last resort, try use the legacy file-recognizer framework to launch the application
-			TThreadId dummyThreadId;
-			TPckg<TThreadId> threadId((aThreadId!=NULL)? *aThreadId: dummyThreadId);
-			const TInt opcode=(aThreadId==NULL)?
-									EAppListServStartAppWithoutReturningThreadId:
-									EAppListServStartAppReturningThreadId;
-			TIpcArgs ipcArgs;
-			aCommandLine.GetIpcArgsLC(ipcArgs);
-			if (aThreadId!=NULL)
-				{
-				ipcArgs.Set(CApaCommandLine::EIpcFirstFreeSlot, &threadId);
-				}
-			User::LeaveIfError(SendReceiveWithReconnect(opcode, ipcArgs));
-			if (aRequestStatusForRendezvous!=NULL)
-				{
-				User::RequestComplete(aRequestStatusForRendezvous,KErrNone);
-				}
-			CleanupStack::PopAndDestroy(); // the TIpcArgs
-			}
-		}
-	CleanupStack::PopAndDestroy(&opaqueData);
-	} //lint !e1762 Suppress member function could be made const
-	
-void RApaLsSession::CleanupOperation(TAny* aAny)
-	{
-	RProcess* activeProcess = reinterpret_cast<RProcess*>(aAny);	
-	activeProcess->Terminate(KErrGeneral);
-	activeProcess->Close();
-	}
-	
-void RApaLsSession::GetThreadIdL(TThreadId& aThreadId, const RProcess& aProcess)
-	{ // static
-	TFullName fullName(aProcess.Name());
-	_LIT(KCCMain,"::Main");
-	fullName.Append(KCCMain);
-	RThread thread;
-	User::LeaveIfError(thread.Open(fullName,EOwnerThread));
-	aThreadId=thread.Id();
-	thread.Close();
-	}
-
-void RApaLsSession::DeletePointerToPointerToTAny(TAny* aPointerToPointerToTAny)
-	{ // static
-	__ASSERT_ALWAYS(aPointerToPointerToTAny, Panic(EPanicNullPointer));
-	delete *static_cast<TAny**>(aPointerToPointerToTAny); //lint !e613 Suppress possible use of null pointer
-	} //lint !e818 Suppress pointer parameter could be declared as pointing to const
-
-/**
-Sets up slots 0 and 1 in aIpcArgs - assumes that slots 2 and 3 have already been set up; 
-it then invokes aOpcode
-*/
-TInt RApaLsSession::GetExecutableName(TDes& aNativeExecutableName, TDes& aLogicalExecutableName, HBufC8*& aOpaqueData, TIpcArgs& aIpcArgs, TInt aOpcode) const
-	{
-	aNativeExecutableName.SetLength(0); // if this comes out zero-length from EAppListServExecutableNameForXxx below then use the logicalExecutableName in RProcess::Create (in this case it's a native C++ application)
-	aIpcArgs.Set(0, &aNativeExecutableName);
-	aIpcArgs.Set(1, &aLogicalExecutableName);
-	const TInt lengthOfOpaqueData=SendReceiveWithReconnect(aOpcode, aIpcArgs);
-	if (lengthOfOpaqueData<0)
-		{
-		return lengthOfOpaqueData; // it's an error code
-		}
-	if (lengthOfOpaqueData>0)
-		{
-		return GetOpaqueData(aOpaqueData, lengthOfOpaqueData);
-		}
-	aOpaqueData=NULL;
-	return KErrNone;
-	}
-
-TInt RApaLsSession::GetOpaqueData(HBufC8*& aOpaqueData, TInt aLengthOfOpaqueData) const
-	{
-	HBufC8* const opaqueData=HBufC8::New(aLengthOfOpaqueData);
-	if (opaqueData==NULL)
-		{
-		return KErrNoMemory;
-		}
-	TPtr8 opaqueData_asWritable(opaqueData->Des());
-	const TInt error=SendReceiveWithReconnect(EAppListServGetOpaqueData, TIpcArgs(&opaqueData_asWritable));
-	if (error!=KErrNone)
-		{
-		delete opaqueData;
-		return error;
-		}
-	aOpaqueData=opaqueData;
-	return error;
-	}
-
-TInt RApaLsSession::StartApplicationPassingFileHandle(const TDesC& aNativeExecutableName, const TDesC& aLogicalExecutableName, const TDesC8* aOpaqueData, const RFile& aFile, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous)
-	{
-	TFileName documentName;
-	aFile.FullName(documentName);
-	CApaCommandLine* commandLine=NULL;	
-	TRAPD(error, commandLine=CApaCommandLine::NewLC();
-			commandLine->SetCommandL(EApaCommandOpen);
-			commandLine->SetExecutableNameL(aLogicalExecutableName);
-			commandLine->SetFileByHandleL(aFile);
-			commandLine->SetDocumentNameL(documentName);
-			if (aOpaqueData!=NULL)
-				{
-				commandLine->SetOpaqueDataL(*aOpaqueData);
-				}
-			StartApplicationL(aNativeExecutableName, *commandLine, aThreadId, aRequestStatusForRendezvous);
-			CleanupStack::PopAndDestroy(commandLine));
-	return error;
-	}
-	
-TInt RApaLsSession::StartApplicationPassingDocumentName(const TDesC& aNativeExecutableName, const TDesC& aLogicalExecutableName, const TDesC8* aOpaqueData, const TDesC& aDocumentName, TThreadId& aThreadId,TApaCommand aCommand, TRequestStatus* aRequestStatusForRendezvous)
-	{
-	CApaCommandLine* commandLine=NULL;
-	TRAPD(error, commandLine=CApaCommandLine::NewLC();
-			commandLine->SetCommandL(aCommand);
-			commandLine->SetExecutableNameL(aLogicalExecutableName);
-			commandLine->SetDocumentNameL(aDocumentName);
-			if (aOpaqueData!=NULL)
-				{
-				commandLine->SetOpaqueDataL(*aOpaqueData);
-				}
-			StartApplicationL(aNativeExecutableName, *commandLine, aThreadId, aRequestStatusForRendezvous);
-			CleanupStack::PopAndDestroy(commandLine));
-	return error;
-	}
-
-void RApaLsSession::StartApplicationL(const TDesC& aNativeExecutableName, const CApaCommandLine& aCommandLine, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous)
-	{ 
-	RProcess process;
-	TPtrC actualNativeExecutableName(aNativeExecutableName);
-	if (actualNativeExecutableName.Length()==0)
-		{
-		actualNativeExecutableName.Set(aCommandLine.ExecutableName()); // it's a native C++ application, rather than a MIDlet, Python script, etc
-		}
-
-	if(Handle() != KNullHandle)
-		{
-		//requesting from rule-based plug-ins if we can run an application 
-		TBool okayToRun = SendReceiveWithReconnect(EAppListServRuleBasedLaunching, TIpcArgs(&actualNativeExecutableName));
-		//If server fails while requested rule-based plug-ins it returns a negative value. 
-		//We shall proceed with launching an application in this case.
-		if(!okayToRun)
-			{
-			User::Leave(KErrCancel); 
-			}
-		}
-
-	TUidType uidType(KNullUid, KNullUid, KNullUid);
-	User::LeaveIfError(process.CreateWithStackOverride(actualNativeExecutableName, KNullDesC, uidType, MinApplicationStackSize(), EOwnerProcess)); // RProcess::CreateWithStackOveride - TESTED
-		
-	CleanupClosePushL(process);
-	aCommandLine.SetProcessEnvironmentL(process);
-	GetThreadIdL(aThreadId, process);
-	if (aRequestStatusForRendezvous!=NULL)
-		{
-		process.Rendezvous(*aRequestStatusForRendezvous);
-		}
-	process.Resume();
-	CleanupStack::PopAndDestroy(&process);
-	} //lint !e1762 Suppress member function could be made const
-
-
-
-/** Gets the data (MIME) type for data taken from a file with a specified name.
-
-@param aName The full filename, including drive and path, of the file containing the data.
-@param aBuffer A buffer containing data taken from the specified file; typically 
-the data is read from the beginning of the file.
-@param aDataType On return, contains the result of the attempt to recognize 
-data. 
-@return KErrNone, if successful; otherwise one of the other system-wide error 
-codes. 
-*/
-EXPORT_C TInt RApaLsSession::RecognizeData(const TDesC& aName, const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const
-	{
-	TPckg<TDataRecognitionResult> result(aDataType);
-	return SendReceiveWithReconnect(EAppListServRecognizeData,TIpcArgs(&result, &aName, &aBuffer));
-	} //lint !e1764: Suppress reference parameter could be declared const ref
-
-/** Gets the data (MIME) type for data in a file passed by handle.
-
-@param aFile The file containing the data. Before this function can be called,
-the file server session which owns this file handle must first be marked as shareable by 
-calling RFs::ShareProtected().
-@param aDataType On return, contains the result of the attempt to recognize 
-data. 
-@return KErrNone, if successful; otherwise one of the other system-wide error 
-codes. */
-EXPORT_C TInt RApaLsSession::RecognizeData(const RFile& aFile, TDataRecognitionResult& aDataType) const
-	{
-	TPckg<TDataRecognitionResult> result(aDataType);
-	TIpcArgs ipcArgs(&result);
-	const TInt error = aFile.TransferToServer(ipcArgs, 1, 2);
-	if (error != KErrNone)
-		{
-		return error;
-		}
-	return SendReceiveWithReconnect(EAppListServRecognizeDataPassedByFileHandle,ipcArgs);
-	} //lint !e1764 Suppress reference parameter 'aDataType' could be declared const ref
-
-
-
-/** Tests whether data taken from a named file has the specified 
-data (MIME) type.
-
-@param aName The name of the file containing the data.
-@param aBuffer A buffer containing data taken from the specified file; typically 
-the data is read from the beginning of the file.
-@param aDataType The data (MIME) type.
-@param aResult On return, contains the result of the test.
-@return KErrNone, if successful; otherwise one of the other system-wide error 
-codes. 
-*/
-EXPORT_C TInt RApaLsSession::RecognizeSpecificData(const TDesC& aName, const TDesC8& aBuffer, const TDataType& aDataType, TBool& aResult) const
-	{
-	const TPckgC<TDataType> dataType(aDataType);
-	const TInt returnValue=SendReceiveWithReconnect(EAppListServRecognizeSpecificData,TIpcArgs(&dataType, &aName, &aBuffer));
-	if (returnValue<0)
-		{
-		return returnValue;
-		}
-	aResult=returnValue;
-	return KErrNone;
-	}
-	
-EXPORT_C TInt RApaLsSession::RecognizeFilesL(const TDesC& aPath, CDataRecognitionResultArray& aResult) const
-/** 
-Gets the data (MIME) type for files in a specified directory. Because this call may take a long
-time to complete, the asynchronous version is strongly recommended. Furthermore, it is not possible
-to use this synchronous function while an asynchronous request is still active.
-@publishedAll
-@released
-@param aPath A valid path. Note that the path must end with a backslash.
-@param aResult If the call was successful, this parameter contains the recognition result.
-@return KErrNone, if successful; otherwise one of the other system-wide error codes.
-*/
-	{
-	return RecognizeFilesL(aPath, KAllDataTypes, aResult);
-	}
-
-EXPORT_C TInt RApaLsSession::RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult) const
-/** 
-Gets the data (MIME) type for files in a specified directory. Because this call may take a long
-time to complete, the asynchronous version is strongly recommended. Furthermore, it is not possible
-to use this synchronous function while an asynchronous request is still active.
-@publishedAll
-@released
-@param aPath A valid path. Note that the path must end with a backslash.
-@param aDataType A data type filter. Wildcards are allowed. For example, "text*" would also
-add "text/plain" data types to the result.
-@param aResult If the call was successful, this parameter contains the recognition result.
-@return KErrNone, if successful; otherwise one of the other system-wide error codes.
-*/
-	{
-	if(iExtension && iExtension->RecognitionActive())
-		{
-		return KErrInUse;
-		}
-	_LIT(KBackslash,"\\");
-	if(aPath.Right(1) != KBackslash)
-		{
-		return KErrPathNotFound;
-		}
-
-	TPckgBuf<TUint> requiredBufferSizePckg;
-	aResult.SetPath(aPath);
-	TInt error = SendReceiveWithReconnect(EAppListServRecognizeFiles,TIpcArgs(&aPath,&requiredBufferSizePckg,&aDataType));
-	if(KErrNone == error)
-		{
-		error=TransferAndInternalizeDataL(aPath, requiredBufferSizePckg(), aResult);
-		}
-	return error;
-
-	}
-
-EXPORT_C void RApaLsSession::RecognizeFilesL(const TDesC& aPath, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus)
-/** 
-Gets the data (MIME) type for files in a specified directory.
-@publishedAll
-@released
-@param aPath A valid path. Note that the path must end with a backslash.
-@param aResult If the call was successful, this parameter contains the recognition result.
-@param aStatus A request status object.
-*/
-	{
-	RecognizeFilesL(aPath,KAllDataTypes,aResult,aStatus);
-	}
-
-EXPORT_C void RApaLsSession::RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus)
-/** 
-Gets the data (MIME) type for files in a specified directory.
-@publishedAll
-@released
-@param aPath A valid path. Note that the path must end with a backslash.
-@param aDataType A data type filter. Wildcards are allowed. For example, "text*" would also
-add "text/plain" data types to the result.
-@param aResult If the call was successful, this parameter contains the recognition result.
-@param aStatus A request status object
-*/
-	{
-	if(iExtension == NULL)
-		{
-		iExtension = new (ELeave) CApaLsSessionExtension(*this);
-		}
-	iExtension->RecognizeFilesL(aPath, aDataType, aResult, aStatus);
-	}
-
-TInt RApaLsSession::TransferAndInternalizeDataL(const TDesC& aPath, const TInt aRequiredBufferSize, CDataRecognitionResultArray& aResult) const
-/**
-This function transfers the data to the client-side and "fills" the CDataRecognitionResultArray object. 
-@internalComponent
-*/
-{
-	CBufFlat* const buffer=CBufFlat::NewL(aRequiredBufferSize);
-	CleanupStack::PushL(buffer);
-	buffer->ExpandL(0,aRequiredBufferSize);
-	TPtr8 bufPtr=buffer->Ptr(0);
-
-	// transfer recognition buffer
-	TInt error = SendReceiveWithReconnect(EAppListServTransferRecognitionResult,TIpcArgs(&aPath,&bufPtr,aRequiredBufferSize));
-	if(KErrNone == error)
-		{
-		error = aResult.InternalizeL(*buffer);
-		}
-	CleanupStack::PopAndDestroy(buffer);
-	return error;
-	}
-
-EXPORT_C void RApaLsSession::CancelRecognizeFiles()
-/** 
-Cancels any outstanding asynchronous recognition requests.
-@publishedAll
-@released
-*/
-	{
-	if(iExtension)
-		{
-		iExtension->CancelRecognizeFiles();
-		}
-	}
-
-EXPORT_C void RApaLsSession::Close()
-/** 
-Closes the session. Needs to be called to avoid memory leaks.
-@publishedAll
-@released
-*/
-	{
-	CancelRecognizeFiles();
-	RHandleBase::Close();
-	delete iExtension;
-	iExtension = NULL;
-	}
-
-EXPORT_C TInt RApaLsSession::RecognizeSpecificData(const RFile& aFile, const TDataType& aDataType, TBool& aResult) const
-/** Tests whether data taken from a file passed by handle has the specified 
-data (MIME) type.
-
-@param aFile The file containing the data. Before this function can be called,
-the file server session which owns this file handle must first be marked as shareable by 
-calling RFs::ShareProtected().
-@param aDataType The data (MIME) type.
-@param aResult On return, contains the result of the test.
-@return KErrNone, if successful; otherwise one of the other system-wide error 
-codes. */
-	{
-	const TPckgC<TDataType> dataType(aDataType);
-	TIpcArgs ipcArgs(&dataType);
-	TInt returnValue = aFile.TransferToServer(ipcArgs, 1, 2);
-	if (returnValue == KErrNone)
-		{
-		returnValue=SendReceiveWithReconnect(EAppListServRecognizeSpecificDataPassedByFileHandle,ipcArgs);
-		}
-	if (returnValue < KErrNone)
-		{
-		return returnValue;
-		}
-	aResult=returnValue;
-	return KErrNone;
-	}
-
-
 /** Gets the UID of an application that can handle the specified data (MIME) type.
 
 If no application can be found, the function returns the UID of the preferred 
@@ -1447,253 +555,6 @@
 	} //lint !e1764 Suppress reference parameter 'aAppUid' could be declared const ref
 
 
-/** Finds and launches an application to handle the document contained in the specified 
-file.
-
-@param aFileName The document name.
-@param aThreadId On return, the id of the main thread started.
-@param aLaunchType Not used. Reserved for future use.
-@return KErrNone, if successful; EAppListInvalid, if the server's initial population of 
-the list has not completed; KErrNotFound, if a matching entry could not be found; otherwise 
-one of the other system-wide error codes. 
-*/
-EXPORT_C TInt RApaLsSession::StartDocument(const TDesC& aFileName, TThreadId& aThreadId, TLaunchType /*aLaunchType*/)
-	{
-	HBufC8* buffer=NULL;
-	TInt error=GetBufferFromFile(buffer, aFileName);
-	if (error!=KErrNone)
-		{
-		return error;
-		}
-	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
-	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
-	HBufC8* opaqueData=NULL;
-	TIpcArgs ipcArgs;
-	ipcArgs.Set(2, &aFileName);
-	ipcArgs.Set(3, buffer);
-	error=GetExecutableName(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenDocument);
-	if (error!=KErrNone)
-		{
-		delete buffer;
-		return error;
-		}
-	error = StartApplicationPassingDocumentName(nativeExecutableName, logicalExecutableName, opaqueData, aFileName, aThreadId, EApaCommandOpen, NULL);
-	delete opaqueData;
-	if(error!=KErrNone && error!=KErrCancel)
-		{
-		TPckg<TThreadId> threadId(aThreadId);
-		error = SendReceiveWithReconnect(EAppListServStartDocument,TIpcArgs(&threadId, &aFileName, buffer));
-		}
-	delete buffer;
-	return error;
-	}
-
-EXPORT_C TInt RApaLsSession::StartDocument(RFile& aFile, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous/*=NULL*/)
-/** Finds and launches an application to handle the document contained in the specified file
-
-@param aFile  The file handle. Before this function can be called,
-the file server session which owns this file handle must first be marked as shareable by 
-calling RFs::ShareProtected().
-@param aThreadId On return, the id of the main thread started.
-@param aRequestStatusForRendezvous If not NULL, the asynchronous RProcess::Rendezvous() 
-function is called (being passed this TRequestStatus object) before RProcess::Resume() is called on 
-the new application process.
-@return KErrNone, if successful; KErrNotFound, if no suitable application can 
-be found; otherwise one of the other system-wide error codes. */
-	{
-	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
-	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
-	HBufC8* opaqueData=NULL;
-	TIpcArgs ipcArgs;
-	TInt error=aFile.TransferToServer(ipcArgs, 2, 3);
-	if (error == KErrNone)
-		{
-		error=GetExecutableName(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenDocumentPassedByFileHandle);
-		}
-	if (error!=KErrNone)
-		{
-		return error;
-		}
-	error=StartApplicationPassingFileHandle(nativeExecutableName, logicalExecutableName, opaqueData, aFile, aThreadId, aRequestStatusForRendezvous);
-	delete opaqueData;
-	return error;
-	} //lint !e1764 Suppress reference parameter could be declared const ref
-
-
-/** Launches an application that can handle the specified data (MIME) type.
-
-The application handles the document contained in the specified file.
-
-@param aFileName The document name.
-@param aDataType The data (MIME) type.
-@param aThreadId On return, the id of the main thread started.
-@param aLaunchType Not used. Reserved for future use.
-@return KErrNone, if successful; EAppListInvalid if the server's initial population of 
-the list has not completed; KErrNotFound, if no suitable application can 
-be found; otherwise one of the other system-wide error codes. 
-*/
-EXPORT_C TInt RApaLsSession::StartDocument(const TDesC& aFileName, const TDataType& aDataType, TThreadId& aThreadId, TLaunchType /*aLaunchType*/)
-	{
-	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
-	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
-	HBufC8* opaqueData=NULL;
-	const TPckgC<TDataType> dataType(aDataType);
-	TIpcArgs ipcArgs;
-	ipcArgs.Set(2, &dataType);
-	TInt error=GetExecutableName(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenDataType);
-	if (error!=KErrNone)
-		{
-		return error;
-		}
-	error = StartApplicationPassingDocumentName(nativeExecutableName, logicalExecutableName, opaqueData, aFileName, aThreadId,EApaCommandOpen,NULL);
-	delete opaqueData;
-	if(error!=KErrNone && error!=KErrCancel)
-		{
-		TPckg<TThreadId> threadId(aThreadId);
-		error = SendReceiveWithReconnect(EAppListServStartDocumentByDataType,TIpcArgs(&threadId, &aFileName, &dataType));
-		}
-	return error;
-	}
-
-EXPORT_C TInt RApaLsSession::StartDocument(RFile& aFile, const TDataType& aDataType, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous/*=NULL*/)
-/** Finds and launches an application to handle the document contained in the specified file
-
-@param aFile The file handle.
-@param aDataType The data (MIME) type.
-@param aThreadId On return, the id of the main thread started.
-@param aRequestStatusForRendezvous If not NULL, the asynchronous RProcess::Rendezvous() 
-function is called (being passed this TRequestStatus object) before RProcess::Resume() is called on 
-the new application process.
-@return KErrNone, if successful; KErrNotFound, if no suitable application can 
-be found; otherwise one of the other system-wide error codes. */
-	{
-	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
-	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
-	HBufC8* opaqueData=NULL;
-	const TPckgC<TDataType> dataType(aDataType);
-	TIpcArgs ipcArgs;
-	ipcArgs.Set(2, &dataType);
-	TInt error=GetExecutableName(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenDataType);
-	if (error!=KErrNone)
-		{
-		return error;
-		}
-	error=StartApplicationPassingFileHandle(nativeExecutableName, logicalExecutableName, opaqueData, aFile, aThreadId, aRequestStatusForRendezvous);
-	delete opaqueData;
-	return error;
-	} //lint !e1764 Suppress reference parameter could be declared const ref
-
-EXPORT_C TInt RApaLsSession::StartDocument(const TDesC& aFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType aLaunchType)
-/** Launches the application identified by the specified UID.
-
-The application handles the document contained in the specified file.
-
-@param aFileName The document name.
-@param aAppUid The application specific UID.
-@param aThreadId On return, the id of the main thread started.
-@param aLaunchType Not used. Reserved for future use.
-@return KErrNone, if successful; EAppListInvalid if the server's initial population of 
-the list has not completed; KErrNotFound, if no suitable application can 
-be found; otherwise one of the other system-wide error codes. */
-	{
-	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
-	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
-	HBufC8* opaqueData=NULL;
-	TIpcArgs ipcArgs;
-	ipcArgs.Set(2, aAppUid.iUid);
-	TInt error=GetExecutableName(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenAppUid);
-	if (error!=KErrNone)
-		{
-		return error;
-		}
-	error = StartApplicationPassingDocumentName(nativeExecutableName, logicalExecutableName, opaqueData, aFileName, aThreadId,EApaCommandOpen,NULL);
-	delete opaqueData;
-	if(error!=KErrNone && error!=KErrCancel)
-		{
-		error = StartAndCreate(EAppListServStartDocumentByUid,aFileName,aAppUid,aThreadId,aLaunchType);
-		}
-	return error;
-	}
-
-EXPORT_C TInt RApaLsSession::StartDocument(RFile& aFile, TUid aAppUid, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous/*=NULL*/)
-/** Finds and launches an application to handle the document contained in the specified file
-
-@param aFile The file handle.
-@param aAppUid The application specific UID.
-@param aThreadId On return, the id of the main thread started.
-@param aRequestStatusForRendezvous If not NULL, the asynchronous RProcess::Rendezvous() 
-function is called (being passed this TRequestStatus object) before RProcess::Resume() is called on 
-the new application process.
-@return KErrNone, if successful; KErrNotFound, if no suitable application can 
-be found; otherwise one of the other system-wide error codes. */
-	{
-	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
-	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
-	HBufC8* opaqueData=NULL;
-	TIpcArgs ipcArgs;
-	ipcArgs.Set(2, aAppUid.iUid);
-	TInt error=GetExecutableName(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenAppUid);
-	if (error!=KErrNone)
-		{
-		return error;
-		}
-	error=StartApplicationPassingFileHandle(nativeExecutableName, logicalExecutableName, opaqueData, aFile, aThreadId, aRequestStatusForRendezvous);
-	delete opaqueData;
-	return error;
-	} //lint !e1764 Suppress reference parameter could be declared const ref
-
-
-/** Launches the application identified by the specified UID and creates a new document.
-
-To create a document file with the passed document name, the application needs to override the 3-parameter
-overload of ProcessCommandParametersL() to call the 2-parameter overload.
-
-Otherwise, a document will be created with the default document name present in the application resource file.
-If default document name is empty or not provided, no document is created.
-
-If the application resource file is not present, a document with application caption name is created.
-
-@param aFileName The document name.
-@param aAppUid The application specific UID. 
-@param aThreadId On return, the id of the main thread started.
-@param aLaunchType Not used. Reserved for future use.
-@return KErrNone, if successful; EAppListInvalid if the server's initial population of 
-the list has not completed; KErrNotFound, if no suitable application can 
-be found; otherwise one of the other system-wide error codes. 
-@see CEikAppUi::ProcessCommandParametersL().
-*/
-EXPORT_C TInt RApaLsSession::CreateDocument(const TDesC& aFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType aLaunchType)
-	{
-	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
-	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
-	HBufC8* opaqueData=NULL;
-	TIpcArgs ipcArgs;
-	ipcArgs.Set(2, aAppUid.iUid);
-	TInt error=GetExecutableName(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenAppUid);
-	if (error!=KErrNone)
-		{
-		return error;
-		}
-	error = StartApplicationPassingDocumentName(nativeExecutableName, logicalExecutableName, opaqueData, aFileName, aThreadId,EApaCommandCreate,NULL);
-	delete opaqueData;
-	if(error!=KErrNone && error!=KErrCancel)
-		{
-		error = StartAndCreate(EAppListServCreateDocumentByUid,aFileName,aAppUid,aThreadId,aLaunchType);
-		}
-	return error;
-	}
-	
-TInt RApaLsSession::StartAndCreate(TInt aRqst,const TDesC& aFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType /*aLaunchType*/)
-	{
-	TPckg<TThreadId> threadId(aThreadId);
-	return SendReceiveWithReconnect(aRqst,TIpcArgs(&threadId, &aFileName, aAppUid.iUid));
-	} 	//lint !e1762 !e1764
-		//Suppress reference parameter 'aThreadId' could be declared const ref
-		//Suppress member function could be made const
-
-
-
-
 /** Gets the available icon sizes for the application with the specified UID.
 
 @param aAppUid The application specific UID.
@@ -1705,47 +566,62 @@
 */
 EXPORT_C TInt RApaLsSession::GetAppIconSizes(TUid aAppUid, CArrayFixFlat<TSize>& aArrayToFill) const
 	{
-	TRAPD(error,DoGetAppIconSizesL(aAppUid,aArrayToFill));
+	TRAPD(error, DoGetAppIconSizesL(aAppUid,aArrayToFill));
 	return error;
 	}
 
-void RApaLsSession::FetchArrayL(MArrayFiller& aArrayFiller,TUid aAppUid, TInt aOpcode, TInt aInitialBufSize) const
-	{
-	CBufFlat* buffer=CBufFlat::NewL(aInitialBufSize);
-	CleanupStack::PushL(buffer);
-	buffer->ExpandL(0,aInitialBufSize);
-	TPtr8 bufPtr=buffer->Ptr(0);
-	const TInt sizeRequired=User::LeaveIfError(SendReceiveWithReconnect(aOpcode,TIpcArgs(aAppUid.iUid,buffer->Size(),&bufPtr)));
-	if (sizeRequired>0)
-		{
-		__ASSERT_DEBUG(sizeRequired>buffer->Size(),User::Invariant());
-		CleanupStack::PopAndDestroy(buffer);
-		buffer=CBufFlat::NewL(sizeRequired);
-		CleanupStack::PushL(buffer);
-		buffer->ExpandL(0,sizeRequired);
-		bufPtr.Set(buffer->Ptr(0));
-#if defined(_DEBUG)
-		const TInt check=
-#endif
-		User::LeaveIfError(SendReceiveWithReconnect(aOpcode,TIpcArgs(aAppUid.iUid,buffer->Size(),&bufPtr)));
-		__ASSERT_DEBUG(check==0,User::Invariant());
-		}
-	RBufReadStream readStream;
-	readStream.Open(*buffer);
-	const TInt count=readStream.ReadUint32L();
-	for (TInt i=0; i<count; ++i)
-		{
-		aArrayFiller.AppendItemL(readStream);
-		}
-	CleanupStack::PopAndDestroy(buffer);
-	}
-
 void RApaLsSession::DoGetAppIconSizesL(TUid aAppUid, CArrayFixFlat<TSize>& aArrayToFill) const
 	{
 	TSizeArrayFiller arrayFiller(aArrayToFill);
 	FetchArrayL(arrayFiller, aAppUid, EAppListServGetAppIconSizes, KInitialIconBufSize);
 	}
 
+/**
+This method implementes a generic mechanism for retrieving data items from the AppArc server.
+The data items can be either TSize, TApaAppViewInfo, or TDesC (see MArrayFiller).
+@internalTechnology
+*/
+void RApaLsSession::FetchArrayL(MArrayFiller& aArray, TUid aAppUid, TInt aOpcode, TInt aInitialBufSize) const
+	{
+	// Create a buffer to recieve the data in
+	CBufFlat* buffer = CBufFlat::NewL(aInitialBufSize);
+	CleanupStack::PushL(buffer);
+	
+	// Set its size and create a pointer for writing to it
+	buffer->ExpandL(0,aInitialBufSize);
+	TPtr8 bufPtr = buffer->Ptr(0);
+	
+	// Get the data from the AppArc server
+	
+	const TInt sizeRequired = SendReceiveWithReconnect(aOpcode,TIpcArgs(aAppUid.iUid,buffer->Size(),&bufPtr));
+	User::LeaveIfError(sizeRequired); 	// Negative values are error codes
+	if (sizeRequired > 0)	// If the initial buffer was too small...
+		{
+		// (This should really never happen - the code below is a backup for release builds only
+		ASSERT(0); // so panic any debug builds)
+		
+		// ...create a bigger one and try again
+		CleanupStack::PopAndDestroy(buffer);
+		buffer = CBufFlat::NewL(sizeRequired);
+		CleanupStack::PushL(buffer);
+		buffer->ExpandL(0, sizeRequired);
+		bufPtr.Set(buffer->Ptr(0));
+		User::LeaveIfError(SendReceiveWithReconnect(aOpcode, TIpcArgs(aAppUid.iUid, buffer->Size(), &bufPtr)));
+		}
+	
+	// Create a read stream for reading from the buffer	
+	RBufReadStream readStream;
+	CleanupClosePushL(readStream);
+	readStream.Open(*buffer);
+	
+	// Get the item count from the stream and popoulate the array
+	const TInt count = readStream.ReadUint32L();
+	for (TInt i = 0; i < count; ++i)
+		aArray.AppendItemFromStreamL(readStream);
+
+	CleanupStack::PopAndDestroy(&readStream);
+	CleanupStack::PopAndDestroy(buffer);
+	}
 
 
 /** Gets the nearest matching application icon for the application with the specified 
@@ -1769,20 +645,18 @@
 	{
 	SReturnData_AppIconByUidAndSize returnData = {0,0};
 	TPckg<SReturnData_AppIconByUidAndSize> returnData_asDescriptor(returnData);
-	TInt error=SendReceiveWithReconnect(EAppListServAppIconByUidAndSize,TIpcArgs(aAppUid.iUid,aSize.iWidth,aSize.iHeight,&returnData_asDescriptor));
-	if (error==KErrNone)
+	TInt error = SendReceiveWithReconnect(EAppListServAppIconByUidAndSize, TIpcArgs(aAppUid.iUid,aSize.iWidth,aSize.iHeight,&returnData_asDescriptor));
+	if (!error)
 		{
-		error=aAppBitmap.Duplicate(returnData.iIcon);
-		if (error==KErrNone)
-			{
-			error=aAppBitmap.Mask()->Duplicate(returnData.iIconMask);
-			}
+		error = aAppBitmap.Duplicate(returnData.iIcon);
+		if (!error)
+			error = aAppBitmap.Mask()->Duplicate(returnData.iIconMask);
 		}
+
 	return error;
 	}
 
 
-
 /** 
  gets the bitmap handles from the Server, forms these up into a CApaMaskedBitmap
 
@@ -1805,21 +679,18 @@
 	__ASSERT_ALWAYS((aSize>=0) && (aSize<3), Panic(EDPanicBadIconSize));
 	SReturnData_AppIconByUid returnData = {0,0};
 	TPckg<SReturnData_AppIconByUid> returnData_asDescriptor(returnData);
-	TInt error=SendReceiveWithReconnect(EAppListServAppIconByUid,TIpcArgs(aAppUid.iUid,aSize,&returnData_asDescriptor));
-	if (error==KErrNone)
+	TInt error = SendReceiveWithReconnect(EAppListServAppIconByUid,TIpcArgs(aAppUid.iUid,aSize,&returnData_asDescriptor));
+	if (!error)
 		{
-		error=aAppBitmap.Duplicate(returnData.iIcon);
-		if (error==KErrNone)
-			{
-			error=aAppBitmap.Mask()->Duplicate(returnData.iIconMask);
-			}
+		error = aAppBitmap.Duplicate(returnData.iIcon);
+		if (!error)
+			error = aAppBitmap.Mask()->Duplicate(returnData.iIconMask);
 		}
+		
 	return error;
 	}
 
 
-	
-EXPORT_C TInt RApaLsSession::GetAppIcon(TUid aAppUid, RFile& aFile) const 
 /** Gets an open shareable read only file handle to the application icon file for the 
 application with the specified UID. 
 
@@ -1836,6 +707,7 @@
 or an icon filename was not defined; otherwise one of the other system wide error codes. 
 @see GetAppIcon 
 */ 
+EXPORT_C TInt RApaLsSession::GetAppIcon(TUid aAppUid, RFile& aFile) const 
 	{
 	__ASSERT_ALWAYS(aFile.SubSessionHandle() == KNullHandle, Panic(EDPanicHandleAlreadySet));
 	TPckgBuf<TInt> fileHandle;
@@ -1848,8 +720,6 @@
 	}   
 
 
-
-EXPORT_C TInt RApaLsSession::AppForDocument(const TDesC& aFileName, TUid& aAppUid, TDataType& aDataType) const
 /** Gets the data (MIME) type of the data in the specified file and gets the UID 
 of an application that can handle this type.
 
@@ -1859,6 +729,7 @@
 @param aDataType On return, the data (MIME) type.
 @return KErrNone, if successful; otherwise one of the other system-wide error 
 codes. */
+EXPORT_C TInt RApaLsSession::AppForDocument(const TDesC& aFileName, TUid& aAppUid, TDataType& aDataType) const
 	{
 	return DoAppForDocumentOptionallySpecifyingService(aFileName, TUid::Null(), aAppUid, aDataType, EAppListServAppForDocument);
 	}
@@ -1881,6 +752,7 @@
 	return DoAppForDocumentOptionallySpecifyingService(aFile, TUid::Null(), aAppUid, aDataType, EAppListServAppForDocumentPassedByFileHandle);
 	}
 
+
 /** Tests whether the file is a native executable (DLL or EXE).
 
 @param aFileName The name of the file containing the data.
@@ -1896,42 +768,7 @@
 	return KErrNone;
 	}
 
-/** Gets the confidence threshold for successful data recognition.
 
-This is the minimum acceptable confidence level that must be reported by a 
-data recognizer for data to be accepted as of a given type.
-
-@param aConfidence On return, the confidence threshold. 
-@return KErrNone, if successful; otherwise one of the other system-wide error 
-codes. 
-*/
-EXPORT_C TInt RApaLsSession::GetAcceptedConfidence(TInt& aConfidence) const
-	{
-	TPckg<TInt> confidence(aConfidence);
-	return SendReceiveWithReconnect(EAppListServGetConfidence,TIpcArgs(&confidence));
-	} //lint !e1764 Suppress reference parameter could be declared const ref
-
-
-
-/** Sets the confidence threshold for successful data recognition.
-
-This is the minimum acceptable confidence level that must be reported by a 
-data recognizer for data to be accepted as of a given type.
-
-@param aConfidence The confidence threshold. Although this is an integer value, 
-data recognizers use the discrete values defined by the CApaDataRecognizerType::TRecognitionConfidence 
-enumeration.
-@return KErrNone, if successful; otherwise one of the other system-wide error 
-codes. 
-@capability WriteDeviceData 
-*/
-EXPORT_C TInt RApaLsSession::SetAcceptedConfidence(TInt aConfidence)
-	{
-	return SendReceiveWithReconnect(EAppListServSetConfidence,TIpcArgs(aConfidence));
-	} //lint !e1762 Suppress member function could be made const
-
-
-EXPORT_C TInt RApaLsSession::GetPreferredBufSize(TInt& aPreferredBufSize) const
 /** Gets the preferred number of bytes of data to read from a file for the purpose 
 of recognizing the data type.
 
@@ -1944,17 +781,17 @@
 @return KErrNone, if successful; otherwise one of the other system-wide error 
 codes.
 @see GetMaxDataBufSize() */
+EXPORT_C TInt RApaLsSession::GetPreferredBufSize(TInt& aPreferredBufSize) const
 	{
-	const TInt preferredBufSize=SendReceiveWithReconnect(EAppListServPreferredBufSize, TIpcArgs());
-	if (preferredBufSize<KErrNone)
-		{
+	const TInt preferredBufSize = SendReceiveWithReconnect(EAppListServPreferredBufSize, TIpcArgs());
+	if (preferredBufSize < KErrNone)
 		return preferredBufSize; // it's an error
-		}
-	aPreferredBufSize=preferredBufSize;
+
+	aPreferredBufSize = preferredBufSize;
 	return KErrNone;
 	}
 
-EXPORT_C TInt RApaLsSession::GetMaxDataBufSize(TInt& aBufSize) const
+
 /** Gets the maximum size of the data that can be read from a file for the purpose 
 of recognizing the data type.
 
@@ -1967,18 +804,17 @@
 codes.
 @see SetMaxDataBufSize()
 @see GetPreferredBufSize() */
+EXPORT_C TInt RApaLsSession::GetMaxDataBufSize(TInt& aBufSize) const
 	{
-	const TInt returnValue=SendReceiveWithReconnect(EAppListServGetBufSize,TIpcArgs());
-	if (returnValue<0)
-		{
+	const TInt returnValue = SendReceiveWithReconnect(EAppListServGetBufSize, TIpcArgs());
+	if (returnValue < 0)
 		return returnValue;
-		}
-	aBufSize=returnValue;
+
+	aBufSize = returnValue;
 	return KErrNone;
 	}
 
 
-
 /** Sets the maximum size of the data that can be read from a file for the purpose 
 of recognizing the data type.
 
@@ -2002,36 +838,6 @@
 	} //lint !e1762 Suppress member function could be made const
 
 
-
-/** Gets a list of recognized data(MIME) types by all recognizers.
-
-@param aDataTypes The array of data (MIME) types.
-@return KErrNone, if successful; otherwise one of the other system-wide error 
-codes. 
-*/
-EXPORT_C TInt RApaLsSession::GetSupportedDataTypesL(CDataTypeArray& aDataTypes) const
-	{
-	// gets the datatype count in terms of buffer length; negative value means one of the system-wide error
-	TInt ret=SendReceiveWithReconnect(EAppListServGetDataTypesPhase1,TIpcArgs());
-	if (ret>0)
-		{
-		CBufFlat* const buf=CBufFlat::NewL(ret);
-		CleanupStack::PushL(buf);
-		buf->ExpandL(0,ret);
-		TPtr8 ptr=buf->Ptr(0);
-		ret=SendReceiveWithReconnect(EAppListServGetDataTypesPhase2,TIpcArgs(&ptr));
-		if (ret==KErrNone)
-			{
-			RBufReadStream readStream(*buf);
-			readStream >> aDataTypes;
-			}
-		CleanupStack::PopAndDestroy(buf);
-		}
-	return ret;
-	}
-
-
-
 /** Gets the icon for the specified view published by the application that has 
 the specified UID.
 
@@ -2052,20 +858,18 @@
 	const TPckgC<TApaAppViewIconSizeData> inputData(appViewIconSizeData);
 	SReturnData_ViewIconByUidAndSize returnData = {0,0};
 	TPckg<SReturnData_ViewIconByUidAndSize> returnData_asDescriptor(returnData);
-	TInt error=SendReceiveWithReconnect(EAppListServViewIconByUidAndSize,TIpcArgs(&inputData,&returnData_asDescriptor));
-	if (error==KErrNone)
+	TInt error = SendReceiveWithReconnect(EAppListServViewIconByUidAndSize,TIpcArgs(&inputData,&returnData_asDescriptor));
+	if (!error)
 		{
-		error=aViewBitmap.Duplicate(returnData.iIcon);
-		if (error==KErrNone)
-			{
-			error=aViewBitmap.Mask()->Duplicate(returnData.iIconMask);
-			}
+		error = aViewBitmap.Duplicate(returnData.iIcon);
+		if (!error)
+			error = aViewBitmap.Mask()->Duplicate(returnData.iIconMask);
 		}
+		
 	return error;
 	}
 
 
-
 /** Gets the views published by the application that has the specified UID.
 
 Information on each view is contained in a TApaAppViewInfo object, and this 
@@ -2091,7 +895,6 @@
 	}
 
 
-
 /** Gets the list of file names for which the application with the specified 
 UID claims ownership.
 
@@ -2112,7 +915,6 @@
 	}
 
 
-
 /** Gets the number of icons defined by the app that has the specified UID
 
 Applications that don't define icons in their application information file will
@@ -2127,16 +929,14 @@
 EXPORT_C TInt RApaLsSession::NumberOfOwnDefinedIcons(TUid aAppUid, TInt& aCount) const
 	{
 	TPckgBuf<TInt> pckg;
-	TInt ret=SendReceiveWithReconnect(EAppListServNumberOfOwnDefinedIcons,TIpcArgs(aAppUid.iUid,&pckg));
-	if (ret==KErrNone)
-		{
-		aCount=pckg();
-		}
-	return ret;
+	const TInt err = SendReceiveWithReconnect(EAppListServNumberOfOwnDefinedIcons,TIpcArgs(aAppUid.iUid,&pckg));
+	if (!err)
+		aCount = pckg();
+
+	return err;
 	}
 
 
-
 /** Gets the full filename of a file containing application icons for the
 application with the specified UID.
 
@@ -2155,25 +955,23 @@
 	{
 	TFileName fileName;
 	TPckg<TFileName> filenamePckg(fileName);
-	TInt ret=SendReceiveWithReconnect(EAppListServAppIconFileName, TIpcArgs(aAppUid.iUid, &filenamePckg));
-	if (ret==KErrNone)
+	const TInt err = SendReceiveWithReconnect(EAppListServAppIconFileName, TIpcArgs(aAppUid.iUid, &filenamePckg));
+	if (!err)
 		{
 		HBufC* fullFileName = HBufC::New(fileName.Length());
 		if (fullFileName == NULL)
-			{
 			return KErrNoMemory;
-			}
 		else
 			{
 			*fullFileName = fileName;
 			aFullFileName = fullFileName; // ownership transferred to caller
 			}
 		}
-	return ret;
+		
+	return err;
 	}
 
 
-
 /** Gets the full filename of a file containing view-specific icons for the application
 with the specified UID and view.
 
@@ -2194,25 +992,23 @@
 	{
 	TFileName fileName;
 	TPckg<TFileName> filenamePckg(fileName);
-	TInt ret=SendReceiveWithReconnect(EAppListServAppViewIconFileName, TIpcArgs(aAppUid.iUid, aViewUid.iUid, &filenamePckg));
-	if (ret==KErrNone)
+	const TInt err = SendReceiveWithReconnect(EAppListServAppViewIconFileName, TIpcArgs(aAppUid.iUid, aViewUid.iUid, &filenamePckg));
+	if (!err)
 		{
 		HBufC* fullFileName = HBufC::New(fileName.Length());
 		if (fullFileName == NULL)
-			{
 			return KErrNoMemory;
-			}
 		else
 			{
 			*fullFileName = fileName;
 			aFullFileName = fullFileName; // ownership transferred to caller
 			}
 		}
-	return ret;
+
+	return err;
 	}
 
 
-
 /** Changes an existing data type mapping, or adds a new one.
 
 If the data type is not currently mapped, a new mapping is added. 
@@ -2229,6 +1025,7 @@
 	return InsertDataMapping(aDataType, aPriority, aUid, KOpenServiceUid);
 	}
 
+
 /** Changes an existing data type mapping, or adds a new one.
 
 If the data type is not currently mapped, a new mapping is added. 
@@ -2240,6 +1037,8 @@
 @param aUid The UID of the application to associate with the data type.
 @param aServiceUid The UID of the service.
 @return KErrNone on success, or a system-wide error code. 
+@internalComponent
+@released
 */
 EXPORT_C TInt RApaLsSession::InsertDataMapping(const TDataType& aDataType, TDataTypePriority aPriority, 
 	TUid aUid, TUid aServiceUid)
@@ -2249,6 +1048,7 @@
 		TIpcArgs(&dataType, TInt(aPriority), aUid.iUid, aServiceUid.iUid));
 	} //lint !e1762 Suppress member function could be made const
 
+
 /** Changes an existing data type mapping, or adds a new one.
 If the data type is not currently mapped, it is added.
 If the data type is mapped with a priority lower than aPriority, the new mapping replaces the existing one. 
@@ -2265,12 +1065,11 @@
 	{
 	TPckgBuf<TBool> inserted(EFalse);
 	const TPckgC<TDataType> dataType(aDataType);
-	const TInt ret = SendReceiveWithReconnect(EAppListInsertDataMappingIfHigher, TIpcArgs(&dataType, TInt(aPriority), aUid.iUid, &inserted));
-	if(ret == KErrNone)
-		{
+	const TInt err = SendReceiveWithReconnect(EAppListInsertDataMappingIfHigher, TIpcArgs(&dataType, TInt(aPriority), aUid.iUid, &inserted));
+	if(!err)
 		aInserted = inserted();
-		}
-	return ret;
+		
+	return err;
 	} //lint !e1762 Suppress member function could be made const
 
 
@@ -2289,6 +1088,7 @@
 	return DeleteDataMapping(aDataType, KOpenServiceUid);
 	}
 
+
 /** Removes an existing data type mapping.
 
 @capability WriteDeviceData Prevent removal of data type mappings by malicious programs.
@@ -2296,12 +1096,15 @@
 @param aServiceUid The UID of the service.
 @panic USER 0 The specified data type cannot be found. Debug builds only.
 @return KErrNone on success, or a system-wide error code. 
+@internalComponent
+@released
 */
 EXPORT_C TInt RApaLsSession::DeleteDataMapping(const TDataType& aDataType, TUid aServiceUid)
 	{
 	const TPckgC<TDataType> dataType(aDataType);
 	return SendReceiveWithReconnect(EAppListDeleteDataMapping, TIpcArgs(&dataType, aServiceUid.iUid));
 	} //lint !e1762 Suppress member function could be made const
+
 	
 /** Gets the application associated with the data type and the service uid from
 the datatype store. 
@@ -2315,26 +1118,21 @@
 @param aServiceUid The UID of the service.
 @return KErrNone, if successful; otherwise one of the other system-wide error 
 codes. 
+@internalComponent
+@released
 */
 EXPORT_C TInt RApaLsSession::GetAppByDataType(const TDataType& aDataType, TUid aServiceUid, TUid& aAppUid) const
 	{
 	const TPckgC<TDataType> dataType(aDataType);
 	TPckg<TUid> uid(aAppUid);
-	const TInt returnValue=SendReceiveWithReconnect(EAppListServGetAppByDataType,TIpcArgs(&dataType, aServiceUid.iUid, &uid));
-	if (returnValue<0)
-		{
+	const TInt returnValue = SendReceiveWithReconnect(EAppListServGetAppByDataType,TIpcArgs(&dataType, aServiceUid.iUid, &uid));
+	if (returnValue < 0)
 		return returnValue;
-		}
-	if (aAppUid == KNullUid)
-		{
-		return KErrNotFound;
-		}
-	else
-		{
-		return KErrNone;
-		}
+	
+	return (aAppUid == KNullUid ? KErrNotFound : KErrNone);
 	} //lint !e1764 Suppress reference parameter 'aAppUid' could be declared const ref
 
+
 /** Determines the current language an application is using to display its
 user interface.
 @param aAppUid The application specific UID.
@@ -2345,14 +1143,14 @@
 EXPORT_C TInt RApaLsSession::ApplicationLanguage(TUid aAppUid, TLanguage& aLanguage) const
 	{
 	TPckgBuf<TLanguage> pckg;
-	TInt errVal = SendReceiveWithReconnect(EAppListServApplicationLanguage, TIpcArgs(aAppUid.iUid, &pckg));
-	if (errVal == KErrNone)
-		{
+	const TInt err = SendReceiveWithReconnect(EAppListServApplicationLanguage, TIpcArgs(aAppUid.iUid, &pckg));
+	if (!err)
 		aLanguage = pckg();
-		}
-	return errVal;
+
+	return err;
 	}
 
+
 /** Gets the services implemented by the application that has the specified
 application UID.
 
@@ -2378,13 +1176,13 @@
 EXPORT_C CApaAppServiceInfoArray* RApaLsSession::GetAppServicesLC(TUid aAppUid) const
 	{
 	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-	CleanupStack::PushL(TCleanupItem(CleanupServiceArray, serviceArray));
+	CleanupStack::PushL(TCleanupItem(CleanupAppServiceArray, serviceArray));
 	CBufBase* buffer = GetServiceBufferLC(EAppListServGetAppServices, aAppUid);
 	RBufReadStream readStream(*buffer);
 	readStream >> *serviceArray;
 	CleanupStack::PopAndDestroy(buffer);
 	CleanupStack::Pop(serviceArray);
-	CApaAppServiceInfoArrayWrapper* wrapper = CApaAppServiceInfoArrayWrapper::NewL(serviceArray); // takes ownership of serviceArray
+	CApaAppServiceInfoArrayImpl* wrapper = CApaAppServiceInfoArrayImpl::NewL(serviceArray); // takes ownership of serviceArray
 	CleanupStack::PushL(wrapper);
 	return wrapper;
 	}
@@ -2460,13 +1258,13 @@
 EXPORT_C CApaAppServiceInfoArray* RApaLsSession::GetServiceImplementationsLC(TUid aServiceUid) const
 	{
 	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-	CleanupStack::PushL(TCleanupItem(CleanupServiceArray, serviceArray));
+	CleanupStack::PushL(TCleanupItem(CleanupAppServiceArray, serviceArray));
 	CBufBase* buffer = GetServiceBufferLC(EAppListServGetServiceImplementations, aServiceUid);
 	RBufReadStream readStream(*buffer);
 	readStream >> *serviceArray;
 	CleanupStack::PopAndDestroy(buffer);
 	CleanupStack::Pop(serviceArray);
-	CApaAppServiceInfoArrayWrapper* wrapper = CApaAppServiceInfoArrayWrapper::NewL(serviceArray); // takes ownership of serviceArray
+	CApaAppServiceInfoArrayImpl* wrapper = CApaAppServiceInfoArrayImpl::NewL(serviceArray); // takes ownership of serviceArray
 	CleanupStack::PushL(wrapper);
 	return wrapper;
 	}
@@ -2495,13 +1293,13 @@
 */
 	{
 	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-	CleanupStack::PushL(TCleanupItem(CleanupServiceArray, serviceArray));
+	CleanupStack::PushL(TCleanupItem(CleanupAppServiceArray, serviceArray));
 	CBufBase* buffer = GetServiceBufferLC(EAppListServGetServiceImplementationsDataType, aServiceUid, aDataType);
 	RBufReadStream readStream(*buffer);
 	readStream >> *serviceArray;
 	CleanupStack::PopAndDestroy(buffer);
 	CleanupStack::Pop(serviceArray);
-	CApaAppServiceInfoArrayWrapper* wrapper = CApaAppServiceInfoArrayWrapper::NewL(serviceArray); // takes ownership of serviceArray
+	CApaAppServiceInfoArrayImpl* wrapper = CApaAppServiceInfoArrayImpl::NewL(serviceArray); // takes ownership of serviceArray
 	CleanupStack::PushL(wrapper);
 	return wrapper;
 	}
@@ -2554,19 +1352,18 @@
 EXPORT_C CApaAppServiceInfoArray* RApaLsSession::GetAppServiceOpaqueDataLC(TUid aAppUid, TUid aServiceUid) const
 	{
 	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
-	CleanupStack::PushL(TCleanupItem(CleanupServiceArray, serviceArray));
+	CleanupStack::PushL(TCleanupItem(CleanupAppServiceArray, serviceArray));
 	CBufBase* buffer = GetServiceBufferLC(EAppListServGetAppServiceOpaqueData, aAppUid, aServiceUid);
 	RBufReadStream readStream(*buffer);
 	readStream >> *serviceArray;
 	CleanupStack::PopAndDestroy(buffer);
 	CleanupStack::Pop(serviceArray);
-	CApaAppServiceInfoArrayWrapper* wrapper = CApaAppServiceInfoArrayWrapper::NewL(serviceArray); // takes ownership of serviceArray
+	CApaAppServiceInfoArrayImpl* wrapper = CApaAppServiceInfoArrayImpl::NewL(serviceArray); // takes ownership of serviceArray
 	CleanupStack::PushL(wrapper);
 	return wrapper;
 	}
 
 
-
 /** Gets the UID of an application that can handle the specified data (MIME) type and service.
 
 If no application can be found, the function returns the UID of the preferred 
@@ -2629,112 +1426,120 @@
 
 TInt RApaLsSession::DoAppForDocumentOptionallySpecifyingService(const TDesC& aFileName, TUid aServiceUid, TUid& aAppUid, TDataType& aDataType, TInt aOpcode) const
 	{
-	if (aFileName.Length()==0)
+	if (!aFileName.Length())
 		{
 		aAppUid = KNullUid;
 		return KErrNone;
 		}
-	HBufC8* buffer=NULL;
-	TInt error=GetBufferFromFile(buffer, aFileName);
-	if (error!=KErrNone)
-		{
+		
+	HBufC8* buffer = NULL;
+	TInt error = GetNewBufferFromFile(buffer, aFileName);
+	if (error)
 		return error;
-		}
+
 	SReturnData_AppForDocument returnData;
 	TPckg<SReturnData_AppForDocument> returnData_asDescriptor(returnData);
-	error=SendReceiveWithReconnect(aOpcode,TIpcArgs(&returnData_asDescriptor, aServiceUid.iUid, &aFileName, buffer));
+	error = SendReceiveWithReconnect(aOpcode, TIpcArgs(&returnData_asDescriptor, aServiceUid.iUid, &aFileName, buffer));
 	delete buffer;
-	buffer=NULL;
-	if (error==KErrNone)
+	buffer = NULL;
+	
+	if (!error)
 		{
-		aAppUid=returnData.iUid;
-		aDataType=returnData.iDataType;
+		aAppUid = returnData.iUid;
+		aDataType = returnData.iDataType;
 		}
+
 	return error;
 	}
 
+/**
+*/
 TInt RApaLsSession::DoAppForDocumentOptionallySpecifyingService(const RFile& aFile, TUid aServiceUid, TUid& aAppUid, TDataType& aDataType, TInt aOpcode) const
 	{
 	SReturnData_AppForDocument returnData;
 	TPckg<SReturnData_AppForDocument> returnData_asDescriptor(returnData);
 	TIpcArgs ipcArgs(&returnData_asDescriptor, aServiceUid.iUid);
-	TInt error=aFile.TransferToServer(ipcArgs, 2, 3);
-	if (error == KErrNone)
+	TInt error = aFile.TransferToServer(ipcArgs, 2, 3);
+	if (!error)
+		error = SendReceiveWithReconnect(aOpcode, ipcArgs);
+
+	if (!error)
 		{
-		error=SendReceiveWithReconnect(aOpcode, ipcArgs);
+		aAppUid = returnData.iUid;
+		aDataType = returnData.iDataType;
 		}
-	if (error==KErrNone)
-		{
-		aAppUid=returnData.iUid;
-		aDataType=returnData.iDataType;
-		}
+		
 	return error;
 	}
 
-TInt RApaLsSession::GetBufferFromFile(HBufC8*& aBuffer, const TDesC& aFileName) const
+/**
+*/
+TInt RApaLsSession::GetNewBufferFromFile(HBufC8*& aBuffer, const TDesC& aFileName) const
 	{
-	TInt preferredBufSize=0;
-	const TInt error=GetPreferredBufSize(preferredBufSize);
-	if (error<KErrNone)
-		{
+	aBuffer = NULL;
+	TInt preferredBufSize = 0;
+	const TInt error = GetPreferredBufSize(preferredBufSize);
+	if (error < KErrNone)
 		return error;
-		}
-	HBufC8* const buffer=HBufC8::New(Max(8, preferredBufSize)); // 8 is a sensible minimum
-	if (buffer==NULL)
-		{
+
+	HBufC8* const buffer = HBufC8::New(Max(8, preferredBufSize)); // 8 is a sensible minimum
+	if (!buffer)
 		return KErrNoMemory;
-		}
-	const RFs* fsSession=FsSession();
+
+	const RFs* fsSession = FsSession();
 	RFs tempFsSession;
-	if (fsSession==NULL)
+	if (!fsSession)
 		{
-		const TInt error=tempFsSession.Connect();
-		if (error!=KErrNone)
+		const TInt error = tempFsSession.Connect();
+		if (error)
 			{
 			delete buffer;
 			return error;
 			}
-		fsSession=&tempFsSession;
+
+		fsSession = &tempFsSession;
 		}
+		
 	if (fsSession->IsValidName(aFileName))
 		{
 		TPtr8 buffer_asWritable(buffer->Des());
-		const TInt error=fsSession->ReadFileSection(aFileName, 0, buffer_asWritable, preferredBufSize);
-		if (error!=KErrNone)
+		const TInt error = fsSession->ReadFileSection(aFileName, 0, buffer_asWritable, preferredBufSize);
+		if (error)
 			{
 			delete buffer;
 			tempFsSession.Close();
 			return error;
 			}
 		}
-	if (fsSession==&tempFsSession)
-		{
+		
+	if (fsSession == &tempFsSession)
 		tempFsSession.Close();
-		}
-	aBuffer=buffer;
+		
+	aBuffer = buffer;
 	return KErrNone;
 	}
 
-EXPORT_C void RApaLsSession::SetFsSessionL(RFs& aFsSession)
+
 /**
 @internalTechnology
 */
+EXPORT_C void RApaLsSession::SetFsSessionL(RFs& aFsSession)
 	{ // static
 	User::LeaveIfError(Dll::SetTls(&aFsSession));
 	}
 
-EXPORT_C void RApaLsSession::ClearFsSession()
 /**
 @internalTechnology
 */
+EXPORT_C void RApaLsSession::ClearFsSession()
 	{ // static
 	Dll::FreeTls();
 	}
 
+/**
+@internalTechnology
+*/
 EXPORT_C RFs* RApaLsSession::FsSession()
-/**
-@internalComponent
-*/
 	{ // static
 	return static_cast<RFs*>(Dll::Tls());
 	}
@@ -2799,6 +1604,7 @@
 
 		CleanupStack::PopAndDestroy(parser);
 		}
+		
 	aRegistrationResourceFile.GenerateFileContentsL(ipcParameter0); // must be done after the aRegistrationResourceFile.SetLocalisableResourceFileL call (if there is one)
 	SNonNativeApplicationInfo nonNativeApplicationInfo;
 	nonNativeApplicationInfo.iApplicationType=aApplicationType;
@@ -2832,7 +1638,7 @@
 	TIpcArgs ipcArgs(EFalse, 0, 0, 0);
 	User::LeaveIfError(SendReceiveWithReconnect(EAppListServCommitNonNativeApplications, ipcArgs));
 	} //lint !e1762 Suppress member function could be made const
-
+	
 
 /**
 Commits the non-native application updates. This is an asynchronous method which will not wait until 
@@ -2866,16 +1672,18 @@
 	return SendReceiveWithReconnect(EAppListServRollbackNonNativeApplications, ipcArgs);
 	} //lint !e1762 Suppress member function could be made const
 
+/**
+@internalTechnology 
+*/
 EXPORT_C void RApaLsSession::SetNotify(TBool aCompleteImmediatelyIfNoScanImpendingOrInProgress, TRequestStatus& aStatus)
-/**
-@internalTechnology */
 	{
 	SendReceive(ESetNotify,TIpcArgs(aCompleteImmediatelyIfNoScanImpendingOrInProgress),aStatus);
 	} //lint !e1762 Suppress member function could be made const
 
+/**
+@internalTechnology 
+*/
 EXPORT_C void RApaLsSession::CancelNotify()
-/**
-@internalTechnology */
 	{
 	SendReceive(ECancelNotify,TIpcArgs());
 	} //lint !e1762 Suppress member function could be made const
@@ -2918,17 +1726,20 @@
 	{
 	CBufFlat* buffer = 0;
 	TRAPD(err, buffer = CreateRegFilesBufferL(aRegFiles));
-	if (err != KErrNone)
-		{
+	if (err)
 		return err;
-		}
+	
 	TPtr8 ptr = buffer->Ptr(0);
 	const TInt returnValue=SendReceiveWithReconnect(EAppListServForceRegistration,TIpcArgs(&ptr));
 	delete buffer;
 	return returnValue;
 	} //lint !e1762 Suppress member function could be made const
 	
-TInt RApaLsSession::SendReceiveWithReconnect(TInt aFunction,const TIpcArgs& aIpcArgs) const
+	
+/**
+Make a call to AppArc server's aFunction, passing it aIpcArgs.
+*/
+TInt RApaLsSession::SendReceiveWithReconnect(TInt aFunction, const TIpcArgs& aIpcArgs) const
 	{
 	TInt ret = SendReceive(aFunction, aIpcArgs);
 	if(ret != KErrServerTerminated)
@@ -2954,27 +1765,29 @@
 	FetchArrayL(arrayFiller, aAppUid, EAppListServGetFileOwnershipInfo, KInitialOwnedFilesBufSize);
 	}
 
-EXPORT_C void RApaLsSession::RegisterListPopulationCompleteObserver(TRequestStatus& aStatus) const
+
 /** Registers an observer with apparc server to notify when the initial population of applist is completed
 
 @param aStatus Request status object. On successful completion contains KErrNone, otherwise one of the 
 system-wide error codes. 
 @see CancelListPopulationCompleteObserver()
 */
+EXPORT_C void RApaLsSession::RegisterListPopulationCompleteObserver(TRequestStatus& aStatus) const
 	{
 	SendReceive(ERegisterListPopulationCompleteObserver,TIpcArgs(TIpcArgs::ENothing),aStatus);
 	}
 
-EXPORT_C TInt RApaLsSession::CancelListPopulationCompleteObserver() const
+
 /** Cancels the observer registered with apparc server to notify when the initial population of applist is completed
  
 @return KErrNone, if successful; otherwise one of the system-wide error codes. 
 */
+EXPORT_C TInt RApaLsSession::CancelListPopulationCompleteObserver() const
 	{
 	return SendReceiveWithReconnect(ECancelListPopulationCompleteObserver,TIpcArgs(TIpcArgs::ENothing));
 	}
 
-EXPORT_C TInt RApaLsSession::MatchesSecurityPolicy(TBool& aMatches, TUid aAppUid, const TSecurityPolicy& aSecurityPolicy) const
+
 /** Tests whether the given TSecurityPolicy matches with the application TSecurityPolicy.
 
 @param aMatches On return, contains the result. ETrue if the application TSecurityPolicy matches the given TSecurityPolicy or else EFalse
@@ -2983,17 +1796,18 @@
 @return KErrNone, if successful; otherwise one of the other system-wide error codes.
 @see TSecurityPolicy
 */
+EXPORT_C TInt RApaLsSession::MatchesSecurityPolicy(TBool& aMatches, TUid aAppUid, const TSecurityPolicy& aSecurityPolicy) const
 	{
 	const TPckgC<TSecurityPolicy> securityPolicy(aSecurityPolicy);
 	const TInt result = SendReceiveWithReconnect(EMatchesSecurityPolicy,TIpcArgs(aAppUid.iUid, &securityPolicy));
 
 	if (result>=0)
-		{
 		aMatches = result;
-		}
+
 	return result;
 	}
 
+
 EXPORT_C void RApaLsSession::RApaLsSession_Reserved1()
 	{
 	}
@@ -3002,7 +1816,7 @@
 	{
 	}
 	
-EXPORT_C void RApaLsSession::NotifyOnDataMappingChange(TRequestStatus& aRequestStatus)
+
 /** Notification of changes in data-type mapping
 
 This asynchronous function (whose corresponding "cancel" operation is CancelNotifyOnDataTypeMappingChange) completes when any data-type / application-UID association changes, i.e. when the default application handling a particular MIME-type changes.
@@ -3010,20 +1824,23 @@
 @param aRequestStatus As is normal for an asynchronous operation, this object is set to something other than KRequestPending when the asynchronous operation that has been triggered by this function completes.
 @see CancelNotifyOnDataTypeMappingChange
 */
+EXPORT_C void RApaLsSession::NotifyOnDataMappingChange(TRequestStatus& aRequestStatus)
 	{
 	SendReceive(ENotifyOnDataMappingChange,TIpcArgs(), aRequestStatus);
  	} //lint !e1762 Suppress member function could be made const
+
  	
-EXPORT_C void RApaLsSession::CancelNotifyOnDataMappingChange()
 /** Cancellation of notification of changes in data-type mapping
 
 This cancels the outstanding the NotifyOnDataTypeMappingChange issued by this client, if there is one outstanding. Otherwise it does nothing.
 @see NotifyOnDataTypeMappingChange
 */
+EXPORT_C void RApaLsSession::CancelNotifyOnDataMappingChange()
 	{
 	SendReceive(ECancelNotifyOnDataMappingChange,TIpcArgs());
 	} //lint !e1762 Suppress member function could be made const
 
+
 CBufFlat* RApaLsSession::CreateRegFilesBufferL(const RPointerArray<TDesC>& aRegFiles)
 	{
 	// Serialize the array
@@ -3050,47 +1867,9 @@
 		writeStream.WriteUint32L(aRegFiles[index]->Length());
 		writeStream.WriteL(*aRegFiles[index]);
 		}
+
 	writeStream.CommitL();
 	CleanupStack::PopAndDestroy(&writeStream);
 	CleanupStack::Pop(buffer);
 	return buffer;
 	}
-
-// TSizeArrayFiller
-
-void TSizeArrayFiller::AppendItemL(RReadStream& aReadStream)
-	{
-	TSize size;
-	size.iWidth =aReadStream.ReadUint32L();
-	size.iHeight=aReadStream.ReadUint32L();
-	iArray.AppendL(size);
-	}
-
-
-
-// TViewDataArrayFiller
-
-void TViewDataArrayFiller::AppendItemL(RReadStream& aReadStream)
-	{
-	TApaAppViewInfo info;
-	aReadStream >> info;
-	iArray.AppendL(info);
-	}
-
-
-
-// TDesCArrayFiller
-
-void TDesCArrayFiller::AppendItemL(RReadStream& aReadStream)
-	{
-	TFileName info;
-	aReadStream >> info;
-	iArray.AppendL(info);
-	}
-
-/* @internalComponent
-*/
-EXPORT_C TUint MinApplicationStackSize()
-	{
-	return KMinApplicationStackSize;
-	}
--- a/localisation/apparchitecture/apgrfx/APGCTL.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGCTL.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -14,6 +14,11 @@
 //
 
 #include <e32uid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APGCTL_LIST_H__)
+#include "apgctllist.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "APGCTL.H"
 #include "APGICNFL.H" 
 #include "APGSTD.H" 
@@ -22,9 +27,9 @@
 #include "APGCLI.H"
 #include "APACMDLN.H"
 
-///////////////////////////////////////////
+//
 // CApaSystemControl
-///////////////////////////////////////////
+//
 
 CApaSystemControl* CApaSystemControl::NewL(RFs& aFs,const TDesC& aFullPath,const TUidType aUidType)
 	{
@@ -157,9 +162,9 @@
 		return *iCaption;
 	}
 
-///////////////////////////////////////////
+//
 // CApaSystemControlList
-///////////////////////////////////////////
+//
 
 EXPORT_C CApaSystemControlList* CApaSystemControlList::NewL(RFs& aFs)
 /** Allocates and constructs a control panel application list. After construction, 
@@ -250,7 +255,7 @@
 EXPORT_C CApaSystemControl* CApaSystemControlList::Control(TUid aType)const
 /** Gets the control panel application in the list with the specified UID. 
 
-@param aType The control panel application's third UID. 
+@param aType The control panel applications third UID. 
 @return The control panel application whose type matches aType, or null 
 if none match. */
 
@@ -398,3 +403,4 @@
 CApaSystemControlList::CApaSystemControlList(RFs& aFs):iFs(aFs)
 	{
 	}
+
--- a/localisation/apparchitecture/apgrfx/APGDOOR.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGDOOR.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,10 +11,18 @@
 // Contributors:
 //
 // Description:
+// apgdoor.cpp
 //
 
 #include <s32stor.h>
 #include <fbs.h>
+#include <e32def_private.h> // MattR addition for __PROFILE_END error
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
 #include "APGDOOR.H"
 #include "APGICNFL.H"
@@ -31,9 +39,9 @@
 // default icon size only used if door was created by a model door, set to glass, but does not support glass
 #define KDefaultIconSizeInTwips TSize(500,500)
 
-///////////////////////////////////////////
+//
 // CApaDoor
-///////////////////////////////////////////
+//
 
 EXPORT_C CApaDoor* CApaDoor::NewLC(RFs& aFs, CApaDocument& aDoc,const TSize& aDefaultIconSizeInTwips)
 /** Creates a new wrapper for the specified embedded document and places a
@@ -95,13 +103,13 @@
 	iApaProcess(aDoc.Process()),
 	iApaDoc(&aDoc),
 	iIconSizeInTwips(aDefaultIconSizeInTwips)
-	{__DECLARE_NAME(_S("CApaDoor"));}
+	{}
 
 
 CApaDoor::CApaDoor(RFs& aFs, CApaProcess& aProcess)
 	:iFs(aFs),
 	iApaProcess(&aProcess)
-	{__DECLARE_NAME(_S("CApaDoor"));}
+	{}
 
 
 EXPORT_C CApaDoor::~CApaDoor()
@@ -781,9 +789,9 @@
 	}
 
 
-///////////////////////////////////
+//
 // TApaPictureFactory
-///////////////////////////////////
+//
 
 #define KDoNotApplyIconSize TSize(-1,-1)
 
@@ -847,9 +855,9 @@
 	}
 
 
-////////////////////////////////////
+//
 // HBufBuf
-////////////////////////////////////
+//
 
 HBufBuf* HBufBuf::NewL(CBufBase& aBuf,TInt aPos,TInt aMode)
 //
@@ -868,3 +876,4 @@
 	{
 	delete this;
 	}
+
--- a/localisation/apparchitecture/apgrfx/APGICNFL.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGICNFL.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,6 +11,7 @@
 // Contributors:
 //
 // Description:
+// apgicnfl.cpp
 //
 
 #include <e32std.h>
@@ -21,26 +22,20 @@
 #include <barsc.h>
 #include <barsread2.h>
 #include <barsc2.h>
-#include <apfdef.h>
-#include "APGAIR.H"
+#include "APFDEF.H"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APGICNFL_PARTNER_H__)
+#include "apgicnflpartner.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+
 
 #ifdef _DEBUG
 #include "APGSTD.H" // panic codes
 #endif // _DEBUG
 
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-// the two #defines immediately below are #defined to "nothing" so that only the minimal set of functions that ought to be "removed" because of SYMBIAN_REMOVE_UI_FRAMEWORKS_V1 (but which are needed still because of UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER) are actually exported
-#define IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER
-#define EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER
-#endif // UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
-
 #include "APGICNFL.H"
 
-#if !defined(EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER)
-// we're compiling a source file that doesn't define EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER, so give it it's default "value" of "EXPORT_C"
-#define EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER EXPORT_C
-#endif
-
 //
 // Try and reduce the bitmap mask depth to 1bpp (2 colours)
 //
@@ -111,9 +106,9 @@
 
 void CApaMaskedBitmap::ConstructL()
 	{
-	__DECLARE_NAME(_S("CApaMaskedBitmap"));
 	if (!iFbs)
 		User::Leave(KErrCouldNotConnect);
+	
 	iMask=new(ELeave) CFbsBitmap;
 	}
 
@@ -180,1138 +175,9 @@
 	iMask = aMask;
 	}
 
-
-
-#if (defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER))
-
-
-
-//
-// Class CApaAIFCaption
-//
-
-CApaAIFCaption::~CApaAIFCaption()
-	{
-	delete iCaption;
-	}
-
-CApaAIFCaption* CApaAIFCaption::NewLC(TLanguage aLanguage,const TDesC& aCaption)
-	// static
-	{
-	CApaAIFCaption* self=new(ELeave) CApaAIFCaption;
-	CleanupStack::PushL(self);
-	self->ConstructL(aLanguage,aCaption);
-	return self;
-	}
-
-void CApaAIFCaption::ConstructL(TLanguage aLanguage,const TDesC& aCaption)
-	{
-	iLanguage=aLanguage;
-    HBufC* newCaption=aCaption.AllocL();
-	delete(iCaption); // after the AllocL succeeds
-	iCaption=newCaption;
-	}
-
-TLanguage CApaAIFCaption::Language() const
-	{
-	return iLanguage;
-	}
-
-TApaAppCaption CApaAIFCaption::Caption() const
-	{
-	return *iCaption;
-	}
-
-CApaAIFCaption::CApaAIFCaption()
-	{
-	}
-
-void CApaAIFCaption::InternalizeL(RReadStream& aStream)
-	{
-	HBufC* newCaption=HBufC::NewL(aStream,KApaMaxAppCaption);
-	delete(iCaption);
-	iCaption=newCaption;
-	iLanguage=(TLanguage)aStream.ReadInt16L();
-	}
-
-void CApaAIFCaption::ExternalizeL(RWriteStream& aStream) const
-	{
-	aStream << *iCaption;
-	aStream.WriteInt16L(iLanguage);
-	}
-
-
-//
-// Class CApaAIFViewData
-//
-
-CApaAIFViewData::~CApaAIFViewData()
-	{
-	if (iCaptionArray)
-		iCaptionArray->ResetAndDestroy();
-	delete iCaptionArray;
-	if (iIconArray)
-		iIconArray->ResetAndDestroy();
-	delete iIconArray;
-	delete iIconIndexArray;
-	}
-
-CApaAIFViewData::CApaAIFViewData()
-	{}
-
-void CApaAIFViewData::ConstructL()
-	{
-	iCaptionArray=new(ELeave) CArrayPtrFlat<CApaAIFCaption>(4);
-	iIconArray=new(ELeave) CArrayPtrFlat<CApaMaskedBitmap>(4);
-	}
-
-CApaAIFViewData* CApaAIFViewData::NewLC()
-	// static
-	{
-	CApaAIFViewData* self=new(ELeave) CApaAIFViewData;
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;
-	}
-
-CApaAIFViewData* CApaAIFViewData::NewLC(const CApaAIFViewData& aSourceData)
-	{
-	CApaAIFViewData* self = CApaAIFViewData::NewLC();
-	self->ConstructL(aSourceData);
-	return self;
-	}
-
-void CApaAIFViewData::ConstructL(const CApaAIFViewData& aSourceData)
-	{
-	// Make a copy of aSourceData in this object
-	// N.B. this is not an atomic operation and if the function leaves
-	// there is no guarantee that this object will be in a valid state.
-	// Should only be called from CApaAIFViewData::NewLC(const CApaAIFViewData& aSourceData)
-	//
-	// Screen mode
-	iScreenMode = aSourceData.iScreenMode;
-	// Icon array
-	TInt count = (aSourceData.iIconArray ? aSourceData.iIconArray->Count() : 0);
-	TInt i;
-	for (i=0; i < count; i++)
-		{
-		// Get the icon from array and duplicate it
-		const CApaMaskedBitmap& srcIcon = (*aSourceData.iIconArray->At(i));
-		CApaMaskedBitmap* icon = CApaMaskedBitmap::NewLC();
-		User::LeaveIfError(icon->Duplicate(srcIcon.Handle()));
-
-		CFbsBitmap* mask = new(ELeave) CFbsBitmap();
-		CleanupStack::PushL(mask);
-		User::LeaveIfError(mask->Duplicate(srcIcon.Mask()->Handle()));
-		icon->SetMaskBitmap(mask);
-		CleanupStack::Pop(mask);
-
-		iIconArray->AppendL(icon);
-		CleanupStack::Pop(icon);
-		}
-	// Caption array
-	count = (aSourceData.iCaptionArray ? aSourceData.iCaptionArray->Count() : 0);
-	for (i=0; i < count; i++)
-		{
-		const CApaAIFCaption& srcCaption = (*aSourceData.iCaptionArray->At(i));
-		CApaAIFCaption* caption = CApaAIFCaption::NewLC(srcCaption.Language(), srcCaption.Caption());
-		iCaptionArray->AppendL(caption);
-		CleanupStack::Pop(caption);
-		}
-	// View UID
-	iViewUid = aSourceData.iViewUid;
-	// Icon index array
-	count = (aSourceData.iIconIndexArray ? aSourceData.iIconIndexArray->Count() : 0);
-	for (i=0; i < count; i++)
-		{
-		AddIconIndexL(aSourceData.iIconIndexArray->At(i));
-		}
-	}
-
-void CApaAIFViewData::LoadIconsL(const TDesC& aFileName, TUint aMbmOffset)
-	{
-	// This function is called when loading the AIF version 2 format
-	// When loading the RSC block, any view icons will have been added to iIconIndexArray as MBM indexes.
-	// This function loads the view icons from the MBM using these indexes.
-	__ASSERT_DEBUG(iIconArray->Count()==0,Panic(EDPanicArrayNotEmpty));
-	const TInt iconCount = (iIconIndexArray ? iIconIndexArray->Count() : 0);
-	for (TInt i=0; i < iconCount; i++)
-		{
-		const TInt mbmIndex = iIconIndexArray->At(i) * 2;	// Each icon is a mask and bitmap == 2 items in MBM
-		CApaMaskedBitmap* icon = CApaMaskedBitmap::NewLC();
-		CFbsBitmap* mask = new(ELeave) CFbsBitmap();
-		CleanupStack::PushL(mask);
-		User::LeaveIfError(icon->Load(aFileName, mbmIndex, ETrue, aMbmOffset));
-		User::LeaveIfError(mask->Load(aFileName, mbmIndex + 1, ETrue, aMbmOffset));
-		icon->SetMaskBitmap(mask);
-		CleanupStack::Pop(mask);
-		iIconArray->AppendL(icon);
-		CleanupStack::Pop(icon);
-		}
-	}
-
-void CApaAIFViewData::InternalizeL(RReadStream& aStream)
-	{
-	// Uid
-	iViewUid.iUid=aStream.ReadInt32L();
-	// Screen mode
-	iScreenMode=aStream.ReadInt32L();
-	// Captions
-	if (iCaptionArray)
-		iCaptionArray->ResetAndDestroy();
-	else
-		iCaptionArray=new(ELeave) CArrayPtrFlat<CApaAIFCaption>(1);
-	TCardinality card;
-	aStream>>card;
-	const TInt captionCount(card);
-	CApaAIFCaption* caption=NULL;
-	for (TInt ii=0;ii<captionCount;ii++)
-		{
-		caption=new(ELeave) CApaAIFCaption();
-		CleanupStack::PushL(caption);
-		aStream >> *caption;
-		iCaptionArray->AppendL(caption);
-		CleanupStack::Pop(caption);
-		}
-	// Icons
-	if (iIconArray)
-		iIconArray->ResetAndDestroy();
-	else
-		iIconArray=new(ELeave) CArrayPtrFlat<CApaMaskedBitmap>(2);
-	aStream>>card;
-	const TInt iconCount(card);
-	CApaMaskedBitmap* icon=NULL;
-	for (TInt jj=0;jj<iconCount;jj++)
-		{
-		icon=CApaMaskedBitmap::NewLC();
-		aStream >> *icon;
-		iIconArray->AppendL(icon);
-		CleanupStack::Pop(icon);
-		}
-	}
-
-void CApaAIFViewData::ExternalizeL(RWriteStream& aStream) const
-	{
-	// Uid
-	aStream.WriteInt32L(iViewUid.iUid);
-	// Screen Mode
-	aStream.WriteInt32L(iScreenMode);
-	// Captions
-	const TInt captionCount=iCaptionArray->Count();
-	aStream<<TCardinality(captionCount);
-	for (TInt ii=0;ii<captionCount;ii++)
-		{
-		aStream << *((*iCaptionArray)[ii]);
-		}
-	// Icons
-	const TInt iconCount=iIconArray->Count();
-	aStream<<TCardinality(iconCount);
-	for (TInt jj=0;jj<iconCount;jj++)
-		{
-		aStream << *((*iIconArray)[jj]);
-		}
-	}
-
-void CApaAIFViewData::SetScreenMode(TInt aScreenMode)
-	{
-	iScreenMode=aScreenMode;
-	}
-
-void CApaAIFViewData::AddCaptionL(TLanguage aLanguage,const TDesC& aCaption)
-	{
-	CApaAIFCaption* caption=CApaAIFCaption::NewLC(aLanguage,aCaption);
-	iCaptionArray->AppendL(caption);
-	CleanupStack::Pop(caption);
-	}
-
-void CApaAIFViewData::AddIconL(CApaMaskedBitmap& aIcon)
-	{
-	CApaMaskedBitmap* icon=CApaMaskedBitmap::NewL(&aIcon);
-	CleanupStack::PushL(icon);
-	iIconArray->AppendL(icon);
-	CleanupStack::Pop(icon);
-	}
-
-void CApaAIFViewData::AddIconIndexL(TInt aIndex)
-	{
-	if (!iIconIndexArray)
-		{
-		iIconIndexArray = new(ELeave) CArrayFixFlat<TInt>(4);
-		}
-	iIconIndexArray->AppendL(aIndex);
-	}
-
-void CApaAIFViewData::SetViewUid(TUid aUid)
-	{
-	iViewUid=aUid;
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TApaAppCaption CApaAIFViewData::CaptionL(TLanguage aLanguage) const
-	{
-	RFs fs;
-	CleanupClosePushL(fs);
-	User::LeaveIfError(fs.Connect());
-	RArray<TLanguage> downgradePath;
-	CleanupClosePushL(downgradePath);
-	BaflUtils::GetDowngradePathL(fs,aLanguage,downgradePath);
-	TApaAppCaption result(KNullDesC);
-	const TInt languagecount=downgradePath.Count();
-	const TInt count=iCaptionArray->Count();
-	for (TInt j=0; j<languagecount; j++)
-		{
-		for (TInt ii=0;ii<count;ii++)
-			{
-			const CApaAIFCaption& caption=*(*iCaptionArray)[ii];
-			if (caption.Language()==downgradePath[j])
-				{
-				result=caption.Caption();
-				j=languagecount; // to exit outer loop
-				break;
-				}
-			}
-		}
-	CleanupStack::PopAndDestroy(2, &fs);
-	return result;
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaMaskedBitmap* CApaAIFViewData::IconByIndexL(TInt aIndex) const
-	{
-	return (*iIconArray)[aIndex];
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TInt CApaAIFViewData::NumberOfIcons() const
-	{
-	return (iIconIndexArray ? iIconIndexArray->Count() : iIconArray->Count());
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TUid CApaAIFViewData::ViewUid() const
-	{
-	return iViewUid;
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TInt CApaAIFViewData::ScreenMode() const
-	{
-	return iScreenMode;
-	}
-
-//
-// Class CApaAppInfoFile
-//
-
-CApaAppInfoFile::CApaAppInfoFile(RFs& aFs)
-:iFs(aFs)
-	{}
-
-void CApaAppInfoFile::TCaptionHeader::InternalizeL(RReadStream& aStream)
-	{
-	aStream >> iCaption;
-	iLanguage=(TLanguage)aStream.ReadInt16L();
-	}
-
-void CApaAppInfoFile::TCaptionHeader::ExternalizeL(RWriteStream& aStream) const
-	{
-	aStream	<< iCaption;
-	aStream.WriteInt16L(iLanguage);
-	}
-
-void CApaAppInfoFile::TIconHeader::InternalizeL(RReadStream& aStream)
-	{
-	aStream >> iIcon;
-	iIconSideInPixels=aStream.ReadInt16L();
-	}
-
-void CApaAppInfoFile::TIconHeader::ExternalizeL(RWriteStream& aStream) const
-	{
-	aStream	<< iIcon;
-	aStream.WriteInt16L(iIconSideInPixels);
-	}
-
-void CApaAppInfoFile::TDataTypeHeader::InternalizeL(RReadStream& aStream)
-	{
-	aStream >> iDataType;
-	iPriority=aStream.ReadInt16L();
-	}
-
-void CApaAppInfoFile::TDataTypeHeader::ExternalizeL(RWriteStream& aStream) const
-	{
-	aStream << iDataType;
-	aStream.WriteInt16L(iPriority);
-	}
-
-void CApaAppInfoFile::TViewDataHeader::InternalizeL(RReadStream& aStream)
-	{
-	aStream >> iViewData;
-	}
-
-void CApaAppInfoFile::TViewDataHeader::ExternalizeL(RWriteStream& aStream) const
-	{
-	aStream << iViewData;
-	}
-
-void CApaAppInfoFile::TFileOwnershipInfoHeader::InternalizeL(RReadStream& aStream)
-	{
-	aStream >> iOwnedFileName;
-	}
-
-void CApaAppInfoFile::TFileOwnershipInfoHeader::ExternalizeL(RWriteStream& aStream) const
-	{
-	aStream	<< iOwnedFileName;
-	}
-
-CApaAppInfoFile::~CApaAppInfoFile()
-	{
-	if (iCaptionHeaderArray)
-		{
-		const TInt maxIndex=iCaptionHeaderArray->Count() - 1;
-		for(TInt i=maxIndex; i>=0; i--)
-			{
-			const TSwizzle<HBufC>& caption = iCaptionHeaderArray->At(i).iCaption; 
-			if (caption.IsPtr())
-				{
-				delete caption.AsPtr();
-				iCaptionHeaderArray->Delete(i);
-				}
-			}
-		}
-	delete iCaptionHeaderArray;
-	delete iIconHeaderArray;
-	if (iDataTypeHeaderArray)
-		{
-		const TInt maxIndex=iDataTypeHeaderArray->Count() - 1;
-		for(TInt i=maxIndex; i>=0; i--)
-			{
-			const TSwizzle<TDataType>& dataType = iDataTypeHeaderArray->At(i).iDataType;
-			if (dataType.IsPtr())
-				{
-				delete dataType.AsPtr();
-				iDataTypeHeaderArray->Delete(i);
-				}
-			}
-		}
-	delete iDataTypeHeaderArray;
-	if (iViewDataHeaderArray)
-		{
-		const TInt maxIndex=iViewDataHeaderArray->Count() - 1;
-		for(TInt i=maxIndex; i>=0; i--)
-			{
-			const TSwizzle<CApaAIFViewData>& viewData = iViewDataHeaderArray->At(i).iViewData;
-			if (viewData.IsPtr())
-				{
-				delete viewData.AsPtr();
-				iViewDataHeaderArray->Delete(i);
-				}
-			}
-		}
-	delete iViewDataHeaderArray;
-	if (iFileOwnershipInfoHeaderArray)
-		{
-		const TInt maxIndex=iFileOwnershipInfoHeaderArray->Count() - 1;
-		for(TInt i=maxIndex; i>=0; i--)
-			{
-			const TSwizzle<HBufC>& fileName = iFileOwnershipInfoHeaderArray->At(i).iOwnedFileName;
-			if (fileName.IsPtr())
-				{
-				delete fileName.AsPtr();
-				iFileOwnershipInfoHeaderArray->Delete(i);
-				}
-			}
-		}
-	delete iFileOwnershipInfoHeaderArray;
-	delete iStore;
-	}
-
-void CApaAppInfoFile::ConstructL()
-	{
-	iCaptionHeaderArray=new(ELeave) CArrayFixFlat<TCaptionHeader>(4);
-	iIconHeaderArray=new(ELeave) CArrayFixFlat<TIconHeader>(4);
-	iDataTypeHeaderArray=new(ELeave) CArrayFixFlat<TDataTypeHeader>(4);
-	iViewDataHeaderArray=new(ELeave) CArrayFixFlat<TViewDataHeader>(4);
-	iFileOwnershipInfoHeaderArray=new(ELeave) CArrayFixFlat<TFileOwnershipInfoHeader>(4);
-	}
-
-//
-// Class CApaAppInfoFileReader
 //
-
-CApaAppInfoFileReader::CApaAppInfoFileReader(RFs& aFs)
-	:CApaAppInfoFile(aFs)
-	{}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaAppInfoFileReader::~CApaAppInfoFileReader()
-/** Destructor.
-
-Destroys all resources owned by the aif file reader. */
-	{
-	delete iDefaultCaption;
-	delete iAifFileName;
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaAppInfoFileReader* CApaAppInfoFileReader::NewLC(RFs& aFs, const TDesC& aFileName,TUid aUid)
-/** Allocates and constructs the aif file reader and internalises the contents 
-of the specified aif file.
-
-@param aFs Connected session with the file server.
-@param aFileName The full path and (language-neutral) filename of the aif file.
-@param aApplicationUid The application's UID. If you specify a value other 
-than KNullUid, the aif file must have this value as its third (most derived) 
-UID.
-@leave KErrCorrupt The UID specified is incorrect, or if KNullUid was specified, 
-the aif file's second UID was not KUidAppInfoFile.
-@return Pointer to the newly constructed and initialised aif file reader. The 
-object is left on the cleanup stack. */
-	{
-	CApaAppInfoFileReader* self=new(ELeave) CApaAppInfoFileReader(aFs);
-	CleanupStack::PushL(self);
-	self->ConstructL(aFileName,aUid);
-	return self;
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaAppInfoFileReader* CApaAppInfoFileReader::NewL(RFs& aFs, const TDesC& aFileName,TUid aUid)
-/** Allocates and constructs the aif file reader and internalises the contents 
-of the specified aif file.
-
-@param aFs Connected session with the file server.
-@param aFileName The full path and (language-neutral) filename of the aif file.
-@param aApplicationUid The application's UID. If you specify a value other 
-than KNullUid, the aif file must have this as its third (most derived) UID.
-@leave KErrCorrupt The UID specified is incorrect, or if KNullUid was specified, 
-the aif file's second UID was not KUidAppInfoFile.
-@return Pointer to the newly constructed and initialised aif file reader. The 
-object is popped from the cleanup stack. */
-	{
-	CApaAppInfoFileReader* self=CApaAppInfoFileReader::NewLC(aFs, aFileName,aUid);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-void CApaAppInfoFileReader::ConstructL(const TDesC& aFileName,TUid aMostDerivedUid)
-	{
-	__DECLARE_NAME(_S("CApaAppInfoFileReader"));
-	CApaAppInfoFile::ConstructL();
-	TParse parse;
-	User::LeaveIfError(parse.Set(aFileName,NULL,NULL));
-	iDefaultCaption=parse.Name().AllocL();
-	TFileName localFileName;
-	localFileName.Copy(aFileName);
-	BaflUtils::NearestLanguageFile(iFs,localFileName);
-	iRomPointer=iFs.IsFileInRom(localFileName);
-
-	iAifFileName = localFileName.AllocL();
-
-	// Get the file type
-	TEntry entry;
-	User::LeaveIfError(iFs.Entry(localFileName, entry));
-	if (!entry.IsTypeValid())
-		{
-		// Invalid UID
-		User::Leave(KErrCorrupt);
-		}
-
-	// Determine the type of AIF file
-	const TUidType& type = entry.iType;
-	if ((
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-		type[1] == KUidInterimFormatFileForJavaMIDletInstaller
-#endif
-		) && (aMostDerivedUid == KNullUid || type[2] == aMostDerivedUid))
-		{
-		// Read old AIF format file
-		CFileStore* store = CFileStore::OpenL(iFs,localFileName,EFileRead|EFileShareReadersOnly);
-		iStore = store;
-		RStoreReadStream inStream;
-		inStream.OpenLC(*store,store->Root());
-		InternalizeL(inStream);
-		CleanupStack::PopAndDestroy(&inStream);
-		}
-	else
-		{
-		// it's the wrong file!!!!!
-		User::Leave(KErrCorrupt);
-		}
-	}
-
-void CApaAppInfoFileReader::LoadAifFileVersionTwoL(const TDesC& aFileName, TUid aMostDerivedUid)
-	{
-	// Version 2 AIF format:
-	//
-	//  +--------------------- - - -------- - - ---+
-	//  |  UID  | RSC len | RSC block |  MBM block |
-	//  +--------------------- - - -------- - - ---+
-	//
-	// UID = 4 bytes (incl. checksum)
-	// RSC len = 4 bytes
-	// RSC block = RSC len bytes + padding to make MBM block 4-byte aligned
-	// MBM block = remainder of file, 4-byte aligned
-	//
-	// Read 16-bit block for length of RSC file
-	RFile file;
-	User::LeaveIfError(file.Open(iFs, aFileName, EFileRead | EFileShareReadersOnly));
-	CleanupClosePushL(file);
-	TInt aifHeaderOffset = 16;	// skip over UID and checksum
-	User::LeaveIfError(file.Seek(ESeekStart, aifHeaderOffset));
-	TBuf8<4> buffer;
-	User::LeaveIfError(file.Read(buffer));
-	const TInt rscLength = buffer[0] | (buffer[1] << 8) | (buffer[2] << 16) | (buffer[3] << 24);
-	TInt fileSize = 0;
-	User::LeaveIfError(file.Size(fileSize));
-	CleanupStack::PopAndDestroy(&file);
-
-	// Open RSC file using offset
-	RResourceFile resFile;
-	resFile.OpenL(iFs, aFileName, aifHeaderOffset + 4, rscLength);
-	CleanupClosePushL(resFile);
-
-	// Read the first resource (AIF_DATA struct)
-	HBufC8* resource = resFile.AllocReadLC(1);
-
-	TResourceReader reader;
-	reader.SetBuffer(resource);
-
-	// Read app UID
-	const TInt uid = reader.ReadInt32();
-	if ((aMostDerivedUid != KNullUid) && (uid != aMostDerivedUid.iUid))
-		{
-		User::Leave(KErrCorrupt);
-		}
-	// Num icons
-	const TInt numIcons = reader.ReadInt16();
-
-	// Caption array
-	const TInt captionArraySize = reader.ReadInt16();
-	TInt i;
-	for (i=0; i < captionArraySize; i++)
-		{
-		TCaptionHeader header;
-		header.iLanguage = static_cast<TLanguage>(reader.ReadInt16());
-		TPtrC caption = reader.ReadTPtrC();
-		header.iCaption = caption.AllocLC();
-		iCaptionHeaderArray->AppendL(header);
-		CleanupStack::Pop(header.iCaption);
-		}
-
-	// Read capability flags
-	iCapability.iAppIsHidden = reader.ReadInt8();
-	iCapability.iEmbeddability = static_cast<TApaAppCapability::TEmbeddability>(reader.ReadInt8());
-	iCapability.iSupportsNewFile = reader.ReadInt8();
-	iCapability.iLaunchInBackground = reader.ReadInt8();
-
-	// Group name
-	iCapability.iGroupName = reader.ReadTPtrC();
-
-	// Datatype list
-	const TInt dataTypeArraySize = reader.ReadInt16();
-	for (i=0; i < dataTypeArraySize; i++)
-		{
-		TDataTypeHeader dataTypeHeader;
-		dataTypeHeader.iPriority = (TDataTypePriority)reader.ReadInt16();
-		TPtrC8 dataTypePtr = reader.ReadTPtrC8();
-		TDataType* dataType = new(ELeave) TDataType(dataTypePtr);
-		CleanupStack::PushL(dataType);
-		dataTypeHeader.iDataType = dataType;
-		iDataTypeHeaderArray->AppendL(dataTypeHeader);
-		CleanupStack::Pop(dataType);
-		}
-
-	// Read MBM block
-	iMbmOffset = aifHeaderOffset + 4 + rscLength;
-	// Calculate any padding after the RSC (MBM block must be 4-byte aligned)
-	TInt mbmPadding = (rscLength % 4);
-	if (mbmPadding)
-		mbmPadding = 4 - mbmPadding;
-	iMbmOffset += mbmPadding;
-	TInt iconIndex = 0;
-	if (fileSize > iMbmOffset)
-		{
-		// Populate the icon array
-		AddIconHeadersL(aFileName, iMbmOffset, numIcons);
-		iconIndex += numIcons;
-		}
-
-	// View list
-	const TInt viewListArraySize = reader.ReadInt16();
-	for (i=0; i < viewListArraySize; i++)
-		{
-		CApaAIFViewData* viewData = CApaAIFViewData::NewLC();
-		viewData->SetViewUid(TUid::Uid(reader.ReadInt32()));	// Read UID
-		viewData->SetScreenMode(reader.ReadInt32());			// Read screenmode
-		TInt numViewIcons = reader.ReadInt16();					// Read num icons
-		TInt j = 0;
-		for ( ; j < numViewIcons; j++)
-			{
-			viewData->AddIconIndexL(iconIndex);
-			iconIndex++;
-			}
-		// Read caption array
-		const TInt viewCaptArraySize = reader.ReadInt16();
-		for (j=0; j < viewCaptArraySize; j++)
-			{
-			TLanguage langCode = static_cast<TLanguage>(reader.ReadInt16());
-			TPtrC caption = reader.ReadTPtrC();
-			viewData->AddCaptionL(langCode, caption);
-			}
-		TViewDataHeader header;
-		header.iViewData = viewData;
-		iViewDataHeaderArray->AppendL(header);
-		CleanupStack::Pop(viewData);
-		}
-
-	// File ownership list
-	const TInt fileOwnershipArraySize = reader.ReadInt16();
-	for (i=0; i < fileOwnershipArraySize; i++)
-		{
-		// Filename
-		TFileOwnershipInfoHeader ownership;
-		TPtrC fileNamePtr = reader.ReadTPtrC();
-		ownership.iOwnedFileName = fileNamePtr.AllocLC();
-		iFileOwnershipInfoHeaderArray->AppendL(ownership);
-		CleanupStack::Pop(ownership.iOwnedFileName);
-		}
-	CleanupStack::PopAndDestroy(2, &resFile);
-	}
-
-void CApaAppInfoFileReader::AddIconHeadersL(const TDesC& aFileName, TInt32 aFileOffset, TInt aNumIcons)
-	{
-	CFbsBitmap* bmp = new(ELeave) CFbsBitmap();
-	CleanupStack::PushL(bmp);
-	for (TInt i=0; i < aNumIcons; i++)
-		{
-		User::LeaveIfError(bmp->Load(aFileName, i * 2, ETrue, aFileOffset));
-		TSize iconSize = bmp->SizeInPixels();
-		TIconHeader header;
-		header.iIcon = NULL;
-		header.iIconMain = NULL;
-		header.iIconMask = NULL;
-		header.iIconSideInPixels = iconSize.iWidth;
-		iIconHeaderArray->AppendL(header);
-		}
-	CleanupStack::PopAndDestroy(bmp);
-	}
-
-void CApaAppInfoFileReader::InternalizeL(RReadStream& aStream)
-	{
-	aStream>> *iCaptionHeaderArray;		// Internalizes the headers only
-	aStream>> *iIconHeaderArray;
-	aStream>> iCapability;
-	TInt version=EAifVersionOriginal;
-	TRAP_IGNORE(version=aStream.ReadInt32L());
-	if (version<EAifVersionAddsDataType)
-		return;
-	aStream>> *iDataTypeHeaderArray;
-	if (version<EAifVersionAddsViewData)
-		return;
-	aStream>> *iViewDataHeaderArray;
-	if (version<EAifVersionAddsFileOwnershipInfo)
-		return;
-	aStream>> *iFileOwnershipInfoHeaderArray;
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	if (version<EAifVersionAddsJavaMIDletInfo)
-		return;
-	iJavaMIDletInfo_AmsAuthId=aStream.ReadUint32L();
-	iJavaMIDletInfo_MIDlet=aStream.ReadInt32L();
-#endif
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TApaAppCaption CApaAppInfoFileReader::CaptionL(TLanguage aLanguage)
-// Find language id and return matching caption, loaded from file.
-// Does not allocate storage for the caption so there's no need to delete the array elements.
-/** Searches for the most appropriate caption in the aif file for the language 
-specified.
-
-If a caption in the specified language is not found, the function searches 
-for the best alternative using the language downgrade path.
-
-If there are no captions at all in the aif file, a default caption is used 
-(the aif filename).
-
-@param aLanguage The language of the required caption.
-@return The application's caption. */
-	{
-	RFs fs;
-	CleanupClosePushL(fs);
-	User::LeaveIfError(fs.Connect());
-	RArray<TLanguage> downgradePath;
-	CleanupClosePushL(downgradePath);
-	BaflUtils::GetDowngradePathL(fs,aLanguage,downgradePath);
-	TApaAppCaption result(*iDefaultCaption);
-	const TInt count=iCaptionHeaderArray->Count();
-	if (count>0)
-		{
-		const TInt languageCount=downgradePath.Count();
-		TInt captionIndex=KErrNotFound;
-		for (TInt j=0; j<languageCount; j++)
-			{
-			for (TInt i=0;i<count;i++)
-				{		
-				if ((*iCaptionHeaderArray)[i].iLanguage==downgradePath[j])
-					{
-					captionIndex=i;
-					j=languageCount;//to exit outer loop
-					break;
-					}
-				}
-			}
-		TCaptionHeader pCaptionHeader;
-		if (captionIndex!=KErrNotFound)
-			{
-			pCaptionHeader=(*iCaptionHeaderArray)[captionIndex];
-			}
-		else		// use caption for the first language specified in the aif file
-					// since we don't have anything more suitable
-			{ 		
-			pCaptionHeader=(*iCaptionHeaderArray)[0];
-			}
-
-		if (iStore)
-			{
-			RStoreReadStream inStream;
-			inStream.OpenLC(*iStore,pCaptionHeader.iCaption.AsId());
-			inStream >> result;
-			CleanupStack::PopAndDestroy(&inStream);
-			}
-		else
-			{
-			__ASSERT_DEBUG(pCaptionHeader.iCaption.IsPtr(), Panic(EPanicNoCaption));
-			result = *(pCaptionHeader.iCaption);
-			}
-		downgradePath.Reset();
-		}
-	CleanupStack::PopAndDestroy(2, &fs);
-	return result;
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileReader::StretchDrawL(CFbsBitmap* aSource,CFbsBitmap* aTarget,TSize aSizeInPixels)
-/** Creates a new bitmap based on another, stretched or compressed to the specified 
-size.
-
-@param aSource The source bitmap to copy.
-@param aTarget The target bitmap. On return, this is set to be a copy of aSource, 
-but stretched or compressed to the specified size.
-@param aSizeInPixels The required size for the target bitmap. */
-	{
-	User::LeaveIfError(aTarget->Create(aSizeInPixels,aSource->DisplayMode()));
-	CFbsBitmapDevice* bitDev=CFbsBitmapDevice::NewL(aTarget);
-	CleanupStack::PushL(bitDev);
-	CFbsBitGc* gc;
-	User::LeaveIfError(bitDev->CreateContext((CGraphicsContext*&)gc));
-	gc->DrawBitmap(TRect(aSizeInPixels),aSource);
-	delete gc;
-	CleanupStack::PopAndDestroy(bitDev);
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TInt CApaAppInfoFileReader::NumberOfBitmaps() const
-/** Returns the number of icons in the aif file.
-
-@return The number of icons in the aif file. */
-	{
-	return iIconHeaderArray->Count();
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaMaskedBitmap* CApaAppInfoFileReader::CreateMaskedBitmapByIndexLC(TInt aIndex)
-	{
-	const TInt count=iIconHeaderArray->Count();
-	if (count<=aIndex) // panic?
-		User::Leave(KErrNotFound);
-	//
-	CApaMaskedBitmap* icon=CApaMaskedBitmap::NewLC();
-	if (iStore)
-		{
-		RStoreReadStream inStream;
-		inStream.OpenLC(*iStore,(*iIconHeaderArray)[aIndex].iIcon.AsId());
-		MStreamBuf* src=inStream.Source();
-		__ASSERT_DEBUG(src, Panic(EPanicNullPointer));
-		const TUid uid = TUid::Uid(inStream.ReadInt32L());
-		src->SeekL(MStreamBuf::ERead,-4);
-		if (uid==KCBitwiseBitmapUid)
-			{
-			TUint32* fileOffsetPtr=(TUint32*) src;
-			fileOffsetPtr+=4;
-			icon->SetRomBitmapL(iRomPointer+(*fileOffsetPtr));
-			}
-		else
-			{
-			inStream >> *icon;
-			}
-		CleanupStack::PopAndDestroy(&inStream);
-		}
-	else
-		{
-		CFbsBitmap* mask = new(ELeave) CFbsBitmap();
-		CleanupStack::PushL(mask);
-		TInt mbmIndex = aIndex * 2;		// we need to map 'icon index' to 'mbm index' (bmp + mask)
-		__ASSERT_DEBUG(iAifFileName, Panic(EPanicNullPointer));
-		User::LeaveIfError(icon->Load(*iAifFileName, mbmIndex, ETrue, iMbmOffset));
-		User::LeaveIfError(mask->Load(*iAifFileName, mbmIndex + 1, ETrue, iMbmOffset));
-		icon->SetMaskBitmap(mask);
-		CleanupStack::Pop(mask);
-		}
-	//
-	return icon;
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaMaskedBitmap* CApaAppInfoFileReader::CreateMaskedBitmapL(TInt aIconSideInPixels)
+// CApaResourceFileWriterBase::MDataSink
 //
-// Use CreateMaskedBitmapByIndexLC. To access a bitmap by size use RApaLsSession APIs.
-//
-/** Creates a new masked bitmap based on the one in the aif file whose size is 
-closest to the size specified.
-
-If all bitmaps in the file are larger than the size specified, the new bitmap 
-is based on the smallest and is shrunk to the specified size.
-
-@deprecated
-@param aIconSideInPixels The maximum width and height in pixels of the bitmap. 
-The new bitmap will be this size, or smaller.
-@leave KErrNotFound There are no bitmaps in the file.
-@return Pointer to the new bitmap. The caller takes ownership. */
-	{
-	__ASSERT_DEBUG(iIconHeaderArray, Panic(EPanicNullPointer));
-	const TInt count=iIconHeaderArray->Count();
-	if (count==0)
-		User::Leave(KErrNotFound);
-	//
-	TInt closest=0;
-	TInt smallest=0;
-	TInt minSoFar=KMaxTInt;
-	TInt smallestSoFar=KMaxTInt;
-	TInt delta=0;
-	for (TInt i=0;i<count;i++)
-		{
-		TIconHeader* pIconHeader=(&(*iIconHeaderArray)[i]);
-		delta = aIconSideInPixels-pIconHeader->iIconSideInPixels; // Abs()
-		if (pIconHeader->iIconSideInPixels<smallestSoFar)
-			{ // the smallest is used if they're all too big
-			smallest = i;
-			smallestSoFar = pIconHeader->iIconSideInPixels;
-			}
-		if (delta>=0 && delta<minSoFar)
-			{
-			minSoFar=delta;
-			closest=i;
-			if (delta==0)
-				break;
-			}
-		}
-	//
-	if (minSoFar==KMaxTInt)
-		closest = smallest;
-	//
-	CApaMaskedBitmap* icon = CreateMaskedBitmapByIndexLC(closest);
-	//
-	if (minSoFar==KMaxTInt)
-		{// all the icons are too big - squash down the smallest
-		CApaMaskedBitmap* newIcon=CApaMaskedBitmap::NewLC();
-		TSize iconSize(aIconSideInPixels,aIconSideInPixels);
-		StretchDrawL(icon,newIcon,iconSize);
-		StretchDrawL(icon->Mask(),newIcon->Mask(),iconSize);
-		CleanupStack::Pop(newIcon);
-		CleanupStack::PopAndDestroy(icon);
-		return newIcon;
-		}
-	CleanupStack::Pop(icon);
-	return icon;
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileReader::Capability(TDes8& aInfo)const
-/** Gets the capability information read from the aif file.
-
-@param aInfo A TApaAppCapabilityBuf object. On return, this contains the application's 
-capabilities. */
-	{
-	TApaAppCapabilityBuf buf(iCapability);
-	TApaAppCapability::CopyCapability(aInfo,buf);
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileReader::DataTypesSupportedL(CArrayFix<TDataTypeWithPriority>& aTypeList) const
-/** Gets the MIME types supported by the application, and their priorities. 
-
-@param aTypeList An empty array. On return, this contains the MIME type priorities 
-read from the aif file. MIME type priorities determine which application is 
-launched to display a particular document.
-@panic APGRFX 29 The aTypeList array is not empty when calling the function. 
-Debug builds only.
-@panic APGRFX 33 The internal array holding the MIME type information is uninitialised. 
-Debug builds only. */
-	{
-	__ASSERT_DEBUG(aTypeList.Count()==0,Panic(EDPanicArrayNotEmpty));
-	__ASSERT_DEBUG(iDataTypeHeaderArray,Panic(EDPanicInvalidDataTypeArray));
-	TInt count=iDataTypeHeaderArray->Count();
-	for (TInt i=0; i<count; i++)
-		{
-		const TDataTypeHeader& header=(*iDataTypeHeaderArray)[i];
-		if (iStore)
-			{
-			RStoreReadStream inStream;
-			inStream.OpenLC(*iStore,header.iDataType.AsId());
-			TDataType dataType;
-			inStream >> dataType;
-			aTypeList.AppendL(TDataTypeWithPriority(dataType,header.iPriority));
-			CleanupStack::PopAndDestroy(&inStream);
-			}
-		else
-			{
-			aTypeList.AppendL(TDataTypeWithPriority(*(header.iDataType), header.iPriority));
-			}
-		}
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileReader::GetViewsL(CArrayPtr<CApaAIFViewData>& aViewList) const
-/** Gets the application view data contained in the aif file.
-
-The view data is an array of view UIDs and their associated captions and icons.
-
-@internalComponent
-@param aViewList An empty array. On return, this contains the view data read 
-from the aif file. If the file does not contain any application view data, 
-this array will be empty on return.
-@panic APGRFX 29 The aViewList array is not empty when calling the function. 
-Debug builds only.
-@panic APGRFX 34 The internal array holding the view data is uninitialised. 
-Debug builds only. */
-	{
-	__ASSERT_DEBUG(aViewList.Count()==0,Panic(EDPanicArrayNotEmpty));
-	__ASSERT_DEBUG(iViewDataHeaderArray,Panic(EDPanicInvalidViewArray));
-	TInt count=iViewDataHeaderArray->Count();
-	for (TInt i=0; i<count; i++)
-		{
-		const TViewDataHeader& header=(*iViewDataHeaderArray)[i];
-		if (iStore)
-			{
-			CApaAIFViewData* viewData=CApaAIFViewData::NewLC();
-			RStoreReadStream inStream;
-			inStream.OpenLC(*iStore,header.iViewData.AsId());
-			inStream >> *viewData;
-			aViewList.AppendL(viewData);
-			CleanupStack::PopAndDestroy(&inStream);
-			CleanupStack::Pop(viewData);
-			}
-		else
-			{
-			// Load any icons for the view
-			// Have to create a copy here as the old AIF format (above) gives external ownership
-			// of CApaAIFViewData items in aViewList.
-			CApaAIFViewData* headerViewData = header.iViewData.AsPtr();
-			CApaAIFViewData* viewData = CApaAIFViewData::NewLC(*headerViewData);
-			viewData->LoadIconsL(*iAifFileName, iMbmOffset);
-			aViewList.AppendL(viewData);
-			CleanupStack::Pop(viewData);
-			}
-		}
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileReader::GetOwnedFilesL(CDesCArray& aOwnedFilesList) const
-/** Gets a list of the files that the application has claimed ownership of in the 
-aif file.
-
-@param aOwnedFilesList An empty array. On return, this contains the names 
-of the files identified as being owned by the application.
-@panic APGRFX 29 The aOwnedFilesList array is not empty when calling the function. 
-Debug builds only.
-@panic APGRFX 35 The internal array holding the owned files list is uninitialised. 
-Debug builds only. */
-	{
-	__ASSERT_DEBUG(aOwnedFilesList.Count()==0,Panic(EDPanicArrayNotEmpty));
-	__ASSERT_DEBUG(iFileOwnershipInfoHeaderArray,Panic(EDPanicInvalidFileOwnershipArray));
-	const TInt count=iFileOwnershipInfoHeaderArray->Count();
-	for (TInt ii=0; ii<count; ii++)
-		{
-		const TFileOwnershipInfoHeader& header=(*iFileOwnershipInfoHeaderArray)[ii];
-		if (iStore)
-			{
-			TFileName fileName;
-			RStoreReadStream inStream;
-			inStream.OpenLC(*iStore,header.iOwnedFileName.AsId());
-			inStream >> fileName;
-			aOwnedFilesList.AppendL(fileName);
-			CleanupStack::PopAndDestroy(&inStream);
-			}
-		else
-			{
-			aOwnedFilesList.AppendL(*(header.iOwnedFileName));
-			}
-		}
-	}
-
-
-//
-// Class CApaAppInfoFileWriter
-//
-
-CApaAppInfoFileWriter::CApaAppInfoFileWriter(RFs& aFs)
-	:CApaAppInfoFile(aFs)
-	{}
-
-EXPORT_C CApaAppInfoFileWriter::~CApaAppInfoFileWriter()
-// Must delete caption and icon pointers that have been set in AddCaptionL and AddIconL
-	{
-	if (iCaptionHeaderArray)
-		{
-		const TInt maxIndex=iCaptionHeaderArray->Count() - 1;
-		for(TInt i=maxIndex; i>=0; i--)
-			{
-			const TCaptionHeader& pCaption=(*iCaptionHeaderArray)[i];
-			if (pCaption.iCaption.IsPtr())
-				{
-				delete pCaption.iCaption.AsPtr();
-				iCaptionHeaderArray->Delete(i);
-				}
-			}
-		}
-	if (iIconHeaderArray)
-		{
-		const TInt maxIndex=iIconHeaderArray->Count() - 1;
-		for(TInt i=maxIndex; i>=0; i--)
-			{
-			const TIconHeader& pIcon=(*iIconHeaderArray)[i];
-			if (pIcon.iIcon.IsPtr())
-				{
-				delete pIcon.iIcon.AsPtr();
-				iIconHeaderArray->Delete(i);
-				}
-			}
-		}
-	if (iDataTypeHeaderArray)
-		{
-		const TInt maxIndex=iDataTypeHeaderArray->Count() - 1;
-		for(TInt i=maxIndex; i>=0; i--)
-			{
-			const TDataTypeHeader& pData=(*iDataTypeHeaderArray)[i];
-			if (pData.iDataType.IsPtr())
-				{
-				delete pData.iDataType.AsPtr();
-				iDataTypeHeaderArray->Delete(i);
-				}
-			}
-		}
-	if (iViewDataHeaderArray)
-		{
-		const TInt maxIndex=iViewDataHeaderArray->Count() - 1;
-		for(TInt i=maxIndex; i>=0; i--)
-			{
-			const TViewDataHeader& pView=(*iViewDataHeaderArray)[i];
-			if (pView.iViewData.IsPtr())
-				{
-				delete pView.iViewData.AsPtr();
-				iViewDataHeaderArray->Delete(i);
-				}
-			}
-		}
-	if (iFileOwnershipInfoHeaderArray)
-		{
-		const TInt maxIndex=iFileOwnershipInfoHeaderArray->Count() - 1;
-		for(TInt i=maxIndex; i>=0; i--)
-			{
-			const TFileOwnershipInfoHeader& pView=(*iFileOwnershipInfoHeaderArray)[i];
-			if (pView.iOwnedFileName.IsPtr())
-				{
-				delete pView.iOwnedFileName.AsPtr();
-				iFileOwnershipInfoHeaderArray->Delete(i);
-				}
-			}
-		}
-	delete iMap;		// Must delete before iStore
-	}
-
-// CApaResourceFileWriterBase::MDataSink
 
 void CApaResourceFileWriterBase::MDataSink::WriteBufferL(const TDesC8& aBuffer)
 	{
@@ -1689,6 +555,8 @@
 	return iAppUid;
 	}
 
+const TUid KUidAppRegistrationFile ={0x101F8021};
+
 void CApaRegistrationResourceFileWriter::GenerateFileContentsL(RBuf8& aBuffer) const
 /** @internalComponent */
 	{
@@ -2057,385 +925,4 @@
 	aSecondResourceInCompressedUnicodeFormat=EFalse;
 	return NULL;
 	}
-
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-
-// ForJavaMIDletInstaller
-
-EXPORT_C void ForJavaMIDletInstaller::CheckInterimFormatFileNotCorruptL(RFile& aInterimFormatFile)
-	{ // static
-	RFile temporaryDuplicateOfFile; // this is needed as CFileStore::FromLC takes ownership of the file that it's passed, and closes the RFile object passed in - we still want to use it, so we'll create this temporary duplicate RFile object (it also handily means we don't have to rewind the RFile to the start when we copy it below)
-	User::LeaveIfError(temporaryDuplicateOfFile.Duplicate(aInterimFormatFile));
-	CFileStore* const fileStore=CFileStore::FromLC(temporaryDuplicateOfFile); // CFileStore::FromLC takes *immediate* ownership of the file it's passed (i.e. before doing anything that can leave)
-	if (fileStore->Type()[1]!=KUidInterimFormatFileForJavaMIDletInstaller)
-		{
-		User::Leave(KErrCorrupt);
-		}
-	RStoreReadStream rootStream;
-	rootStream.OpenLC(*fileStore,fileStore->Root());
-	RFs unconnectedFs; // should not actually be used, so we don't need to use a real, connected RFs
-	CApaAppInfoFileReader* const appInfoFileReader=new(ELeave) CApaAppInfoFileReader(unconnectedFs);
-	CleanupStack::PushL(appInfoFileReader);
-	appInfoFileReader->CApaAppInfoFile::ConstructL();
-	appInfoFileReader->InternalizeL(rootStream); // will leave if the file is corrupt/badly formed
-	CleanupStack::PopAndDestroy(3, fileStore);
-	}
-
-EXPORT_C void ForJavaMIDletInstaller::GetJavaMIDletInfoL(RFs& aFs, const TDesC& aFileName,TUint32& aJavaMIDletInfo_AmsAuthId,TUint32& aJavaMIDletInfo_MIDlet)
-	{ // static
-	CApaAppInfoFileReader* const appInfoFileReader=CApaAppInfoFileReader::NewLC(aFs, aFileName);
-	aJavaMIDletInfo_AmsAuthId=appInfoFileReader->iJavaMIDletInfo_AmsAuthId;
-	aJavaMIDletInfo_MIDlet=appInfoFileReader->iJavaMIDletInfo_MIDlet;
-	CleanupStack::PopAndDestroy(appInfoFileReader);
-	}
-
-EXPORT_C CApaAppInfoFileWriter* ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(RFs& aFs,const TDesC& aFileName,TUid aApplicationUid,TUint32 aJavaMIDletInfo_AmsAuthId,TInt aJavaMIDletInfo_MIDlet)
-	{ // static
-	CApaAppInfoFileWriter* self=new(ELeave) CApaAppInfoFileWriter(aFs);
-	CleanupStack::PushL(self);
-	self->ConstructL(aFileName,aApplicationUid,KUidInterimFormatFileForJavaMIDletInstaller,aJavaMIDletInfo_AmsAuthId,aJavaMIDletInfo_MIDlet);
-	return self;
-	}
-
-#endif // UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaAppInfoFileWriter* CApaAppInfoFileWriter::NewLC(RFs& aFs, const TDesC& aFileName,TUid aUid)
-/** Allocates and constructs an aif file writer. It leaves if the path of the 
-specified aif file does not exist.
-
-@param aFs Connected session with the file server.
-@param aFileName The full path and (language-neutral) filename of the aif file.
-@param aUid The application's third (most derived) UID. 
-@return Pointer to the newly constructed and initialised aif file writer. 
-The object is left on the cleanup stack. */
-	{
-	CApaAppInfoFileWriter* self=new(ELeave) CApaAppInfoFileWriter(aFs);
-	CleanupStack::PushL(self);
-	self->ConstructL(aFileName,aUid);
-	return self;
-	}
-
-void CApaAppInfoFileWriter::ConstructL(const TDesC& aFileName,TUid aUid
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-									   ,TUid aMiddleUid/*=KUidAppInfoFile*/,TUint32 aJavaMIDletInfo_AmsAuthId/*=0*/,TInt aJavaMIDletInfo_MIDlet/*=0*/
-#endif
-									   )
-	{
-	__DECLARE_NAME(_S("CApaAppInfoFileWriter"));
-	CApaAppInfoFile::ConstructL();
-	TInt ret=iFs.MkDirAll(aFileName);
-    if (ret!=KErrAlreadyExists)
-        User::LeaveIfError(ret);
-	CFileStore* store=CDirectFileStore::ReplaceL(iFs,aFileName,EFileRead|EFileWrite);
-	iStore = store;
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	iJavaMIDletInfo_AmsAuthId=aJavaMIDletInfo_AmsAuthId;
-	iJavaMIDletInfo_MIDlet=aJavaMIDletInfo_MIDlet;
-#else
-	const TUid aMiddleUid=KUidAppInfoFile;
-#endif
-	store->SetTypeL(TUidType(KDirectFileStoreLayoutUid,aMiddleUid,aUid));
-	iMap=CStoreMap::NewL(*store);	// Ready for Storing components
-	}
-
-void CApaAppInfoFileWriter::ExternalizeL(RWriteStream& aStream) const
-	{
-	__ASSERT_DEBUG(iCaptionHeaderArray, Panic(EPanicNullPointer));
-	aStream<< *iCaptionHeaderArray;
-	aStream<< *iIconHeaderArray;
-	aStream<< iCapability;
-	aStream.WriteInt32L(
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-						EAifVersionAddsJavaMIDletInfo
-#else
-						EAifVersionAddsFileOwnershipInfo
-#endif
-						);
-	aStream<< *iDataTypeHeaderArray;
-	aStream<< *iViewDataHeaderArray;
-	aStream << *iFileOwnershipInfoHeaderArray;
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	aStream.WriteUint32L(iJavaMIDletInfo_AmsAuthId);
-	aStream.WriteInt32L(iJavaMIDletInfo_MIDlet);
-#endif
-	}
-
-EXPORT_C void CApaAppInfoFileWriter::StoreL()
-	{
-	__ASSERT_DEBUG(iMap, Panic(EPanicNullPointer));
-	__ASSERT_DEBUG(iStore, Panic(EPanicNullPointer));
-	RStoreWriteStream outStream(*iMap);
-	TStreamId id=outStream.CreateLC(*iStore);
-	ExternalizeL(outStream);
-	outStream.CommitL();
-	CleanupStack::PopAndDestroy(&outStream);
-	iMap->Reset();
-	iStore->SetRootL(id);
-	iStore->CommitL();
-	}
-
-EXPORT_C void CApaAppInfoFileWriter::AddCaptionL(TLanguage aLanguage,const TDesC& aCaption)
-/** Appends a caption in the specified language to the aif file.
-
-@param aLanguage The language of the specified caption.
-@param aCaption The new caption.
-@leave KErrBadName The caption's name is longer than KApaMaxAppCaption characters. */
-
-// Write caption out to a new stream and add to iCaptionHeaderArray
-	{
-	if (aCaption.Length()>KApaMaxAppCaption)
-		User::Leave(KErrBadName);
-	TCaptionHeader captionHeader;
-	captionHeader.iLanguage=aLanguage;
-	captionHeader.iCaption=aCaption.AllocL();
-	CleanupStack::PushL(captionHeader.iCaption.AsPtr());
-	RStoreWriteStream outStream;
-	__ASSERT_DEBUG(iStore, Panic(EPanicNullPointer));
-	TStreamId id=outStream.CreateLC(*iStore);
-	outStream << *captionHeader.iCaption;
-	outStream.CommitL();
-	CleanupStack::PopAndDestroy(&outStream);
-	iMap->BindL(captionHeader.iCaption,id);
-	iCaptionHeaderArray->AppendL(captionHeader);
-	CleanupStack::Pop(captionHeader.iCaption);
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileWriter::AddIconL(const TDesC& aIconFileName)
-/** Loads the icon's bitmap and mask from the specified mbm file 
-and writes the icon to the aif file. Takes ownership of the icon.
-
-@param aIconFileName Full path and filename of the icon file (with a .mbm 
-extension) containing the icon bitmap at identifier 0 and its mask at 1. */
-
-// Icon file must contain 2 bitmaps: icon and mask, and they are assumed to be the same size.
-	{
-	CApaMaskedBitmap* icon=CApaMaskedBitmap::NewLC();
-	User::LeaveIfError(icon->Load(aIconFileName,0));
-	User::LeaveIfError((icon->Mask())->Load(aIconFileName,1));
-	CleanupStack::Pop(icon);
-	AddIconL(*icon);
-	}
-
-EXPORT_C void CApaAppInfoFileWriter::AddIconL(CApaMaskedBitmap& aIcon)
-/** Writes the specified pre-loaded icon to the aif file, and takes ownership of it.
-
-@param aIcon The new icon. */
-
-// Guaranteed to take ownership of the aIcon
-// Will delete aIcon if it leaves
-	{
-	CleanupStack::PushL(&aIcon);
-	TIconHeader iconHeader;
-	iconHeader.iIcon = &aIcon;
-	iconHeader.iIconSideInPixels = aIcon.SizeInPixels().iWidth;
-	RStoreWriteStream outStream;
-	__ASSERT_DEBUG(iStore, Panic(EPanicNullPointer));
-	TStreamId id=outStream.CreateLC(*iStore);
-	outStream << *iconHeader.iIcon;
-	outStream.CommitL();
-	CleanupStack::PopAndDestroy(&outStream);
-	iMap->BindL(iconHeader.iIcon,id);
-	iIconHeaderArray->AppendL(iconHeader);
-	CleanupStack::Pop(&aIcon);
-	}
-
-EXPORT_C TInt CApaAppInfoFileWriter::SetCapability(const TDesC8& aInfo)
-/** Sets the application's capability information. Note that the 
-information is not written to the aif file until StoreL() is called.
-@param aInfo A TApaAppCapabilityBuf object.
-@return KErrNone always. */
-	{
-	// check that aInfo is of a permissable length
-	TApaAppCapabilityBuf buf;
-	TApaAppCapability::CopyCapability(buf,aInfo);
-	iCapability = buf();
-	return KErrNone;
-	}
-
-EXPORT_C void CApaAppInfoFileWriter::AddDataTypeL(const TDataTypeWithPriority& aTypePriority)
-	{
-	__ASSERT_DEBUG(aTypePriority.iDataType.Des8().Length()>0,Panic(EDPanicBadDataType));
-	__ASSERT_DEBUG(aTypePriority.iPriority<KDataTypePriorityUserSpecified,Panic(EDPanicBadDataType));
-	TDataTypeHeader header;
-	TDataType* dataType=new(ELeave) TDataType(aTypePriority.iDataType);
-	CleanupStack::PushL(dataType);
-	header.iDataType=dataType;
-	RStoreWriteStream outStream;
-	__ASSERT_DEBUG(iStore, Panic(EPanicNullPointer));
-	TStreamId id=outStream.CreateLC(*iStore);
-	outStream << *header.iDataType;
-	outStream.CommitL();
-	CleanupStack::PopAndDestroy(&outStream);
-	__ASSERT_DEBUG(iMap, Panic(EPanicNullPointer));
-	iMap->BindL(header.iDataType,id);
-	header.iPriority=aTypePriority.iPriority;
-	iDataTypeHeaderArray->AppendL(header);
-	CleanupStack::Pop(dataType);
-	}
-
-//
-// Adds a view with id aViewId to the data to be stored in the AIF. Icons and captions can be added to the
-// view before it is stored - view data is written to an inline store so all the information for the view must
-// be added and then the call to store the data made.
-//
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileWriter::AddViewL(TUid aViewId)
-// Write view data out to a new stream and add to iViewDataHeaderArray
-	{
-	AddViewL(aViewId,0);
-	}
-
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileWriter::AddViewL(TUid aViewId,TInt aScreenMode)
-	{
-	TViewDataHeader viewDataHeader;
-	CApaAIFViewData* viewData=CApaAIFViewData::NewLC();
-	viewData->SetViewUid(aViewId);
-	viewData->SetScreenMode(aScreenMode);
-	viewDataHeader.iViewData=viewData;
-	__ASSERT_DEBUG(iViewDataHeaderArray, Panic(EPanicNullPointer));
-	iViewDataHeaderArray->AppendL(viewDataHeader);
-	CleanupStack::Pop(viewData);
-	}
-
-//
-// Stores the view data in the AIF, writing the store inline.
-//
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileWriter::StoreViewL(TUid aViewId)
-	{
-	__ASSERT_DEBUG(iViewDataHeaderArray, Panic(EPanicNullPointer));
-	const TInt count=iViewDataHeaderArray->Count();
-	for (TInt ii=0;ii<count;ii++)
-		{
-		const TViewDataHeader& pData=(*iViewDataHeaderArray)[ii];
-		if (pData.iViewData.AsPtr()->ViewUid() == aViewId)
-			{
-			RStoreWriteStream outStream;
-			__ASSERT_DEBUG(iStore, Panic(EPanicNullPointer));
-			TStreamId id=outStream.CreateLC(*iStore);
-			outStream << *pData.iViewData;
-			outStream.CommitL();
-			CleanupStack::PopAndDestroy(&outStream);
-			iMap->BindL(pData.iViewData,id);
-			return;
-			}
-		}
-	}
-
-//
-// Adds the icon aIcon to the view data with id aViewId which will later be stored in the AIF.
-//
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileWriter::AddViewIconL(CApaMaskedBitmap& aIcon,TUid aViewId)
-	{
-	CApaAIFViewData* viewData=NULL;
-	__ASSERT_DEBUG(iViewDataHeaderArray, Panic(EPanicNullPointer));
-	const TInt count=iViewDataHeaderArray->Count();
-	for (TInt ii=0;ii<count;ii++)
-		{
-		const TViewDataHeader& pData=(*iViewDataHeaderArray)[ii];
-		if (pData.iViewData.AsPtr()->ViewUid() == aViewId)
-			{
-			viewData=pData.iViewData.AsPtr();
-			}
-		}
-	if (viewData)
-		viewData->AddIconL(aIcon);
-	}
-
-//
-// Adds the caption aCaption in langauge aLanguage to the view data with id aViewId which will later be stored in the AIF.
-//
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileWriter::AddViewCaptionL(TLanguage aLanguage,const TDesC& aCaption,TUid aViewId)
-	{
-	CApaAIFViewData* viewData=NULL;
-	const TInt count=iViewDataHeaderArray->Count();
-	for (TInt ii=0;ii<count;ii++)
-		{
-		const TViewDataHeader& pData=(*iViewDataHeaderArray)[ii];
-		if (pData.iViewData.AsPtr()->ViewUid() == aViewId)
-			{
-			viewData=pData.iViewData.AsPtr();
-			}
-		}
-	if (viewData)
-		viewData->AddCaptionL(aLanguage,aCaption);
-	}
-
-//
-// Adds the name aOwnedFileName to the list of files described as being owned by this application to later be stored in the AIF.
-//
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void CApaAppInfoFileWriter::AddOwnedFileL(const TDesC& aOwnedFileName)
-	{
-	if (aOwnedFileName.Length()>KMaxFileName)
-		User::Leave(KErrBadName);
-	TFileOwnershipInfoHeader fileOwnershipInfoHeader;
-	fileOwnershipInfoHeader.iOwnedFileName=aOwnedFileName.AllocL();
-	CleanupStack::PushL(fileOwnershipInfoHeader.iOwnedFileName.AsPtr());
-	RStoreWriteStream outStream;
-	__ASSERT_DEBUG(iStore, Panic(EPanicNullPointer));
-	TStreamId id=outStream.CreateLC(*iStore);
-	outStream << *fileOwnershipInfoHeader.iOwnedFileName;
-	outStream.CommitL();
-	CleanupStack::PopAndDestroy(&outStream);
-	__ASSERT_DEBUG(iMap, Panic(EPanicNullPointer));
-	iMap->BindL(fileOwnershipInfoHeader.iOwnedFileName,id);
-	__ASSERT_DEBUG(iFileOwnershipInfoHeaderArray, Panic(EPanicNullPointer));
-	iFileOwnershipInfoHeaderArray->AppendL(fileOwnershipInfoHeader);
-	CleanupStack::Pop(fileOwnershipInfoHeader.iOwnedFileName);
-	}
-
-CApaAppCaptionFileReader::CApaAppCaptionFileReader(RFs& aFs,const TDesC& aAppFileName)
-: iFs(aFs)
-	{
-	__ASSERT_DEBUG((aAppFileName.Length()+KApparcExtraLengthOfCaptionFileName<KMaxFileName),Panic(EFilenameTooLong));
-	TParse appFileNameParse;
-	appFileNameParse.Set(aAppFileName,NULL,NULL);
-	iCaptionFileName=appFileNameParse.DriveAndPath(); //extract path name 
-	iCaptionFileName.Append(appFileNameParse.Name()); //add app name without extension
-	iCaptionFileName.Append(KApaCaptionFileSuffix); //add suffix
-	iCaptionFileName.Append(KAppResourceFileExtension); //add extension
-	BaflUtils::NearestLanguageFile(aFs,iCaptionFileName);
-	}
-
-void CApaAppCaptionFileReader::GetCaptionsL(TApaAppCaption& aCaption,TApaAppCaption& aShortCaption)
-//reads the caption and shortcaption of the current language from the appropriate caption file
-	{	
-	CResourceFile* file = CResourceFile::NewL(iFs, iCaptionFileName, 0, 0);
-	CleanupStack::PushL(file);
-	RResourceReader reader;
-	reader.OpenL(file, 1);
-	CleanupClosePushL(reader);
-	aCaption = reader.ReadTPtrCL();
-	aShortCaption = reader.ReadTPtrCL();
-	CleanupStack::PopAndDestroy(&reader);
-	CleanupStack::PopAndDestroy(file);
-
-	if ((!aShortCaption.Length())&&(aCaption.Length()))
-		aShortCaption=aCaption;
-	else if ((!aCaption.Length())&&(aShortCaption.Length()))
-		aCaption=aShortCaption;	
-	}
-
-//
-// Sets the drive of aAifName to the current locale drive.
-// Assumes that aAifName is already a valid full filename.
-//
-EXPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AppInfoFileUtils::GetAifFileName(const RFs& aFs,TDes& aAifName)
-	{ // static
-	TFileName aifName(aAifName);
-	BaflUtils::NearestLanguageFile(aFs,aifName);
-	aAifName=aifName;
-	}
-
-//
-// Sets aAifName to the full path of the relevant .AIF file.
-// Note that this may be on a different drive to the .APP file if the system drive has been
-// set to point to a new locale that has been downloaded.
-//
-void AppInfoFileUtils::GetAifFileNameL(const RFs& aFs,const TDesC& aFullName,TDes& aAifName)
-	{ // static
-	TParse parse;
-	User::LeaveIfError(parse.Set(KAppInfoFileExtension,&aFullName,NULL));
-	aAifName=parse.FullName();
-	AppInfoFileUtils::GetAifFileName(aFs,aAifName);
-	}
 	
-#endif // UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
--- a/localisation/apparchitecture/apgrfx/APGPRIV.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGPRIV.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,6 +11,7 @@
 // Contributors:
 //
 // Description:
+// apgpriv.cpp
 //
 
 #include "APGPRIV.H"
@@ -38,7 +39,6 @@
 	iScaleFactorWidth(1000),
 	iScaleFactorHeight(1000)
 	{
-	__DECLARE_NAME(_S("CApaIconPicture"));
 	}
 
 void CApaIconPicture::ConstructL()
@@ -138,3 +138,54 @@
 	{
 	return TPictureCapability(TPictureCapability::ENotScaleable,EFalse); // scalable, not cropable
 	}
+
+
+//
+// class CApaAppServiceInfoArrayImpl
+//
+
+void CleanupAppServiceArray(TAny* aServiceArray)
+	{
+	__ASSERT_DEBUG(aServiceArray, Panic(EPanicNullPointer));
+	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = static_cast<CArrayFixFlat<TApaAppServiceInfo>*>(aServiceArray);
+	TInt serviceCount = serviceArray->Count();
+	if (serviceCount > 0)
+		{
+		for (TInt i = serviceCount - 1; i >= 0; i--)
+			{
+			(*serviceArray)[i].Release();
+			}
+		}
+	delete serviceArray;
+	serviceArray = 0;
+	}
+
+CApaAppServiceInfoArrayImpl* CApaAppServiceInfoArrayImpl::NewL(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray)
+	{
+	CApaAppServiceInfoArrayImpl* self = new CApaAppServiceInfoArrayImpl(aServiceInfoArray);
+	if (!self)
+		{
+		CleanupAppServiceArray(aServiceInfoArray);
+		User::LeaveNoMemory();
+		}
+	return self;
+	}
+
+CApaAppServiceInfoArrayImpl::CApaAppServiceInfoArrayImpl(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray)
+	: iServiceInfoArray(aServiceInfoArray)
+	{
+	}
+
+CApaAppServiceInfoArrayImpl::~CApaAppServiceInfoArrayImpl()
+	{
+	CleanupAppServiceArray(iServiceInfoArray);
+	iServiceInfoArray = NULL;
+	}
+
+TArray<TApaAppServiceInfo> CApaAppServiceInfoArrayImpl::Array()
+	{
+	return iServiceInfoArray->Array();
+	}
+
+
+
--- a/localisation/apparchitecture/apgrfx/APGPRIV.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGPRIV.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,7 +25,13 @@
 #if !defined(__GDI_H__)
 #include <gdi.h>
 #endif
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APAID_PARTNER_H__)
+#include "apaidpartner.h"
+#endif
+#else
 #include <apaid.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
 // classes referenced:
 class CApaMaskedBitmap;
@@ -69,14 +75,14 @@
 	TSize iDisplaySizeInTwips;
 	};
 
-class CApaAppServiceInfoArrayWrapper : public CApaAppServiceInfoArray
+NONSHARABLE_CLASS(CApaAppServiceInfoArrayImpl) : public CApaAppServiceInfoArray
 	{
 public:
-	static CApaAppServiceInfoArrayWrapper* NewL(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray);
-	~CApaAppServiceInfoArrayWrapper();
+	static CApaAppServiceInfoArrayImpl* NewL(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray);
+	~CApaAppServiceInfoArrayImpl();
 	TArray<TApaAppServiceInfo> Array();
 private:
-	CApaAppServiceInfoArrayWrapper(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray);
+	CApaAppServiceInfoArrayImpl(CArrayFix<TApaAppServiceInfo>* aServiceInfoArray);
 private:
 	CArrayFix<TApaAppServiceInfo>* iServiceInfoArray;
 	};
--- a/localisation/apparchitecture/apgrfx/APGRFX.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-//
-// APGRFX.MMP for component APGRFX
-//
-
-/**
-@file
-
-@SYMPurpose apgrfx.dll Apparc server client APIs + wserv wrapper utilities
-*/
-
-target          apgrfx.dll
-CAPABILITY All -Tcb
-targettype      DLL
-UID		0x1000008D 0x10003A3C
-VENDORID 0x70000001
-
-option MSVC /Od
-
-SOURCEPATH	../apgrfx
-
-userinclude		../inc
-systeminclude   /epoc32/include
-
-source          APGCTL.CPP APGDOOR.CPP APGICNFL.CPP APGSTD.CPP APGTASK.CPP
-source		APGWGNAM.CPP APGCLI.CPP APGPRIV.CPP
-source		apgnotif.cpp APGAIR.CPP APGAIRV2.CPP APSCLI.CPP apgconstdata.cpp
-SOURCE		apsecutils.cpp
-
-#if defined SYMBIAN_APPARC_APPINFO_CACHE
-source          	APGAPLSTV2.CPP
-#else
-source          	APGAPLST.CPP
-#endif
-
-library         euser.lib apparc.lib apmime.lib gdi.lib estor.lib efsrv.lib fbscli.lib
-library         bitgdi.lib ws32.lib bafl.lib
-library         apserv.lib apfile.lib
-
-#ifdef USE_IH_RAISE_EVENT
-LIBRARY			instrumentationhandler.lib
-#endif // USE_IH_RAISE_EVENT
-
-#ifdef SYMBIAN_BAFL_SYSUTIL
-library sysutil.lib
-#endif
-
-macro			SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1
-
-#define UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
-macro UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
-
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	#if defined(SYMBIAN_APPARC_APPINFO_CACHE)
-	deffile		APGRFX_UI_FRAMEWORKS.DEF
-	#else
-	deffile		APGRFX_9_REMOVE_UI_FRAMEWORKS_V1_EXCEPT_REMNANT_FOR_JAVA_MIDLET_INSTALLER.DEF
-	#endif
-#else
-deffile			APGRFX_9_REMOVE_UI_FRAMEWORKS_V1.DEF
-#endif
-
-START WINS
-	baseaddress	0x42F00000
-END
-
-START MARM
-END
--- a/localisation/apparchitecture/apgrfx/APGSTD.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGSTD.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -24,3 +24,5 @@
 	_LIT(KApGrfxPanic,"APGRFX");
 	User::Panic(KApGrfxPanic,aPanic);
 	}
+
+
--- a/localisation/apparchitecture/apgrfx/APGSTD.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGSTD.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/apgrfx/APGTASK.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGTASK.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,10 +13,17 @@
 // Description:
 //
 
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#include "apaidpartner.h"
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "APGTASK.H"
 #include "APGWGNAM.H"
 #include <w32std.h>
 
+
 //
 // class TApatask
 //
@@ -241,6 +248,7 @@
 	key.iCode=aKeyCode;
 	key.iModifiers=aModifiers;
 	key.iRepeats=0;
+	key.iScanCode=0;
 	SendKey(key);
 	}
 
@@ -512,3 +520,4 @@
 		}
 	return KErrNotFound;
 	}
+
--- a/localisation/apparchitecture/apgrfx/APGWGNAM.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APGWGNAM.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -9,6 +9,7 @@
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
+// NTT DOCOMO, INC. -- Fix CApaWindowGroupName::AppUid() cannot handle UID with 0 prefix
 //
 // Description:
 //
@@ -513,7 +514,7 @@
 		{
 		start++;
 		TInt end=FindDelimiter(EEndUid);
-		if ((end-start) == KUidBufLength)
+		if (0<end && (end-start)<=KUidBufLength)
 			{
 			TBuf<KUidBufLength> uidBuf=iBuf->Mid(start, end-start);
 			TLex lex(uidBuf);
@@ -672,3 +673,4 @@
 	if (total>iBuf->Des().MaxLength())
 		iBuf=iBuf->ReAllocL(total);
 	}
+
--- a/localisation/apparchitecture/apgrfx/APSCLI.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/APSCLI.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,29 +13,43 @@
 // Description:
 // Client access to the AppArc server
 // 
+// apscli.cpp
 //
 
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+
 #include <e32base.h>
 #include <e32svr.h>
 #include <e32math.h>
 #include <apasvst.h>
-#include <apsserv.h>
 #include <e32uid.h>
 
 _LIT(KNameApaImage,"APSEXE");
 const TUid KServerUid3  = { 0x10003A3F };
-const TInt KApaServThreadMaxHeapSize = 0x100000; // 1Mb
-const TInt KApaServThreadStackSize = 0x3000; // Apparc server need extra stack as it has a lot of filenames and parse objects on stack from time to time
 
-EXPORT_C TInt StartupApaServer(MApaAppStarter& aAppStarter)
 /**
-Start the server in a thread, using the supplied app starter.
+StartupApaServerProcess
+Start the server in a process. Simultaneous launching of two such processes 
+should be detected when the second one attempts to create the server object, 
+failing with KErrAlreadyExists.
 
-@internalTechnology
+@publishedPartner 
+@released
 */
+EXPORT_C TInt StartupApaServerProcess()
 	{
-	RThread server;
-	TInt r=server.Create(NameApaServServerThread(),ApaServThreadStart,KApaServThreadStackSize,KMinHeapSize,KApaServThreadMaxHeapSize,&aAppStarter,EOwnerThread);
+	const TUidType uidType(KNullUid, KNullUid, KServerUid3);
+	TInt r=KErrNone;
+	
+	// On ARM or any EKA2 target, the server is an EXE.
+	// Create a process from it.
+	RProcess server;
+	r=server.Create(KNameApaImage,KNullDesC,uidType);
+	
 	if (r!=KErrNone)
 		return r;
 	TRequestStatus stat;
@@ -49,53 +63,3 @@
 	return stat.Int();
 	}
 
-EXPORT_C TInt StartupApaServerProcess()
-/**
-StartupApaServerProcess
-Start the server in a process, (or thread in EKA1 WINS). Simultaneous launching
-of two such processes should be detected when the second one attempts to
-create the server object, failing with KErrAlreadyExists.
-
-@publishedPartner 
-*/
-	{
-	const TUidType uidType(KNullUid, KNullUid, KServerUid3);
-	TInt r=KErrNone;
-	
-#ifdef APA_SERVER_IN_THREAD
-	// In WINS the server is a DLL, the exported entrypoint returns a TInt
-	// which represents the real entry-point for the server thread
-	RLibrary lib;
-	r=lib.Load(KNameApaImage,uidType);
-	if (r!=KErrNone)
-		return r;
-	TLibraryFunction ordinal1=lib.Lookup(1);
-	TThreadFunction serverFunc=reinterpret_cast<TThreadFunction>(ordinal1());
-	// To deal with the unique thread (+semaphore!) naming in EPOC, and that we may
-	// be trying to restart a server that has just exited we attempt to create a
-	// unique thread name for the server.
-	// This uses Math::Random() to generate a 32-bit random number for the name
-	TName name(NameApaServServerThread());
-	name.AppendNum(Math::Random(),EHex);
-	RThread server;
-	r=server.Create(name, serverFunc, KApaServThreadStackSize, NULL, &lib, NULL, KMinHeapSize,KApaServThreadMaxHeapSize, EOwnerProcess);
-	lib.Close();
-#else
-	// On ARM or any EKA2 target, the server is an EXE.
-	// Create a process from it.
-	RProcess server;
-	r=server.Create(KNameApaImage,KNullDesC,uidType);
-#endif
-	
-	if (r!=KErrNone)
-		return r;
-	TRequestStatus stat;
-	server.Rendezvous(stat);
-	if (stat!=KRequestPending)
-		server.Kill(0);		// abort startup
-	else
-		server.Resume();	// logon OK - start the server
-	User::WaitForRequest(stat);		// wait for start or death
-	server.Close();
-	return stat.Int();
-	}
--- a/localisation/apparchitecture/apgrfx/apgconstdata.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/apgconstdata.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -30,3 +30,4 @@
    be set in the SystemGUI via the patchable constant.
 */
 EXPORT_C extern const TInt KMinApplicationStackSize = 0;
+
--- a/localisation/apparchitecture/apgrfx/apgnotif.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/apgnotif.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -32,8 +32,7 @@
 It creates a session with the application architecture server (RApaLsSession), 
 issues the notification request to the server and adds itself to the active scheduler.
 
-@param aObserver Observer whose HandleAppListEvent() function is called when an 
-application is added or deleted.
+@param aObserver Observer whose HandleAppListEvent() function is called when application list is changed.
 @param aPriority The active object priority.
 @return The application list change notifier. */
 	{
@@ -67,12 +66,19 @@
 void CApaAppListNotifier::RunL()
 	{
 	TInt status=iStatus.Int();
-	User::LeaveIfError(status);
 	iLsSession.SetNotify(EFalse, iStatus); // requeue before handling in case the handling changes things
 	SetActive();
-	iObserver.HandleAppListEvent(status);
+    User::LeaveIfError(status);
+    // On Leave, its not necessary to inform observers as nothing is updated
+    iObserver.HandleAppListEvent(status);	
 	}
 
+//This function is implemented to avoid panic the clients (with E32USER-CBase 47) when RunL leaves
+TInt CApaAppListNotifier::RunError(TInt  /*aError*/)
+    {
+    return KErrNone;
+    }
+
 //
 // MApaAppListServObserver
 //
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/apgrfx/apgrecog.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,689 @@
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apgrecog.cpp
+//
+
+
+#include "../apserv/APSCLSV.H"
+#include "APGCLI.H"
+#include "APGPRIV.H"
+
+class CAsyncFileRecognition;
+
+_LIT8(KAllDataTypes,"*");
+
+
+/**
+This class is an extension class for RApaLsSession. It was added to reduce the need
+of BC breaks in later releases.
+@internalComponent
+*/
+NONSHARABLE_CLASS(CApaLsSessionExtension) : public CBase
+	{
+public:
+	CApaLsSessionExtension(RApaLsSession& aSession);
+	~CApaLsSessionExtension();
+
+	void SendReceive(TInt aFunction,const TIpcArgs& aArgs,TRequestStatus& aStatus) const;
+	TInt SendReceive(TInt aFunction,const TIpcArgs& aArgs) const;
+
+	// file recognition functions
+	void RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus);
+	void CancelRecognizeFiles();
+	void FilesRecognized(const TDesC& aPath, TInt aRequiredBufferSize, CDataRecognitionResultArray& aResult, TRequestStatus& aUsersRequestStatus, const TRequestStatus& aErrorCode);
+	TBool RecognitionActive() const;
+private:
+	RApaLsSession& iSession;	// we are a friend of this class!
+	CAsyncFileRecognition* iAsyncFileRecognition;
+	};
+
+/**
+This class is used to simplify the usage of the asynchronous RApaLsSession::RecognizeFilesL() function.
+@internalComponent
+*/
+NONSHARABLE_CLASS(CAsyncFileRecognition) : public CActive
+	{
+public:
+	CAsyncFileRecognition(CDataRecognitionResultArray& aResult, TRequestStatus& aUsersRequestStatus, CApaLsSessionExtension& aSession);
+	~CAsyncFileRecognition();
+	void Start(const TDesC& aPath, const TDesC8& aDataType);
+private:
+	void RunL();
+	void DoCancel();
+private: // data
+	TPckgBuf<TUint> iRequiredBufferSizePckg;
+	CDataRecognitionResultArray& iResult;
+	TRequestStatus& iUsersRequestStatus;
+	CApaLsSessionExtension& iSession;
+	const TDesC* iPath;
+	const TDesC8* iDataType;
+	};
+
+/**
+An entry of a CDataRecognitionResultArray object. Stores TDataRecognitionResult and the file name
+in a compact format.
+@internalComponent
+*/
+NONSHARABLE_CLASS(CDataRecognitionResultArray::CItem) : public CBase
+	{
+public:
+	CItem(HBufC* aFileName, HBufC8* aDataType, TUid aUid, TInt aConfidence);
+	~CItem();
+	void GetDataRecognitionResult(TDataRecognitionResult& aResult) const;
+	const TDesC& FileName() const;
+private:
+	HBufC* iFileName;
+	HBufC8* iDataType;
+	TUid iUid;
+	TInt iConfidence;
+	};
+
+
+//
+// CApaLsSessionExtension
+//
+
+CApaLsSessionExtension::CApaLsSessionExtension(RApaLsSession& aSession)
+	: iSession(aSession),
+	  iAsyncFileRecognition(NULL)
+	{
+	}
+
+CApaLsSessionExtension::~CApaLsSessionExtension()
+	{
+	delete iAsyncFileRecognition;
+	}
+
+void CApaLsSessionExtension::SendReceive(TInt aFunction,const TIpcArgs& aArgs,TRequestStatus& aStatus) const
+	{
+	iSession.SendReceive(aFunction,aArgs,aStatus); //lint !e1060 Suppress protected member is not accessible to non-member non-friend
+	}
+
+TInt CApaLsSessionExtension::SendReceive(TInt aFunction,const TIpcArgs& aArgs) const
+	{
+	return iSession.SendReceive(aFunction,aArgs); //lint !e1060 Suppress protected member is not accessible to non-member non-friend
+	}
+
+
+
+//
+// CAsyncFileRecognition
+//
+
+CAsyncFileRecognition::CAsyncFileRecognition(CDataRecognitionResultArray& aResult, TRequestStatus& aUsersRequestStatus, CApaLsSessionExtension& aSession)
+	: CActive(EPriorityStandard),
+	  iResult(aResult),
+	  iUsersRequestStatus(aUsersRequestStatus),
+	  iSession(aSession)
+	{
+	CActiveScheduler::Add(this);
+	}
+
+void CAsyncFileRecognition::Start(const TDesC& aPath, const TDesC8& aDataType)
+	{
+	iPath = &aPath;
+	iDataType = &aDataType;
+	iStatus = KRequestPending;
+	iSession.SendReceive(EAppListServRecognizeFilesAsync,TIpcArgs(&aPath,&iRequiredBufferSizePckg,&aDataType),iStatus);
+	SetActive();
+	}
+
+CAsyncFileRecognition::~CAsyncFileRecognition()
+	{
+	Cancel();
+	iPath = NULL;
+	iDataType = NULL;
+	}
+
+void CAsyncFileRecognition::RunL()
+	{
+	iSession.FilesRecognized(*iPath, iRequiredBufferSizePckg(), iResult, iUsersRequestStatus, iStatus);
+	}
+
+void CAsyncFileRecognition::DoCancel()
+	{
+	iSession.SendReceive(ECancelRecognizeFiles,TIpcArgs(TIpcArgs::ENothing));
+	TRequestStatus* status = &iUsersRequestStatus;
+	User::RequestComplete( status, KErrCancel );
+	}
+
+
+/**
+Asynchronous recognition of a directory.
+Function uses an internal CAsyncFileRecognition object to hide the 
+second server message (transferring the data to the client) from the user.
+When the path is not correct or the server is already busy with another 
+recognition request, the function completes the request with an error.
+@internalComponent
+*/
+void CApaLsSessionExtension::RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus)
+	{
+	_LIT(KBackslash,"\\");
+
+	if(aPath.Right(1) != KBackslash)
+		{
+		TRequestStatus* status = &aStatus;
+		User::RequestComplete(status,KErrPathNotFound);
+		}
+	
+	aResult.SetPath(aPath);
+	aStatus = KRequestPending;
+
+	if(!iAsyncFileRecognition)
+		{
+		iAsyncFileRecognition = new (ELeave) CAsyncFileRecognition(aResult, aStatus, *this);
+		iAsyncFileRecognition->Start(aPath, aDataType);
+		}
+	else
+		{
+		TRequestStatus* status = &aStatus;
+		User::RequestComplete(status,KErrInUse);
+		}
+	}
+
+TBool CApaLsSessionExtension::RecognitionActive() const
+	{
+	return iAsyncFileRecognition ? ETrue : EFalse;
+	}
+
+void CApaLsSessionExtension::CancelRecognizeFiles()
+	{
+	if(iAsyncFileRecognition)
+		{
+		iAsyncFileRecognition->Cancel();
+		delete iAsyncFileRecognition;
+		iAsyncFileRecognition = NULL;
+		}
+	}
+
+/**
+Callback function called by an CAsyncFileRecognition object, when an asynchronous
+recognition has finished. If the recognition was successful, the data is transferred
+to the client-side.
+@internalComponent
+*/
+void CApaLsSessionExtension::FilesRecognized(const TDesC& aPath, TInt aRequiredBufferSize, CDataRecognitionResultArray& aResult, TRequestStatus& aUsersRequestStatus, const TRequestStatus& aErrorCode)
+	{
+	TRequestStatus* status = &aUsersRequestStatus;
+	if(aErrorCode == KErrNone)
+		{
+		// transfer the result
+		TRAPD(error,iSession.TransferAndInternalizeDataL(aPath, aRequiredBufferSize, aResult));
+		User::RequestComplete(status, error);
+		}
+	else
+		User::RequestComplete(status, aErrorCode.Int());
+
+	delete iAsyncFileRecognition;
+	iAsyncFileRecognition = 0;
+	}
+
+
+//
+// CItem
+//
+
+CDataRecognitionResultArray::CItem::CItem(HBufC* aFileName, HBufC8* aDataType, TUid aUid, TInt aConfidence)
+	: iFileName(aFileName), 
+	  iDataType(aDataType), 
+	  iUid(aUid), 
+	  iConfidence(aConfidence)
+	{
+	}
+
+CDataRecognitionResultArray::CItem::~CItem()
+	{
+	delete iFileName;
+	delete iDataType;
+	}
+
+void CDataRecognitionResultArray::CItem::GetDataRecognitionResult(TDataRecognitionResult& aResult) const
+	{
+	TDataRecognitionResult result;
+	if(iDataType->Length() != 0)
+		{
+		TDataType dataType(*iDataType);
+		result.iDataType = dataType;
+		}
+	else
+		{
+		TDataType dataType(iUid);
+		result.iDataType = dataType;
+		}
+
+	result.iConfidence = iConfidence;
+	aResult = result;
+	}
+
+const TDesC& CDataRecognitionResultArray::CItem::FileName() const
+	{
+	if (iFileName == NULL)
+		return KNullDesC;
+	else
+		return *iFileName;
+	}
+
+
+//
+// CDataRecognitionResultArray
+//
+
+/**
+Constructor
+@publishedAll
+@released
+*/
+EXPORT_C CDataRecognitionResultArray::CDataRecognitionResultArray()
+	{
+	}
+
+/**
+Destructor
+@publishedAll
+@released
+*/
+EXPORT_C CDataRecognitionResultArray::~CDataRecognitionResultArray()
+	{
+	iItems.ResetAndDestroy();
+	}
+
+/**
+Returns the path of the recognition results.
+@publishedAll
+@released
+@return The path of the recognition results
+*/
+EXPORT_C const TFileName& CDataRecognitionResultArray::Path() const
+	{
+	return iPath;
+	}
+
+/**
+Returns the number of entries in the CDataRecognitionResultArray.
+@publishedAll
+@released
+@return The number of entries in the CDataRecognitionResultArray.
+*/
+EXPORT_C TUint CDataRecognitionResultArray::Count() const
+	{
+	return iItems.Count();
+	}
+
+/**
+Returns the recognition result of the given index.
+@publishedAll
+@released
+@param aResult On successful completion, this parameter contains the recognition result at the given index.
+@param aIndex The index of the recognition result to be returned. An invalid index causes
+the function to leave with KErrNotFound.
+@return The requested TDataRecognitionResult object
+@leave KErrNotFound An invalid index is passed
+*/
+EXPORT_C void CDataRecognitionResultArray::GetDataRecognitionResultL(TDataRecognitionResult& aResult, const TUint aIndex) const
+	{
+	if( aIndex >= iItems.Count() )
+		User::Leave(KErrNotFound);
+
+	iItems[aIndex]->GetDataRecognitionResult(aResult);
+	}
+
+/**
+Returns the file name of the object at the given index.
+@publishedAll
+@released
+@param aFileName On successful completion, this parameter contains the file name of the object at the given index. 
+@param aIndex Specifies which file name to be returned. An invalid index causes
+the function to leave with KErrNotFound.
+@return The requested file name
+@leave KErrNotFound An invalid index is passed
+*/
+EXPORT_C void CDataRecognitionResultArray::GetFileNameL(TFileName& aFileName, const TUint aIndex) const
+	{
+	if( aIndex >= iItems.Count() )
+		User::Leave(KErrNotFound);
+
+	aFileName.Zero();
+	aFileName.Copy( (iItems[aIndex]->FileName()) );
+	}
+
+TUint CDataRecognitionResultArray::InternalizeL(const CBufFlat& aBuffer)
+	{
+	RBufReadStream readStream;
+	
+	readStream.Open(aBuffer);
+	const TInt count=readStream.ReadUint32L();
+	for (TInt i=0; i<count; ++i)
+		{
+		const TInt fileNameLength = readStream.ReadUint8L();
+		HBufC* const fileName = HBufC::NewLC(fileNameLength);
+		TPtr fileNamePtr = fileName->Des();
+		readStream.ReadL(fileNamePtr,fileNameLength);
+
+		const TInt dataTypeLength = readStream.ReadUint8L();
+		HBufC8* const dataType = HBufC8::NewLC(dataTypeLength);
+		TPtr8 dataTypePtr = dataType->Des();
+		readStream.ReadL(dataTypePtr,dataTypeLength);
+
+		TUid uid;
+		uid.iUid = readStream.ReadInt32L();
+		
+		TInt const confidence = readStream.ReadInt32L();
+		
+		CItem* entry = new (ELeave) CItem(fileName,dataType,uid,confidence);
+		iItems.Append(entry);
+		
+		CleanupStack::Pop(dataType);	// ownership was transferred to "entry"
+		CleanupStack::Pop(fileName);	// ownership was transferred to "entry"
+		}
+
+	readStream.Close();
+		
+	return KErrNone;
+	}
+
+void CDataRecognitionResultArray::SetPath(const TFileName& aPath)
+	{
+	iPath.Copy(aPath);
+	}
+
+//
+//RApaLsSession
+//
+
+/** Gets the data (MIME) type of data passed by buffer.
+
+@param aBuffer A buffer containing data; Provide preferred size of buffer. 
+If MIME type could not be recognized using this buffer, provide a buffer of 
+larger size.
+@param aDataType On return, contains the result of the attempt to recognize 
+data. 
+@return KErrNone, if successful; otherwise one of the other system-wide error 
+codes. 
+
+@see RApaLsSession::GetPreferredBufSize()
+*/
+EXPORT_C TInt RApaLsSession::RecognizeData(const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const
+    {
+    return RecognizeData(KNullDesC,aBuffer,aDataType);
+    }
+
+/** Gets the data (MIME) type for data taken from a file with a specified name.
+
+@param aName The full filename, including drive and path, of the file containing the data.
+@param aBuffer A buffer containing data taken from the specified file; Provide preferred size of buffer 
+from beginning of the file. If MIME type could not be recognized using this buffer, provide a buffer of 
+larger size.
+@param aDataType On return, contains the result of the attempt to recognize 
+data. 
+@return KErrNone, if successful; otherwise one of the other system-wide error 
+codes. 
+
+@see RApaLsSession::GetPreferredBufSize()
+*/
+EXPORT_C TInt RApaLsSession::RecognizeData(const TDesC& aName, const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const
+	{
+	TPckg<TDataRecognitionResult> result(aDataType);
+	return SendReceiveWithReconnect(EAppListServRecognizeData,TIpcArgs(&result, &aName, &aBuffer));
+	} //lint !e1764: Suppress reference parameter could be declared const ref
+
+/** Gets the data (MIME) type for data in a file passed by handle.
+
+@param aFile The file containing the data. Before this function can be called,
+the file server session which owns this file handle must first be marked as shareable by 
+calling RFs::ShareProtected().
+@param aDataType On return, contains the result of the attempt to recognize 
+data. 
+@return KErrNone, if successful; otherwise one of the other system-wide error 
+codes. */
+EXPORT_C TInt RApaLsSession::RecognizeData(const RFile& aFile, TDataRecognitionResult& aDataType) const
+	{
+	TPckg<TDataRecognitionResult> result(aDataType);
+	TIpcArgs ipcArgs(&result);
+	const TInt error = aFile.TransferToServer(ipcArgs, 1, 2);
+	if (error)
+		return error;
+
+	return SendReceiveWithReconnect(EAppListServRecognizeDataPassedByFileHandle,ipcArgs);
+	} //lint !e1764 Suppress reference parameter 'aDataType' could be declared const ref
+
+
+
+/** Tests whether data taken from a named file has the specified 
+ * data (MIME) type.
+
+@param aName The name of the file containing the data.
+@param aBuffer A buffer containing data taken from the specified file; Provide preferred size of buffer 
+from beginning of the file. If MIME type could not be recognized using this buffer, provide a buffer of 
+larger size.
+@param aDataType The data (MIME) type.
+@param aResult On return, contains the result of the test.
+@return KErrNone, if successful; otherwise one of the other system-wide error 
+codes. 
+
+@see RApaLsSession::GetPreferredBufSize()
+*/
+EXPORT_C TInt RApaLsSession::RecognizeSpecificData(const TDesC& aName, const TDesC8& aBuffer, const TDataType& aDataType, TBool& aResult) const
+	{
+	const TPckgC<TDataType> dataType(aDataType);
+	const TInt returnValue=SendReceiveWithReconnect(EAppListServRecognizeSpecificData,TIpcArgs(&dataType, &aName, &aBuffer));
+	if (returnValue<0)
+		return returnValue;
+
+	aResult = returnValue;
+	return KErrNone;
+	}
+	
+/** 
+Gets the data (MIME) type for files in a specified directory. Because this call may take a long
+time to complete, the asynchronous version is strongly recommended. Furthermore, it is not possible
+to use this synchronous function while an asynchronous request is still active.
+@publishedAll
+@released
+@param aPath A valid path. Note that the path must end with a backslash.
+@param aResult If the call was successful, this parameter contains the recognition result.
+@return KErrNone, if successful; otherwise one of the other system-wide error codes.
+*/
+EXPORT_C TInt RApaLsSession::RecognizeFilesL(const TDesC& aPath, CDataRecognitionResultArray& aResult) const
+	{
+	return RecognizeFilesL(aPath, KAllDataTypes, aResult);
+	}
+
+/** 
+Gets the data (MIME) type for files in a specified directory. Because this call may take a long
+time to complete, the asynchronous version is strongly recommended. Furthermore, it is not possible
+to use this synchronous function while an asynchronous request is still active.
+@publishedAll
+@released
+@param aPath A valid path. Note that the path must end with a backslash.
+@param aDataType A data type filter. Wildcards are allowed. For example, "text*" would also
+add "text/plain" data types to the result.
+@param aResult If the call was successful, this parameter contains the recognition result.
+@return KErrNone, if successful; otherwise one of the other system-wide error codes.
+*/
+EXPORT_C TInt RApaLsSession::RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult) const
+	{
+	if(iExtension && iExtension->RecognitionActive())
+		return KErrInUse;
+
+	_LIT(KBackslash,"\\");
+	if(aPath.Right(1) != KBackslash)
+		return KErrPathNotFound;
+
+	TPckgBuf<TUint> requiredBufferSizePckg;
+	aResult.SetPath(aPath);
+	TInt error = SendReceiveWithReconnect(EAppListServRecognizeFiles,TIpcArgs(&aPath,&requiredBufferSizePckg,&aDataType));
+	if(!error)
+		error=TransferAndInternalizeDataL(aPath, requiredBufferSizePckg(), aResult);
+
+	return error;
+
+	}
+
+/** 
+Gets the data (MIME) type for files in a specified directory.
+@publishedAll
+@released
+@param aPath A valid path. Note that the path must end with a backslash.
+@param aResult If the call was successful, this parameter contains the recognition result.
+@param aStatus A request status object.
+*/
+EXPORT_C void RApaLsSession::RecognizeFilesL(const TDesC& aPath, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus)
+	{
+	RecognizeFilesL(aPath,KAllDataTypes,aResult,aStatus);
+	}
+
+/** 
+Gets the data (MIME) type for files in a specified directory.
+@publishedAll
+@released
+@param aPath A valid path. Note that the path must end with a backslash.
+@param aDataType A data type filter. Wildcards are allowed. For example, "text*" would also
+add "text/plain" data types to the result.
+@param aResult If the call was successful, this parameter contains the recognition result.
+@param aStatus A request status object
+*/
+EXPORT_C void RApaLsSession::RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus)
+	{
+	if(!iExtension)
+		iExtension = new (ELeave) CApaLsSessionExtension(*this);
+
+	iExtension->RecognizeFilesL(aPath, aDataType, aResult, aStatus);
+	}
+
+/**
+This function transfers the data to the client-side and "fills" the CDataRecognitionResultArray object. 
+@internalComponent
+*/
+TInt RApaLsSession::TransferAndInternalizeDataL(const TDesC& aPath, const TInt aRequiredBufferSize, CDataRecognitionResultArray& aResult) const
+	{
+	CBufFlat* const buffer = CBufFlat::NewL(aRequiredBufferSize);
+	CleanupStack::PushL(buffer);
+	buffer->ExpandL(0,aRequiredBufferSize);
+	TPtr8 bufPtr=buffer->Ptr(0);
+
+	// transfer recognition buffer
+	TInt error = SendReceiveWithReconnect(EAppListServTransferRecognitionResult,TIpcArgs(&aPath,&bufPtr,aRequiredBufferSize));
+	if(!error)
+		error = aResult.InternalizeL(*buffer);
+
+	CleanupStack::PopAndDestroy(buffer);
+	return error;
+	}
+
+/** 
+Cancels any outstanding asynchronous recognition requests.
+@publishedAll
+@released
+*/
+EXPORT_C void RApaLsSession::CancelRecognizeFiles()
+	{
+	if(iExtension)
+		iExtension->CancelRecognizeFiles();
+	
+	delete iExtension;
+	iExtension = NULL;
+	}
+
+/** Tests whether data taken from a file passed by handle has the specified 
+data (MIME) type.
+
+@param aFile The file containing the data. Before this function can be called,
+the file server session which owns this file handle must first be marked as shareable by 
+calling RFs::ShareProtected().
+@param aDataType The data (MIME) type.
+@param aResult On return, contains the result of the test.
+@return KErrNone, if successful; otherwise one of the other system-wide error 
+codes. */
+EXPORT_C TInt RApaLsSession::RecognizeSpecificData(const RFile& aFile, const TDataType& aDataType, TBool& aResult) const
+	{
+	const TPckgC<TDataType> dataType(aDataType);
+	TIpcArgs ipcArgs(&dataType);
+	TInt returnValue = aFile.TransferToServer(ipcArgs, 1, 2);
+	if (returnValue == KErrNone)
+		returnValue = SendReceiveWithReconnect(EAppListServRecognizeSpecificDataPassedByFileHandle,ipcArgs);
+
+	if (returnValue < KErrNone)
+		return returnValue;
+		
+	aResult = returnValue;
+	return KErrNone;
+	}
+
+
+
+/** Gets the confidence threshold for successful data recognition.
+
+This is the minimum acceptable confidence level that must be reported by a 
+data recognizer for data to be accepted as of a given type.
+
+@param aConfidence On return, the confidence threshold. 
+@return KErrNone, if successful; otherwise one of the other system-wide error 
+codes. 
+*/
+EXPORT_C TInt RApaLsSession::GetAcceptedConfidence(TInt& aConfidence) const
+	{
+	TPckg<TInt> confidence(aConfidence);
+	return SendReceiveWithReconnect(EAppListServGetConfidence,TIpcArgs(&confidence));
+	} //lint !e1764 Suppress reference parameter could be declared const ref
+
+
+
+/** Sets the confidence threshold for successful data recognition.
+
+This is the minimum acceptable confidence level that must be reported by a 
+data recognizer for data to be accepted as of a given type.
+
+@param aConfidence The confidence threshold. Although this is an integer value, 
+data recognizers use the discrete values defined by the CApaDataRecognizerType::TRecognitionConfidence 
+enumeration.
+@return KErrNone, if successful; otherwise one of the other system-wide error 
+codes. 
+@capability WriteDeviceData 
+*/
+EXPORT_C TInt RApaLsSession::SetAcceptedConfidence(TInt aConfidence)
+	{
+	return SendReceiveWithReconnect(EAppListServSetConfidence,TIpcArgs(aConfidence));
+	} //lint !e1762 Suppress member function could be made const
+
+
+/** Gets a list of recognized data(MIME) types by all recognizers.
+
+@param aDataTypes The array of data (MIME) types.
+@return KErrNone, if successful; otherwise one of the other system-wide error 
+codes. 
+*/
+EXPORT_C TInt RApaLsSession::GetSupportedDataTypesL(CDataTypeArray& aDataTypes) const
+	{
+	// gets the datatype count in terms of buffer length; negative value means one of the system-wide error
+	TInt ret = SendReceiveWithReconnect(EAppListServGetDataTypesPhase1,TIpcArgs());
+	if (ret>0)
+		{
+		CBufFlat* const buf=CBufFlat::NewL(ret);
+		CleanupStack::PushL(buf);
+		buf->ExpandL(0,ret);
+		TPtr8 ptr=buf->Ptr(0);
+		ret=SendReceiveWithReconnect(EAppListServGetDataTypesPhase2,TIpcArgs(&ptr));
+		if (ret==KErrNone)
+			{
+			RBufReadStream readStream(*buf);
+			readStream >> aDataTypes;
+			}
+			
+		CleanupStack::PopAndDestroy(buf);
+		}
+		
+	return ret;
+	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/apgrfx/apgstart.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,579 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apgstart.cpp
+//
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "../apserv/APSCLSV.H"
+#include "APGCLI.H"
+#include "APACMDLN.H"
+#include "APGSTD.H"
+
+#if defined(USE_IH_RAISE_EVENT)		
+// For performance system test 
+// see /common/testtools/systemmonitor/instrumentationhandler/inc/raiseevent.h
+// and /common/generic/plattest/Group/SetEnv.bat
+#include <systemmonitor/raiseevent.h>
+#include <test/testinstrumentation.h>
+#endif
+
+/** Starts an application defined by the specified command line information.
+    This is an asynchronous method which doesn't wait for the process creation to complete.
+    To be informed of the process creation success, 
+    then appropriate overloaded method taking a TRequestStatus parameter should be used.
+    
+This is only recommended for non document based applications.
+
+View based applications are usually started by activating a specific view 
+using CCoeAppUi::ActivateViewL. Alternatively, using StartApp() to start a 
+view based application will activate the application's default view.
+
+@param aCommandLine The command line.
+@return KErrNone, if successful; KErrNotFound, if the application cannot be 
+found; otherwise one of the other system-wide error codes. 
+@see CCoeAppUi::ActivateViewL() 
+*/
+EXPORT_C TInt RApaLsSession::StartApp(const CApaCommandLine& aCommandLine)
+	{
+	return DoStartApp(aCommandLine, NULL,NULL);
+	}
+	
+/** Starts an application defined by the specified command line information.
+    This is an asynchronous method which doesn't wait for the process creation to complete.
+    To be informed of the process creation success, 
+    then appropriate overloaded method taking a TRequestStatus parameter should be used.
+
+This is only recommended for non document based applications.
+
+View based applications are usually started by activating a specific view 
+using CCoeAppUi::ActivateViewL. Alternatively, using StartApp() to start a 
+view based application will activate the application's default view.
+
+@param aCommandLine The command line.
+@param aThreadId On return, the id of the main thread started.
+@return KErrNone, if successful; KErrNotFound, if the application cannot be 
+found; otherwise one of the other system-wide error codes. 
+@see CCoeAppUi::ActivateViewL() 
+*/	
+EXPORT_C TInt RApaLsSession::StartApp(const CApaCommandLine& aCommandLine,TThreadId& aThreadId)
+	{
+	return DoStartApp(aCommandLine, &aThreadId,NULL);
+	}
+
+	
+/** Starts an application defined by the specified command line information.
+
+This is only recommended for non document based applications.
+
+View based applications are usually started by activating a specific view 
+using CCoeAppUi::ActivateViewL. Alternatively, using StartApp() to start a 
+view based application will activate the application's default view.
+
+@param aCommandLine The command line.
+@param aThreadId On return, the id of the main thread started.
+@param aRequestStatusForRendezvous If not NULL, the asynchronous RProcess::Rendezvous() 
+function is called (being passed this TRequestStatus object) before RProcess::Resume() is called on 
+the new application process. If this function does not return KErrNone, RProcess::Rendezvous() will
+not be called passing aRequestStatusForRendezvous, so in this case the caller must not wait
+on aRequestStatusForRendezvous.
+@return KErrNone, if successful; KErrNotFound, if the application cannot be 
+found; otherwise one of the other system-wide error codes. 
+@see CCoeAppUi::ActivateViewL() 
+*/
+EXPORT_C TInt RApaLsSession::StartApp(const CApaCommandLine& aCommandLine,TThreadId& aThreadId,TRequestStatus* aRequestStatusForRendezvous )
+	{
+	return DoStartApp(aCommandLine, &aThreadId,aRequestStatusForRendezvous);
+	}
+
+
+TInt RApaLsSession::DoStartApp(const CApaCommandLine& aCommandLine, TThreadId* aThreadId,TRequestStatus* aRequestStatusForRendezvous)
+	{
+	TRAPD(error, DoStartAppL(aCommandLine, aThreadId, aRequestStatusForRendezvous));
+	return error;
+	}
+
+void RApaLsSession::DoStartAppL(const CApaCommandLine& aCommandLine, TThreadId* aThreadId,TRequestStatus* aRequestStatusForRendezvous)
+	{
+	// This function does not require "this" object to be connected to the Apparc server,
+	// but if not, it works with some limitations (see the following document for a list
+	// of these limitations: 
+	// generic/app-framework/Documentation/PREQ967_solution_constraints.doc).
+
+#if defined(USE_IH_RAISE_EVENT)
+	const TInt appStartupInstrumentationEventIdBase=aCommandLine.AppStartupInstrumentationEventIdBase();
+	if (appStartupInstrumentationEventIdBase!=0)
+		{
+		IH_DECLARE( lInstrumentationHandler );
+		IH_CREATE( lInstrumentationHandler );
+		IH_RAISE_EVENT( lInstrumentationHandler, appStartupInstrumentationEventIdBase+MTestInstrumentation::TIDOffsetBeginApplicationFirstRedraw );
+		IH_RAISE_EVENT( lInstrumentationHandler, appStartupInstrumentationEventIdBase+MTestInstrumentation::TIDOffsetBeginApplicationReadyForInput );
+		IH_DELETE( lInstrumentationHandler );
+		}
+#endif
+
+ 	// Retrieve the executable name from the CApaCommandLine object passed in.
+	const TPtrC logicalExecutableName(aCommandLine.ExecutableName());
+	// Rule-based app launching is not allowed unless there is a connected RApaLsSession object.
+	if(Handle() != KNullHandle)
+		{
+		// requesting from rule-based plug-ins if we can run an application 
+		// if server fails while requested rule-based plug-ins it returns a negative value - proceed with launching the application in this case
+		const TBool okayToRun = SendReceiveWithReconnect(EAppListServRuleBasedLaunching, TIpcArgs(&logicalExecutableName));
+		User::LeaveIfError(!okayToRun ? KErrCancel : okayToRun);	// May leave with KErrNotFound if exe not found
+		}
+
+	TFileName nativeExecutableNameOfNonNativeApplication;
+	RProcess process;
+	HBufC8* opaqueData = NULL;
+	CleanupStack::PushL(TCleanupItem(DeletePointerToPointerToTAny, &opaqueData));
+
+	// if we're connected to the Apparc server, try to get the opaque-data and native-executable name
+	// (the latter is only if it's a non-native application that we're launching)
+	if (Handle()!=KNullHandle)
+		{
+		const TInt lengthOfOpaqueData=User::LeaveIfError(SendReceiveWithReconnect(EAppListServGetNativeExecutableNameIfNonNative, TIpcArgs(&nativeExecutableNameOfNonNativeApplication, &logicalExecutableName)));
+		User::LeaveIfError(GetNewOpaqueData(opaqueData, lengthOfOpaqueData));
+		}
+
+	// try first to create the application process without interacting with the Apparc server at all - 
+	// assumes "logicalExecutableName" is itself a native executable
+	TUidType uidType(KNullUid, KNullUid, KNullUid);
+	TInt err = process.CreateWithStackOverride(logicalExecutableName, KNullDesC, uidType, MinApplicationStackSize(), EOwnerProcess);
+	 
+	// If we haven't been able to create the process using the native executable name from the command line
+	// object, instead try to create it using the native executable name of the non-native application.
+	// Can only do this if apparc is connected and thus this name has been retrieved above and 
+	// nativeExecutableNameOfNonNativeApplication populated.
+	if (err && nativeExecutableNameOfNonNativeApplication.Length() > 0)
+		err = process.CreateWithStackOverride(nativeExecutableNameOfNonNativeApplication, KNullDesC, uidType, MinApplicationStackSize(), EOwnerProcess);
+
+	// if we managed to create the process via either of the two methods attempted above (with the native 
+	// name or the native name of the non-native app), finish setting it up and "resume" it
+	if (!err)
+		{
+		CleanupStack::PushL(TCleanupItem(CleanupOperation, &process));
+
+		if(opaqueData)
+			const_cast<CApaCommandLine&>(aCommandLine).SetOpaqueDataL(*opaqueData);
+		
+		aCommandLine.SetProcessEnvironmentL(process);
+
+		if (aThreadId)
+			GetMainThreadIdL(*aThreadId, process);
+
+		if (aRequestStatusForRendezvous)
+			process.Rendezvous(*aRequestStatusForRendezvous);
+
+		// Note - must not leave between here and the end of this method because we only expect
+		// the caller to wait on aRequestStatusForRendezvous if this method does not leave.
+		if(aRequestStatusForRendezvous != NULL && *aRequestStatusForRendezvous != KRequestPending)
+			{
+			User::WaitForRequest(*aRequestStatusForRendezvous);
+			User::Leave(aRequestStatusForRendezvous->Int()); // item on cleanupstack terminates and closes the process
+			}
+		else
+			{
+			process.Resume();	
+			}
+		CleanupStack::Pop(&process);	
+		process.Close();
+		}
+
+	CleanupStack::PopAndDestroy(&opaqueData);
+	User::LeaveIfError(err);
+	} //lint !e1762 Suppress member function could be made const
+	
+void RApaLsSession::CleanupOperation(TAny* aAny)
+	{
+	RProcess* activeProcess = reinterpret_cast<RProcess*>(aAny);	
+	activeProcess->Terminate(KErrGeneral);
+	activeProcess->Close();
+	}
+	
+
+/**
+Get the ID of the process's main thread.
+*/
+void RApaLsSession::GetMainThreadIdL(TThreadId& aThreadId, const RProcess& aProcess)
+	{ // static
+	TFullName fullName(aProcess.Name());
+	_LIT(KCCMain,"::Main");
+	fullName.Append(KCCMain);
+	RThread thread;
+	User::LeaveIfError(thread.Open(fullName, EOwnerThread));
+	aThreadId = thread.Id();
+	thread.Close();
+	}
+
+void RApaLsSession::DeletePointerToPointerToTAny(TAny* aPointerToPointerToTAny)
+	{ // static
+	__ASSERT_ALWAYS(aPointerToPointerToTAny, Panic(EPanicNullPointer));
+	delete *static_cast<TAny**>(aPointerToPointerToTAny); //lint !e613 Suppress possible use of null pointer
+	} //lint !e818 Suppress pointer parameter could be declared as pointing to const
+
+/**
+Gets the executable's file name and a new buffer containing its opaque data.
+
+Sets up slots 0 and 1 in aIpcArgs - assumes that slots 2 and 3 have already been set up; 
+it then invokes aOpcode
+*/
+TInt RApaLsSession::GetExecutableNameAndNewOpaqueData(TDes& aNativeExecutableName, TDes& aLogicalExecutableName, HBufC8*& aOpaqueData, TIpcArgs& aIpcArgs, TInt aOpcode) const
+	{
+	aNativeExecutableName.SetLength(0); // if this comes out zero-length from EAppListServExecutableNameForXxx below then use the logicalExecutableName in RProcess::Create (in this case it's a native C++ application)
+	aIpcArgs.Set(0, &aNativeExecutableName);
+	aIpcArgs.Set(1, &aLogicalExecutableName);
+	
+	const TInt lengthOfOpaqueData = SendReceiveWithReconnect(aOpcode, aIpcArgs);
+	if (lengthOfOpaqueData < 0)
+		return lengthOfOpaqueData; // it's an error code
+
+	return GetNewOpaqueData(aOpaqueData, lengthOfOpaqueData);
+	}
+
+/**
+Allocated a new buffer for aOpaqueData containing data fetched fronm AppArc server.
+Returns an error code if no opaque data could be allocated or fetched.
+*/
+TInt RApaLsSession::GetNewOpaqueData(HBufC8*& aOpaqueData, TInt aLengthOfOpaqueData) const
+	{
+	aOpaqueData = NULL;
+	if(!aLengthOfOpaqueData)
+		return KErrNone;	// Nothing to get
+	
+	// Make sure it's not a negative error code
+	ASSERT(aLengthOfOpaqueData > 0);
+	
+	// Allocate a buffer for the opaque data
+	HBufC8* const opaqueData = HBufC8::New(aLengthOfOpaqueData);
+	if (!opaqueData)
+		return KErrNoMemory;
+	
+	// Get the opaque data from the AppArc server
+	TPtr8 opaqueData_asWritable(opaqueData->Des());
+	const TInt error = SendReceiveWithReconnect(EAppListServGetOpaqueData, TIpcArgs(&opaqueData_asWritable));
+	if(error)
+		delete opaqueData;
+	else
+		aOpaqueData = opaqueData;
+	
+	return error;
+	}
+
+TInt RApaLsSession::StartApplicationPassingFileHandle(const TDesC& aNativeExecutableName, const TDesC& aLogicalExecutableName, const TDesC8* aOpaqueData, const RFile& aFile, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous)
+	{
+	TFileName documentName;
+	aFile.FullName(documentName);
+	CApaCommandLine* commandLine=NULL;	
+	TRAPD(error, 	commandLine=CApaCommandLine::NewLC();
+					commandLine->SetCommandL(EApaCommandOpen);
+					commandLine->SetExecutableNameL(aLogicalExecutableName);
+					commandLine->SetFileByHandleL(aFile);
+					commandLine->SetDocumentNameL(documentName);
+					if (aOpaqueData)
+						commandLine->SetOpaqueDataL(*aOpaqueData);
+
+					DoStartApplicationL(aNativeExecutableName, *commandLine, aThreadId, aRequestStatusForRendezvous);
+					CleanupStack::PopAndDestroy(commandLine));
+					
+	return error;
+	}
+	
+TInt RApaLsSession::StartApplicationPassingDocumentName(const TDesC& aNativeExecutableName, const TDesC& aLogicalExecutableName, const TDesC8* aOpaqueData, const TDesC& aDocumentName, TThreadId& aThreadId,TApaCommand aCommand, TRequestStatus* aRequestStatusForRendezvous)
+	{
+	CApaCommandLine* commandLine=NULL;
+	TRAPD(error, 	commandLine=CApaCommandLine::NewLC();
+					commandLine->SetCommandL(aCommand);
+					commandLine->SetExecutableNameL(aLogicalExecutableName);
+					commandLine->SetDocumentNameL(aDocumentName);
+					if (aOpaqueData)
+						commandLine->SetOpaqueDataL(*aOpaqueData);
+
+					DoStartApplicationL(aNativeExecutableName, *commandLine, aThreadId, aRequestStatusForRendezvous);
+					CleanupStack::PopAndDestroy(commandLine));
+
+	return error;
+	}
+
+/**
+*/
+void RApaLsSession::DoStartApplicationL(const TDesC& aNativeExecutableName, const CApaCommandLine& aCommandLine, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous)
+	{ 
+	TPtrC actualNativeExecutableName(aNativeExecutableName);
+	if(!actualNativeExecutableName.Length())
+		actualNativeExecutableName.Set(aCommandLine.ExecutableName()); // it's a native C++ application, rather than a MIDlet, Python script, etc
+
+	// Aquire permission to start the app from "application start rule" plug-ins
+	if(Handle() != KNullHandle)	// Connected to AppArc server?
+		{
+		const TBool okayToRun = SendReceiveWithReconnect(EAppListServRuleBasedLaunching, TIpcArgs(&actualNativeExecutableName));
+		// If server fails while requested rule-based plug-ins it returns a negative value. 
+		// We shall proceed with launching an application in this case.
+		User::LeaveIfError(!okayToRun ? KErrCancel : okayToRun);	// May leave with KErrNotFound if exe is not found or KErrNotSupported if embeddable only
+		}
+
+	// Start the application
+	
+	// Create a new process
+	RProcess process;
+	TUidType uidType(KNullUid, KNullUid, KNullUid);
+	User::LeaveIfError(process.CreateWithStackOverride(actualNativeExecutableName, KNullDesC, uidType, MinApplicationStackSize(), EOwnerProcess)); // RProcess::CreateWithStackOveride - TESTED
+	CleanupClosePushL(process);
+	
+	// Write the command line data to the process environment
+	// This is used inside the new process to resume the execution
+	aCommandLine.SetProcessEnvironmentL(process);
+	
+	//  Find the ID of the new process's main thread
+	GetMainThreadIdL(aThreadId, process);
+	
+	// Rendezvous with the new process, if required
+	if (aRequestStatusForRendezvous)
+		process.Rendezvous(*aRequestStatusForRendezvous);
+
+	process.Resume();
+	CleanupStack::PopAndDestroy(&process);
+	} //lint !e1762 Suppress member function could be made const
+
+
+
+/** Finds and launches an application to handle the document contained in the specified 
+file.
+
+@param aDocFileName The document name.
+@param aThreadId On return, the id of the main thread started.
+@param aLaunchType Not used. Deprecated.
+@return KErrNone, if successful; EAppListInvalid, if the server's initial population of 
+the list has not completed; KErrNotFound, if a matching entry could not be found; otherwise 
+one of the other system-wide error codes. 
+*/
+EXPORT_C TInt RApaLsSession::StartDocument(const TDesC& aDocFileName, TThreadId& aThreadId, TLaunchType /*aLaunchType*/)
+	{
+	HBufC8* buffer = NULL;
+	TInt error = GetNewBufferFromFile(buffer, aDocFileName);
+	if (error)
+		return error;
+
+	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
+	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
+	HBufC8* opaqueData = NULL;
+	TIpcArgs ipcArgs;
+	ipcArgs.Set(2, &aDocFileName);
+	ipcArgs.Set(3, buffer);
+	error = GetExecutableNameAndNewOpaqueData(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenDocument);
+	if (error)
+		{
+		delete buffer;
+		return error;
+		}
+		
+	error = StartApplicationPassingDocumentName(nativeExecutableName, logicalExecutableName, opaqueData, aDocFileName, aThreadId, EApaCommandOpen, NULL);
+	delete opaqueData;
+
+	delete buffer;
+	return error;
+	}
+
+/** Finds and launches an application to handle the document contained in the specified file
+
+@param aFile  The file handle. Before this function can be called,
+the file server session which owns this file handle must first be marked as shareable by 
+calling RFs::ShareProtected().
+@param aThreadId On return, the id of the main thread started.
+@param aRequestStatusForRendezvous If not NULL, the asynchronous RProcess::Rendezvous() 
+function is called (being passed this TRequestStatus object) before RProcess::Resume() is called on 
+the new application process.
+@return KErrNone, if successful; KErrNotFound, if no suitable application can 
+be found; otherwise one of the other system-wide error codes. 
+*/
+EXPORT_C TInt RApaLsSession::StartDocument(RFile& aDocFile, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous/*=NULL*/)
+	{
+	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
+	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
+	HBufC8* opaqueData = NULL;
+	TIpcArgs ipcArgs;
+	TInt error = aDocFile.TransferToServer(ipcArgs, 2, 3);
+	if (!error)
+		error = GetExecutableNameAndNewOpaqueData(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenDocumentPassedByFileHandle);
+	
+	if (error)
+		return error;
+
+	error = StartApplicationPassingFileHandle(nativeExecutableName, logicalExecutableName, opaqueData, aDocFile, aThreadId, aRequestStatusForRendezvous);
+	delete opaqueData;
+	return error;
+	} //lint !e1764 Suppress reference parameter could be declared const ref
+
+
+/** Launches an application that can handle the specified data (MIME) type.
+
+The application handles the document contained in the specified file.
+
+@param aDocFileName The document name.
+@param aDataType The data (MIME) type.
+@param aThreadId On return, the id of the main thread started.
+@param aLaunchType Not used. Deprecated.
+@return KErrNone, if successful; EAppListInvalid if the server's initial population of 
+the list has not completed; KErrNotFound, if no suitable application can 
+be found; otherwise one of the other system-wide error codes. 
+*/
+EXPORT_C TInt RApaLsSession::StartDocument(const TDesC& aDocFileName, const TDataType& aDataType, TThreadId& aThreadId, TLaunchType /*aLaunchType*/)
+	{
+	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
+	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
+	HBufC8* opaqueData=NULL;
+	const TPckgC<TDataType> dataType(aDataType);
+	TIpcArgs ipcArgs;
+	ipcArgs.Set(2, &dataType);
+	TInt error=GetExecutableNameAndNewOpaqueData(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenDataType);
+	if (error)
+		return error;
+
+	error = StartApplicationPassingDocumentName(nativeExecutableName, logicalExecutableName, opaqueData, aDocFileName, aThreadId,EApaCommandOpen,NULL);
+	delete opaqueData;
+
+	return error;
+	}
+
+/** Finds and launches an application to handle the document contained in the specified file
+
+@param aDocFile The file handle.
+@param aDataType The data (MIME) type.
+@param aThreadId On return, the id of the main thread started.
+@param aRequestStatusForRendezvous If not NULL, the asynchronous RProcess::Rendezvous() 
+function is called (being passed this TRequestStatus object) before RProcess::Resume() is called on 
+the new application process.
+@return KErrNone, if successful; KErrNotFound, if no suitable application can 
+be found; otherwise one of the other system-wide error codes. 
+*/
+EXPORT_C TInt RApaLsSession::StartDocument(RFile& aDocFile, const TDataType& aDataType, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous/*=NULL*/)
+	{
+	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
+	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
+	HBufC8* opaqueData = NULL;
+	const TPckgC<TDataType> dataType(aDataType);
+	TIpcArgs ipcArgs;
+	ipcArgs.Set(2, &dataType);
+	TInt error = GetExecutableNameAndNewOpaqueData(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenDataType);
+	if (error)
+		return error;
+
+	error = StartApplicationPassingFileHandle(nativeExecutableName, logicalExecutableName, opaqueData, aDocFile, aThreadId, aRequestStatusForRendezvous);
+	delete opaqueData;
+	return error;
+	} //lint !e1764 Suppress reference parameter could be declared const ref
+
+
+/** Launches the application identified by the specified UID.
+
+The application handles the document contained in the specified file.
+
+@param aDocFileName The document name.
+@param aAppUid The application specific UID.
+@param aThreadId On return, the id of the main thread started.
+@param aLaunchType Not used. Deorecated.
+@return KErrNone, if successful; EAppListInvalid if the server's initial population of 
+the list has not completed; KErrNotFound, if no suitable application can 
+be found; otherwise one of the other system-wide error codes. */
+EXPORT_C TInt RApaLsSession::StartDocument(const TDesC& aDocFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType /*aLaunchType*/)
+	{
+	// Get the executable file name and "opaque" app meta-data from AppArc server
+	
+	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
+	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
+	HBufC8* opaqueData = NULL;
+	
+	TIpcArgs ipcArgs;
+	ipcArgs.Set(2, aAppUid.iUid);
+	
+	TInt error = GetExecutableNameAndNewOpaqueData(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenAppUid);
+	if (error)
+		return error;
+	
+	// Start the application, passing it the document file name
+
+	error = StartApplicationPassingDocumentName(nativeExecutableName, logicalExecutableName, opaqueData, aDocFileName, aThreadId, EApaCommandOpen, NULL);
+	delete opaqueData;
+	
+	return error;
+	}
+
+/** Finds and launches an application to handle the document contained in the specified file
+
+@param aDocFile The file handle.
+@param aAppUid The application specific UID.
+@param aThreadId On return, the id of the main thread started.
+@param aRequestStatusForRendezvous If not NULL, the asynchronous RProcess::Rendezvous() 
+function is called (being passed this TRequestStatus object) before RProcess::Resume() is called on 
+the new application process.
+@return KErrNone, if successful; KErrNotFound, if no suitable application can 
+be found; otherwise one of the other system-wide error codes. */
+EXPORT_C TInt RApaLsSession::StartDocument(RFile& aDocFile, TUid aAppUid, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous/*=NULL*/)
+	{
+	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
+	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
+	HBufC8* opaqueData=NULL;
+	TIpcArgs ipcArgs;
+	ipcArgs.Set(2, aAppUid.iUid);
+	TInt error = GetExecutableNameAndNewOpaqueData(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenAppUid);
+	if (error)
+		return error;
+
+	error = StartApplicationPassingFileHandle(nativeExecutableName, logicalExecutableName, opaqueData, aDocFile, aThreadId, aRequestStatusForRendezvous);
+	delete opaqueData;
+	return error;
+	} //lint !e1764 Suppress reference parameter could be declared const ref
+
+
+/** Launches the application identified by the specified UID and creates a new document.
+
+To create a document file with the passed document name, the application needs to override the 3-parameter
+overload of ProcessCommandParametersL() to call the 2-parameter overload.
+
+Otherwise, a document will be created with the default document name present in the application resource file.
+If default document name is empty or not provided, no document is created.
+
+If the application resource file is not present, a document with application caption name is created.
+
+@param aDocFileName The document name.
+@param aAppUid The application specific UID. 
+@param aThreadId On return, the id of the main thread started.
+@param aLaunchType Not used. Deprecated.
+@return KErrNone, if successful; EAppListInvalid if the server's initial population of 
+the list has not completed; KErrNotFound, if no suitable application can 
+be found; otherwise one of the other system-wide error codes. 
+@see CEikAppUi::ProcessCommandParametersL().
+*/
+EXPORT_C TInt RApaLsSession::CreateDocument(const TDesC& aDocFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType /*aLaunchType*/)
+	{
+	TFileName nativeExecutableName; // the name of the EXE that we pass to RProcess::Create
+	TFileName logicalExecutableName; // the name of the MIDlet, Python script, etc
+	HBufC8* opaqueData=NULL;
+	TIpcArgs ipcArgs;
+	ipcArgs.Set(2, aAppUid.iUid);
+	TInt error = GetExecutableNameAndNewOpaqueData(nativeExecutableName, logicalExecutableName, opaqueData, ipcArgs, EAppListServGetExecutableNameGivenAppUid);
+	if (error)
+		return error;
+
+	error = StartApplicationPassingDocumentName(nativeExecutableName, logicalExecutableName, opaqueData, aDocFileName, aThreadId,EApaCommandCreate,NULL);
+	delete opaqueData;
+
+	return error;
+	}
+	
+
+
--- a/localisation/apparchitecture/apgrfx/apprivate.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/apprivate.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -28,3 +28,4 @@
 _LIT(KLitFormatForLocalisableResourceFile, "%08x_loc.rsc");
 
 #endif
+
--- a/localisation/apparchitecture/apgrfx/apsecutils.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/apsecutils.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,6 +13,7 @@
 // Description:
 // Security issues related methods used across apparc
 // 
+// apsecutils.cpp
 //
 
 #include <e32std.h>
--- a/localisation/apparchitecture/apgrfx/apsecutils.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/apsecutils.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,6 +11,7 @@
 // Contributors:
 //
 // Description:
+// apsecutils.h
 //
 
 #ifndef __APSECUTILS_H__
@@ -32,6 +33,6 @@
     inline static TBool IsSidProtected( const TUint32 aSid );
     };
     
-#include "apsecutils.inl"
+#include "../apgrfx/apsecutils.inl"
     
 #endif // __APSECUTILS_H__
--- a/localisation/apparchitecture/apgrfx/apsecutils.inl	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apgrfx/apsecutils.inl	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/aplappinforeader.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,1296 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// aplappinforeader.cpp
+//
+
+#include "aplapplist.h"
+#include "aplapplistitem.h"
+#include "aplappinforeader.h"
+#include <apgaplst.h>
+#include <bautils.h>
+#include "APGICNFL.H" 
+#include "APFDEF.H"
+#include "../apgrfx/apprivate.h"		// KUidPrefixedNonNativeRegistrationResourceFile
+#include <barsc2.h>
+#include <barsread2.h>
+#include <e32uid.h>
+#include "../apgrfx/APGSTD.H"			// EPanicNullPointer
+#include "../apgrfx/apsecutils.h"		// CApaSecurityUtils
+
+const TUint KResourceOffsetMask = 0xFFFFF000;
+
+_LIT(KAppBinaryPathAndExtension, "\\sys\\bin\\.exe");
+const TInt KAppRegistrationInfoResourceId = 1;
+
+// The 2nd UID that defines a resource file as being an application registration resource file.
+const TUid KUidAppRegistrationFile = {0x101F8021};
+
+//
+// Local functions
+//
+
+extern void CleanupServiceArray(TAny* aServiceArray);	// Implemented in AplAppList.cpp
+
+// ApaUtils
+
+TBool ApaUtils::TypeUidIsForRegistrationFile(const TUidType& aUidType)
+	{ // static
+	return (aUidType[1].iUid==KUidAppRegistrationFile.iUid ||
+		   aUidType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile);
+	}
+
+
+//
+// CApaAppInfoReader
+//
+
+// The behaviour of the Take-methods of this class is a little non-standard, as it
+// transfers ownership of the pointer owned by a CApaAppInfoReader derived object
+// to the caller. This means that this function is only designed to be called once.
+// Doing things this way provides a small performance optimisation by enabling the caller
+// to delete it's stored pointer, and replace it with one returned by this function,
+// instead of having to copy the object (copying could be expensive for the methods
+// of this class that need to return arrays).
+
+
+CApaAppInfoReader* CApaAppInfoReader::NewL(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid)
+	{
+	CApaAppInfoReader* self = new(ELeave) CApaAppInfoReader(aFs, aRegistrationFileName, aAppUid);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CApaAppInfoReader::CApaAppInfoReader(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid) :
+	iFs(aFs),
+	iAppUid(aAppUid),
+	iTimeStamp(0),
+	iDefaultScreenNumber(0),
+	iNonMbmIconFile(EFalse),
+	iLocalisableResourceFileTimeStamp(0),
+	iApplicationLanguage(ELangNone),
+	iIndexOfFirstOpenService(KErrNotFound),
+	iRegistrationFileName(aRegistrationFileName)
+	{
+	}
+
+void CApaAppInfoReader::ConstructL()
+	{
+	iIconLoader = CApaIconLoader::NewL(iFs);
+	}
+
+CApaAppInfoReader::~CApaAppInfoReader()
+	{
+	delete iAppBinaryFullName;
+	delete iCaption;
+	delete iShortCaption;
+	delete iIcons;
+	if (iViewDataArray)
+		iViewDataArray->ResetAndDestroy();
+	
+	delete iViewDataArray;
+	delete iOwnedFileArray;
+	delete iIconFileName;
+	delete iLocalisableResourceFileName;
+	
+	if (iServiceArray)
+ 		{
+ 		CleanupServiceArray(iServiceArray);
+ 		iServiceArray = NULL;
+  		}
+  		
+	delete iOpaqueData;
+	delete iIconLoader;
+	}
+
+HBufC* CApaAppInfoReader::AppBinaryFullName()
+	{
+	HBufC* fileName = iAppBinaryFullName;
+	iAppBinaryFullName = NULL; // ownership transferred to caller
+	return fileName;
+	}
+
+TUidType CApaAppInfoReader::AppBinaryUidType() const
+	{
+	return iAppBinaryUidType;
+	}
+
+TTime CApaAppInfoReader::TimeStamp() const
+	{
+	return iTimeStamp;
+	}
+
+TTime CApaAppInfoReader::IconFileTimeStamp() const
+     {
+     return iIconFileTimeStamp;
+     }
+
+void CApaAppInfoReader::Capability(TDes8& aCapabilityBuf) const
+	{
+	TApaAppCapabilityBuf buf(iCapability);
+	TApaAppCapability::CopyCapability(aCapabilityBuf, buf);
+	}
+
+TUint CApaAppInfoReader::DefaultScreenNumber() const
+	{
+	return iDefaultScreenNumber;
+	}
+
+HBufC* CApaAppInfoReader::Caption()
+	{
+	HBufC* caption = iCaption;
+	iCaption = NULL; // ownership transferred to caller
+	return caption;
+	}
+
+HBufC* CApaAppInfoReader::ShortCaption()
+	{
+	HBufC* shortCaption = iShortCaption;
+	iShortCaption = NULL; // ownership transferred to caller
+	return shortCaption;
+	}
+
+CApaAppIconArray* CApaAppInfoReader::Icons()
+	{
+	CApaAppIconArray* icons = iIcons;
+	iIcons = NULL; // ownership transferred to caller
+	return icons;
+	}
+
+TInt CApaAppInfoReader::NumOfAppIcons() const
+	{
+	return iNumOfAppIcons;
+	}
+
+CArrayPtrFlat<CApaAppViewData>* CApaAppInfoReader::Views()
+	{
+	CArrayPtrFlat<CApaAppViewData>* viewDataArray = iViewDataArray;
+	iViewDataArray = NULL; // ownership transferred to caller
+	return viewDataArray;
+	}
+	
+CDesCArray* CApaAppInfoReader::OwnedFiles()
+	{
+	CDesCArray* ownedFileArray = iOwnedFileArray;
+	iOwnedFileArray = NULL; // ownership transferred to caller
+	return ownedFileArray;
+	}
+
+HBufC* CApaAppInfoReader::IconFileName()
+	{
+	HBufC* iconFileName = iIconFileName;
+	iIconFileName = NULL; // ownership transferred to caller
+	return iconFileName;
+	}
+
+TBool CApaAppInfoReader::NonMbmIconFile() const
+	{
+	return iNonMbmIconFile;
+	}
+
+HBufC* CApaAppInfoReader::LocalisableResourceFileName()
+	{
+	HBufC* localisableResourceFileName = iLocalisableResourceFileName;
+	iLocalisableResourceFileName = NULL; // ownership transferred to caller
+	return localisableResourceFileName;
+	}
+
+TTime CApaAppInfoReader::LocalisableResourceFileTimeStamp() const
+	{
+	return iLocalisableResourceFileTimeStamp;
+	}
+	
+TLanguage CApaAppInfoReader::AppLanguage() const
+	{
+	return iApplicationLanguage;
+	}
+
+CArrayFixFlat<TApaAppServiceInfo>* CApaAppInfoReader::ServiceArray(TInt& aIndexOfFirstOpenService)
+	{
+	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = iServiceArray;
+	iServiceArray = NULL;
+	aIndexOfFirstOpenService = iIndexOfFirstOpenService;
+	return serviceArray;
+	}
+
+HBufC8* CApaAppInfoReader::OpaqueData()
+	{
+	HBufC8* opaqueData = iOpaqueData;
+	iOpaqueData = NULL;
+	return opaqueData;
+	}
+
+CApaIconLoader* CApaAppInfoReader::IconLoader()
+	{
+	CApaIconLoader* iconLoader = iIconLoader;
+	iIconLoader = NULL; // ownership transferred to caller
+	return iconLoader;
+	}
+
+// reads as much info as it can
+// at least captions and icons must be setup on return from this method (using defaults if necessary)
+TBool CApaAppInfoReader::ReadL()
+	{
+	TEntry entry;
+	User::LeaveIfError(iFs.Entry(iRegistrationFileName, entry));
+	iTimeStamp = entry.iModified;
+	
+	TUint fileOffset = 0;
+	TInt fileLength = 0;
+	TUid firstUid(KExecutableImageUid);
+	TUid middleUid(KUidApp);
+
+	// in the case of a non-native application, the resource file
+	// has been padded with the application type uid
+	
+	if (TParsePtrC(iRegistrationFileName).Path().CompareF(KLitPathForNonNativeResourceAndIconFiles)==0)
+		{
+		fileOffset = sizeof(TCheckedUid);
+		fileLength = entry.iSize-fileOffset;
+		firstUid = KNullUid;
+		middleUid = entry[1];
+		if (middleUid == KNullUid)
+			User::Leave(KErrCorrupt);
+		}
+		
+	// set the TUidType for the app binary
+	// cannot read the TEntry info from the app binary because it's in \sys\bin
+	iAppBinaryUidType = TUidType(firstUid, middleUid, iAppUid);	
+
+	CResourceFile* registrationFile = CResourceFile::NewLC(iFs, iRegistrationFileName, fileOffset, fileLength);
+	RResourceReader	resourceReader;
+	resourceReader.OpenLC(registrationFile, KAppRegistrationInfoResourceId);	
+
+	TRAPD(err, ReadMandatoryInfoL(resourceReader));
+	if (err)
+		{
+		CleanupStack::PopAndDestroy();	// resourceReader
+		CleanupStack::PopAndDestroy(registrationFile);
+		return EFalse; // might have read something, but failed to setup enough info to make it worthwhile trying to read any more
+		}
+
+	CResourceFile* localisableFile = NULL;
+	TUint localisableResourceId = 1; // only initialising this here to keep the compiler happy, as it's concerned that the variable might be used without having been initialised. The variable should be initialised later, before it's used
+	TRAP(err, ReadNonLocalisableInfoL(resourceReader, localisableFile, localisableResourceId));
+
+	if (!err)
+		TRAP(err, ReadNonLocalisableOptionalInfoL(resourceReader, registrationFile, localisableFile));
+
+	TBool useDefaultIcons = ETrue;
+	if (!err && localisableFile)
+		TRAP(err, ReadLocalisableInfoL(*localisableFile, localisableResourceId, useDefaultIcons));
+
+	delete localisableFile;
+	localisableFile = NULL;
+	
+	// if anything went wrong, we tell the caller that the read was unsuccessful. Some
+	// of the members of this class may contain data which is not complete, but this doesn't matter
+	// because the caller shouldn't try to access the data if the read was unsuccessful
+	const TBool readSuccessful = (err == KErrNone);
+
+	if (useDefaultIcons)
+		{
+		delete iIcons;
+		iIcons = NULL;
+		TRAP_IGNORE(iIcons = CApaAppIconArray::NewDefaultIconsL());
+		}
+
+	CleanupStack::PopAndDestroy();	// resourceReader
+	CleanupStack::PopAndDestroy(registrationFile);
+	return readSuccessful;
+	}
+
+
+// this method reads the minimum information required to register an app
+// if this fails (Leaves), we say the read has been unsuccessful
+void CApaAppInfoReader::ReadMandatoryInfoL(RResourceReader& aResourceReader)
+	{
+	aResourceReader.ReadUint32L(); // skip over LONG reserved_long
+	aResourceReader.ReadUint32L(); // skip over LLINK reserved_llink
+
+	// read LTEXT app_file
+	const TPtrC appFile(aResourceReader.ReadTPtrCL());
+	TParse parse; // this object gets used for 2 purposes: first to check that a TParsePtrC can be created over "appFile" without it panicking, and second to construct iAppBinaryFullName
+	User::LeaveIfError(parse.SetNoWild(appFile, NULL, NULL)); // do this before creating a TParsePtrC, since TParsePtrC's constructor panics if it fails (which would provide an easy way for malware to kill the Apparc server)
+	const TParsePtrC appFileParser(appFile);
+
+	// read LONG attributes
+	iCapability.iAttributes = aResourceReader.ReadUint32L();
+
+	if (!appFileParser.NamePresent())
+		User::Leave(KErrCorrupt);
+
+	const TPtrC appNameWithoutExtension(appFileParser.Name());
+	const TPtrC registrationFileDrive(TParsePtrC(iRegistrationFileName).Drive());
+	
+	if (iCapability.iAttributes & TApaAppCapability::ENonNative)
+		{
+		if (!appFileParser.PathPresent() || !appFileParser.ExtPresent())
+			User::Leave(KErrCorrupt);
+
+		const TPtrC appFilePath(appFileParser.Path());
+		const TPtrC appFileNameAndExt(appFileParser.NameAndExt());
+		TPtrC appFileDrive(registrationFileDrive);
+		if (appFileParser.DrivePresent())
+			appFileDrive.Set(appFileParser.Drive());
+
+		User::LeaveIfError(parse.SetNoWild(appFileDrive, &appFilePath, &appFileNameAndExt));
+		}
+	else if (iCapability.iAttributes & TApaAppCapability::EBuiltAsDll)
+		{
+		User::Leave(KErrNotSupported); // legacy dll-style app
+		}
+	else
+		{
+		// exe-style app
+		User::LeaveIfError(parse.SetNoWild(registrationFileDrive, &KAppBinaryPathAndExtension, &appNameWithoutExtension));
+		}
+
+	iAppBinaryFullName = parse.FullName().AllocL();
+	}
+
+
+HBufC* CApaAppInfoReader::CreateFullIconFileNameL(const TDesC& aIconFileName) const
+	{
+	HBufC* filename = NULL;
+	if (aIconFileName.Length() == 0)
+		return NULL;
+	/*
+	 * aIconFileName may contain a valid string in some format (for eg. URI format) other than path to a regular file on disk
+	 * and that can be a mbm or non-mbm file. Such a filename will be reported as invalid filename by iFs.IsValidName() method. 
+	 * aIconFileName will be returned since it is a valid string. 
+	 */	
+	if(!iFs.IsValidName(aIconFileName))
+		{
+		filename = aIconFileName.AllocL();
+		return filename;
+		}
+	
+	TParsePtrC parsePtr(aIconFileName);
+	if (parsePtr.IsWild() || !parsePtr.PathPresent() || !parsePtr.NamePresent())
+		return NULL;
+
+	// check for fully qualified icon filename
+	if (parsePtr.DrivePresent() && BaflUtils::FileExists(iFs, aIconFileName))
+		filename = aIconFileName.AllocL();
+	else
+		{
+		// check for icon file on same drive as localisable resource file
+		TParse parse;
+		TPtrC localisableResourceFileDrive = TParsePtrC(*iLocalisableResourceFileName).Drive();
+		TInt ret = parse.SetNoWild(localisableResourceFileDrive, &aIconFileName, NULL);
+		if (ret == KErrNone && BaflUtils::FileExists(iFs, parse.FullName()))
+			filename = parse.FullName().AllocL();
+		else
+			{
+			TPtrC registrationFileDrive = TParsePtrC(iRegistrationFileName).Drive();
+			if (TInt(TDriveUnit(registrationFileDrive)) != TInt(TDriveUnit(localisableResourceFileDrive)))
+				{
+				// check for icon file on same drive as registration file
+				ret = parse.SetNoWild(registrationFileDrive, &aIconFileName, NULL);
+				if (ret == KErrNone && BaflUtils::FileExists(iFs, parse.FullName()))
+					filename = parse.FullName().AllocL();
+				}
+			}
+		}
+
+	return filename;
+	}
+
+void CApaAppInfoReader::ReadLocalisableInfoL(const CResourceFile& aResourceFile, TUint aResourceId, TBool& aUseDefaultIcons)
+	{
+	RResourceReader resourceReader;
+	resourceReader.OpenLC(&aResourceFile, aResourceId);
+
+	resourceReader.ReadUint32L(); // skip over LONG reserved_long
+	resourceReader.ReadUint32L(); // skip over LLINK reserved_llink
+
+	// read LTEXT short_caption
+	iShortCaption = resourceReader.ReadHBufCL();
+
+	resourceReader.ReadUint32L(); // skip over LONG reserved_long
+	resourceReader.ReadUint32L(); // skip over LLINK reserved_llink
+
+	// read LTEXT caption
+	iCaption = resourceReader.ReadHBufCL();
+
+	// read WORD number_of_icons
+	const TInt numOfIcons = resourceReader.ReadInt16L();
+	iNumOfAppIcons = numOfIcons;
+
+	// read LTEXT icon_file
+	TPtrC iconFile = resourceReader.ReadTPtrCL();
+	
+	ASSERT(!iIconFileName);
+	iIconFileName = CreateFullIconFileNameL(iconFile);
+	if (iIconFileName)
+		{
+		TEntry entry;
+		TInt ret = iFs.Entry(*iIconFileName, entry);
+		if (KErrNone == ret)
+			iIconFileTimeStamp = entry.iModified;
+
+			
+		aUseDefaultIcons = EFalse;
+		if (iFs.IsValidName(*iIconFileName))
+			{
+			RFile file;
+            TInt fileSize( 0 );
+            User::LeaveIfError( file.Open(iFs, *iIconFileName, EFileShareReadersOnly ));
+            CleanupClosePushL( file );
+            User::LeaveIfError( file.Size( fileSize ) );
+            CleanupStack::PopAndDestroy();//file
+            if ( fileSize > 0  )
+                {
+				if(FileIsMbmWithGenericExtensionL(*iIconFileName))
+					{
+					if (numOfIcons > 0)
+						{
+						CApaAppIconArray* iconArray = CApaAppIconArray::NewAppIconsL(numOfIcons, *iIconFileName, *iIconLoader);
+						delete iIcons;
+						iIcons = iconArray;
+						}
+					else
+						{
+						aUseDefaultIcons = ETrue;		
+						}
+					}
+				else
+					{
+					iNonMbmIconFile = ETrue;
+					}
+				}
+				            //File is of size 0 with Valid filename 
+			else
+                {
+                aUseDefaultIcons = ETrue; 
+                }
+            }
+			//If the filename is not a valid name then the file is treated as a non-mbm file.
+		else
+			{
+			iNonMbmIconFile = ETrue;
+			}
+		}
+
+	// read LEN WORD STRUCT view_list[]
+	const TInt numOfViews = resourceReader.ReadInt16L();
+	if (numOfViews > 0)
+		iViewDataArray = new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);
+
+	for(TInt view = 0; view < numOfViews; ++view)
+		{
+		CApaAppViewData* viewData = CApaAppViewData::NewLC();
+		resourceReader.ReadUint32L(); // skip over LONG reserved_long
+		resourceReader.ReadUint32L(); // skip over LLINK reserved_llink
+
+		// read LONG uid
+		const TUid viewUid = {resourceReader.ReadInt32L()};
+		viewData->SetUid(viewUid);
+		// read LONG screen_mode
+		const TInt screenMode = {resourceReader.ReadInt32L()};
+		viewData->SetScreenMode(screenMode);
+
+		resourceReader.ReadUint32L(); // skip over LONG reserved_long
+		resourceReader.ReadUint32L(); // skip over LLINK reserved_llink
+
+		// read LTEXT caption
+		TPtrC viewCaption = resourceReader.ReadTPtrCL();
+		viewData->SetCaptionL(viewCaption);
+		// read WORD number_of_icons
+		const TInt numOfViewIcons = resourceReader.ReadInt16L();
+		viewData->SetNumOfViewIcons(numOfViewIcons);
+
+		// read LTEXT icon_file
+		TPtrC viewIconFile = resourceReader.ReadTPtrCL();
+		HBufC* const fullViewIconFileName = CreateFullIconFileNameL(viewIconFile);
+		if (fullViewIconFileName)
+			{
+			CleanupStack::PushL(fullViewIconFileName);
+			viewIconFile.Set(*fullViewIconFileName);
+			viewData->SetIconFileNameL(viewIconFile);
+			
+			if (iFs.IsValidName(viewIconFile))
+				{
+				if(!FileIsMbmWithGenericExtensionL(viewIconFile))
+					viewData->SetNonMbmIconFile(ETrue);
+				}
+			else	//If the filename is not a valid name then the file is treated as a non-mbm file.
+				viewData->SetNonMbmIconFile(ETrue);
+			}
+		else
+			{
+			viewIconFile.Set(KNullDesC);
+			if (numOfViewIcons > 0 && iIconFileName)
+				viewIconFile.Set(*iIconFileName); // default to app icon filename
+			}
+		if (numOfViewIcons > 0 && iFs.IsValidName(viewIconFile) && FileIsMbmWithGenericExtensionL(viewIconFile))
+			{
+			CApaAppIconArray* iconArray = CApaAppIconArray::NewViewIconsL(numOfViewIcons, viewIconFile, *iIconLoader);
+			viewData->SetIconArray(iconArray);
+			iconArray = NULL;
+			}
+
+		if (fullViewIconFileName)
+			CleanupStack::PopAndDestroy(fullViewIconFileName);
+
+		iViewDataArray->AppendL(viewData);
+		CleanupStack::Pop(viewData);
+		}
+
+	// Read LTEXT group_name
+	// If a localised group name has been specified, it overrides
+	// The group name (if any), specified by APP_REGISTRATION_INFO
+
+	TApaAppGroupName groupName;
+	TRAPD(ret, (groupName = resourceReader.ReadTPtrCL()));
+	if (ret != KErrNone)
+		{
+		 if (ret != KErrEof)
+	         User::Leave(ret);
+		}
+	else
+		{
+	     if (groupName.Length() > 0)
+			 iCapability.iGroupName = groupName;
+		}
+
+	CleanupStack::PopAndDestroy(&resourceReader);
+	}
+
+/*An MBM file may have a generic icon extension. In this case, as a way to check whether the file is an MBM one, 
+it is necessary to read the content of the fist four 32bit words of it and find out whether these words correspond to 
+KWriteonceFileStoreUid, KMultiBitmapFileImageUid, zero and KMultiBitmapFileImageChecksum respectively (defined in graphics/gditools/bmconv/bmconv.h).
+So the file is opened and the first 4 32 bit words are extracted and compared with the header information of standard MBM file.
+If they match, the function returns ETrue, else it returns EFalse */
+TBool CApaAppInfoReader::FileIsMbmWithGenericExtensionL(const TDesC& aFileName)
+      { 
+      if (aFileName.Length() > 0) 
+            { 
+            //open a file in Share mode - this will allow other methods to access it too
+            RFile file;
+            RFs fs;
+            User::LeaveIfError(fs.Connect());
+            CleanupClosePushL(fs);
+            User::LeaveIfError(file.Open(fs,aFileName,EFileShareReadersOnly));
+            //this is done beacuse the file can also be accessed by applist at the same time
+            //buffer stores the 16 bytes of the file
+            CleanupClosePushL(file);
+            TBuf8<16> buffer;
+            User::LeaveIfError(file.Read(buffer,16));
+            CleanupStack::PopAndDestroy();//file
+            CleanupStack::PopAndDestroy(&fs);//fs
+            //we use a constant pointer to the buffer to read header info
+        	TPtrC8 filePointer(buffer);
+        	
+            /*The first 16 bytes of an MBM file are the same for any generic MBM file.
+            These are :
+            KWriteOnceFileStoreUid = 0x10000037(Emulator MBM file) 0x10000041(ROM image)	
+            KMultiBitMapFileImageUid = 0x10000042(Emulator MBM file) 	0x00000001(ROM image)
+            Zero = 0x00000000(Emulator MBM file) 0x0000000C(ROM image)
+            checksum = 0x47396439(Emulator MBM file) 0x10000040(ROM image)
+            The first 16 bytes of the given file is compared with these standard values to ascertain it is MBM file*/
+        	if((filePointer[3]==0x10)&&(filePointer[2]==0x00)&&(filePointer[1]==0x00)&&(filePointer[0]==0x37))
+        		{//KWriteOnceFileStoreUid = 0x10000037
+        		if((filePointer[7]==0x10)&&(filePointer[6]==0x00)&&(filePointer[5]==0x00)&&(filePointer[4]==0x42))
+        			{//KMultiBitMapFileImageUid = 0x10000042
+        			if((filePointer[11]==0x00)&&(filePointer[10]==0x00)&&(filePointer[9]==0x00)&&(filePointer[8]==0x00))
+        				{//Zero = 0x00000000)
+        				if((filePointer[15]==0x47)&&(filePointer[14]==0x39)&&(filePointer[13]==0x64)&&(filePointer[12]==0x39))
+        					{//checksum = 0x47396439
+        					return ETrue;
+        					}
+        				}
+        			}
+        		}
+        	//Else Check for ROM Image MBM file's header
+        	else if((filePointer[3]==0x10)&&(filePointer[2]==0x00)&&(filePointer[1]==0x00)&&(filePointer[0]==0x41))
+        		{//KWriteOnceFileStoreUid = 0x10000041
+        		if((filePointer[7]==0x00)&&(filePointer[6]==0x00)&&(filePointer[5]==0x00)&&(filePointer[4]==0x01))
+        			{//KMultiBitMapFileImageUid = 0x00000001
+        			if((filePointer[11]==0x00)&&(filePointer[10]==0x00)&&(filePointer[9]==0x00)&&(filePointer[8]==0x0C))
+        				{//Zero = 0x0000000C)
+        				if((filePointer[15]==0x10)&&(filePointer[14]==0x00)&&(filePointer[13]==0x00)&&(filePointer[12]==0x40))
+        					{//checksum = 0x10000040
+        					return ETrue;
+        					}
+        				}
+        			}
+        		}
+        	}
+      return EFalse;
+      }
+
+HBufC8* CApaAppInfoReader::ReadOpaqueDataL(TUint aResourceId, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile)
+	{ // static
+	HBufC8* opaqueData = NULL;
+	if (aResourceId == 0)
+		opaqueData = HBufC8::NewL(0);
+	else
+		{
+		if (aResourceId & KResourceOffsetMask)
+			{
+			// expecting opaque data to be in the localisable resource file
+			if (aLocalisableResourceFile)
+				{
+				aLocalisableResourceFile->ConfirmSignatureL();
+				opaqueData = aLocalisableResourceFile->AllocReadLC(aResourceId);
+				CleanupStack::Pop(opaqueData);
+				}
+			else
+				opaqueData = HBufC8::NewL(0);
+			}
+		else
+			{
+			// expecting opaque data to be in the registration file
+			__ASSERT_ALWAYS(aRegistrationFile, Panic(EPanicNullPointer));
+			opaqueData = aRegistrationFile->AllocReadLC(aResourceId); //lint !e613 Suppress ossible use of null pointer
+			CleanupStack::Pop(opaqueData);
+			}
+		}
+
+	return opaqueData;
+	}
+
+void CApaAppInfoReader::ReadNonLocalisableOptionalInfoL(RResourceReader& aResourceReader, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile)
+	{
+	// read LEN WORD STRUCT service_list[]
+	TInt serviceCount = 0;
+	// service information was not present in the first release of the registration file
+	// APP_REGISTRATION_INFO resource struct
+	// this method must not leave if the registration file doesn't contain service information, so the
+	// following call to ReadInt16L is trapped to ensure this method doesn't leave just because
+	// there is no more information in the resource to read (KErrEof)
+	TRAPD(err, serviceCount = aResourceReader.ReadInt16L());
+	if (err)
+		{
+		if (err == KErrEof)
+			return; // end of resource reached
+		
+		User::Leave(err);
+		}
+	
+	if (!iServiceArray && serviceCount > 0)
+		iServiceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
+
+	while (serviceCount--)
+		{
+		const TUid serviceUid = {aResourceReader.ReadUint32L()};
+		
+		if ((serviceUid == KOpenServiceUid) && (iOpenServiceIsLegacy))
+			{
+			ASSERT(iIndexOfFirstOpenService == 0);
+			// If we found an Open service in the SERVICE_INFO declaration
+			// then we must ignore the legacy one
+			(*iServiceArray)[0].Release();
+			iServiceArray->Delete(0);
+			iOpenServiceIsLegacy = EFalse;
+			iIndexOfFirstOpenService = KErrNotFound;
+			}
+		
+		CArrayFixFlat<TDataTypeWithPriority>* mimeTypesSupported = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(5);
+		CleanupStack::PushL(mimeTypesSupported);
+		ReadMimeTypesSupportedL(aResourceReader, *mimeTypesSupported);
+		
+		const TUint resourceId = aResourceReader.ReadUint32L();
+		HBufC8* opaqueData = NULL;
+		opaqueData = ReadOpaqueDataL(resourceId, aRegistrationFile, aLocalisableResourceFile);
+		CleanupStack::PushL(opaqueData);
+		
+		TApaAppServiceInfo serviceInfo(serviceUid, mimeTypesSupported, opaqueData); // takes ownership of opaqueData
+		iServiceArray->AppendL(serviceInfo);
+		CleanupStack::Pop(opaqueData);
+		CleanupStack::Pop(mimeTypesSupported);
+		if ((serviceUid == KOpenServiceUid) && (iIndexOfFirstOpenService < 0))
+			iIndexOfFirstOpenService = iServiceArray->Count() - 1;
+		}
+
+	// read LLINK opaque_data
+	const TUint resourceId = aResourceReader.ReadUint32L();
+	delete iOpaqueData;
+	iOpaqueData = NULL;
+	iOpaqueData = ReadOpaqueDataL(resourceId, aRegistrationFile, aLocalisableResourceFile);
+	}
+
+void CApaAppInfoReader::ReadNonLocalisableInfoL(RResourceReader& aResourceReader, CResourceFile*& aLocalisableResourceFile, TUint& aLocalisableResourceId)
+	{
+	ASSERT(aLocalisableResourceFile == NULL);
+
+	// read LTEXT localisable_resource_file
+	TPtrC localisableResourceFileName(aResourceReader.ReadTPtrCL());
+	if (localisableResourceFileName.Length() > 0 && iFs.IsValidName(localisableResourceFileName))
+		{
+		// determine the language specific name of the localisable resource file
+		TParse parse;
+		TParsePtrC parsePtr(iRegistrationFileName);
+		User::LeaveIfError(parse.SetNoWild(parsePtr.Drive(), &KAppResourceFileExtension, &localisableResourceFileName));
+		TFileName resourceFileName(parse.FullName());
+		BaflUtils::NearestLanguageFileV2(iFs, resourceFileName, iApplicationLanguage);
+		iLocalisableResourceFileName = resourceFileName.AllocL();
+
+		TEntry entry;
+		User::LeaveIfError(iFs.Entry(*iLocalisableResourceFileName, entry));
+		iLocalisableResourceFileTimeStamp = entry.iModified;
+	
+
+		// open the localisable resource file	
+		aLocalisableResourceFile = CResourceFile::NewL(iFs, resourceFileName, 0, 0);
+		}
+
+	// read LONG localisable_resource_id
+	aLocalisableResourceId = aResourceReader.ReadUint32L();
+	if (aLocalisableResourceFile && (aLocalisableResourceId & KResourceOffsetMask))
+		aLocalisableResourceFile->ConfirmSignatureL();
+
+	iCapability.iAppIsHidden = aResourceReader.ReadInt8L();
+	iCapability.iEmbeddability = static_cast<TApaAppCapability::TEmbeddability>(aResourceReader.ReadInt8L());
+	iCapability.iSupportsNewFile = aResourceReader.ReadInt8L();
+	iCapability.iLaunchInBackground = aResourceReader.ReadInt8L();
+	iCapability.iGroupName = aResourceReader.ReadTPtrCL();
+
+	// read BYTE default_screen_number
+	iDefaultScreenNumber = aResourceReader.ReadUint8L();
+ 	
+	//read the datatypes
+	CArrayFixFlat<TDataTypeWithPriority>* datatypes = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(5);
+	CleanupStack::PushL(datatypes);
+	ReadMimeTypesSupportedL(aResourceReader, *datatypes);
+	//dataTypes is deleted if 
+	// A. There are no legacy datatypes
+	// B. Control panel plugin apps are not allowed to register MIME types.If they happen to have any, these datatypes should be ignored.
+	if ((iCapability.iAttributes & TApaAppCapability::EControlPanelItem) || (datatypes->Count() == 0))
+		CleanupStack::PopAndDestroy(datatypes);
+	else
+		{
+		ASSERT(!iServiceArray);
+		iServiceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
+		HBufC8* opaqueData = HBufC8::NewL(0);
+		CleanupStack::PushL(opaqueData);
+		TApaAppServiceInfo serviceInfo(KOpenServiceUid, datatypes, opaqueData);
+		iServiceArray->AppendL(serviceInfo);
+		CleanupStack::Pop(opaqueData);
+		CleanupStack::Pop(datatypes);
+		iIndexOfFirstOpenService = 0;
+		iOpenServiceIsLegacy = ETrue;
+		}
+
+	// read LEN WORD STRUCT file_ownership_list[]
+	const TInt fileOwnershipArraySize = aResourceReader.ReadInt16L();
+	if (fileOwnershipArraySize > 0)
+		iOwnedFileArray = new(ELeave) CDesCArraySeg(1);
+
+	for (TInt i=0; i < fileOwnershipArraySize; i++)
+		{
+		TPtrC fileNamePtr = aResourceReader.ReadTPtrCL();
+		iOwnedFileArray->AppendL(fileNamePtr);
+		}
+	}
+	
+void CApaAppInfoReader::ReadMimeTypesSupportedL(RResourceReader& aResourceReader,
+	CArrayFixFlat<TDataTypeWithPriority>& aMimeTypesSupported)
+	{
+	// read LEN WORD STRUCT datatype_list[]
+	const TInt dataTypeArraySize = aResourceReader.ReadInt16L();
+	if (dataTypeArraySize <= 0)
+		return;
+	
+	for (TInt i=0; i < dataTypeArraySize; i++)
+		{
+		TDataTypePriority priority = static_cast<TDataTypePriority>(aResourceReader.ReadInt32L());
+        
+		//Check for data priority of UnTrusted apps however the trusted apps will not have any restrictions 
+		//over the data priority.	
+		//If an untrusted app has write device data capability (i.e. still has priority = KDataTypePrioritySystem),
+		//do not restrict to KDataTypeUnTrustedPriorityThreshold
+		if (priority > KDataTypeUnTrustedPriorityThreshold || priority == KDataTypePrioritySystem )
+		    {
+		    ReadAppSecurityInfo();
+
+            if (priority == KDataTypePrioritySystem)
+                {
+                // Check that the app has capability WriteDeviceData
+                if (!iHasWriteDeviceDataCap)
+                    priority = KDataTypePriorityNormal;
+                }
+            else
+                {
+                //data priority for UnTrusted apps would be capped if it is greater than the threshold priority i.e, KMaxTInt16.
+                TInt match=iRegistrationFileName.MatchF(KLitPathForUntrustedRegistrationResourceFiles);
+                if (match != KErrNotFound && !iIsSidTrusted) 
+                    {
+                    //if registration file is in import directory and 
+                    //its sid is in unprotected range - downgrade the priority
+                    priority = KDataTypeUnTrustedPriorityThreshold;	
+                    }
+                }
+		    }
+
+		TPtrC8 dataTypePtr = aResourceReader.ReadTPtrC8L();
+		TDataType dataType(dataTypePtr);
+		TDataTypeWithPriority dataTypeWithPriority(dataType, priority);
+		aMimeTypesSupported.AppendL(dataTypeWithPriority);
+		}
+	}
+
+// This method can be used to check whether app has a WriteDeviceCap 
+// and its sid is trusted
+void CApaAppInfoReader::ReadAppSecurityInfo()
+    {
+    if (!iSecurityInfoHasBeenRead)
+        {
+        __ASSERT_DEBUG( iAppBinaryFullName, Panic(EPanicNullPointer) );
+        const TInt err = CApaSecurityUtils::CheckAppSecurity( *iAppBinaryFullName, 
+                                        iHasWriteDeviceDataCap, iIsSidTrusted);
+        if ( KErrNone != err )
+            {
+            iHasWriteDeviceDataCap = EFalse;
+            iIsSidTrusted = EFalse;
+            }
+
+        iSecurityInfoHasBeenRead = ETrue;   
+        }
+    }
+
+//
+// Class CApaIconLoader
+//
+
+CApaIconLoader* CApaIconLoader::NewL(RFs& aFs)
+	{
+	CApaIconLoader* self = NewLC(aFs);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CApaIconLoader* CApaIconLoader::NewLC(RFs& aFs)
+	{
+	CApaIconLoader* self = new(ELeave) CApaIconLoader(aFs);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+CApaIconLoader::CApaIconLoader(RFs& aFs) : iFs(aFs)
+	{
+	}
+
+void CApaIconLoader::ConstructL()
+	{
+	} //lint !e1762 Suppress member function could be made const
+
+
+CApaIconLoader::~CApaIconLoader()
+	{
+	TInt arrayCount = iIconIndexArray.Count();
+	while (--arrayCount >= 0)
+		delete (iIconIndexArray[arrayCount].iFileName);
+
+	iIconIndexArray.Close();
+	iIconArrays.Close();
+	}
+
+void CApaIconLoader::AddIconArrayL(const CApaAppIconArray& aIcons)
+	{
+	iIconArrays.AppendL(&aIcons);
+	}
+
+void CApaIconLoader::LoadAllIconsL()
+	{
+	const TInt iconArraysCount = iIconArrays.Count();
+	CleanupClosePushL(iIconArrays);
+	for (TInt ii = 0; ii <iconArraysCount; ++ii)
+		iIconArrays[ii]->LoadIconsL();
+	CleanupStack::PopAndDestroy(&iIconArrays);
+	}
+
+// given an mbm filename, returns the next index to read from the file
+// always set aUseCache to EFalse on first call in a sequence of calls
+TInt CApaIconLoader::IconIndexL(const TDesC& aFileName, TBool& aUseCache)
+	{
+	if (aUseCache)
+		{
+		TInt ret = iIconIndexArray[iCachedArrayIndex].iIndex++;
+		return ret;
+		}
+	else
+		aUseCache = ETrue;
+
+	// if filename in array, get the next index
+	TInt ret = 0;
+	const TInt arrayCount = iIconIndexArray.Count();
+	TInt arrayIndex;
+	for (arrayIndex = 0; arrayIndex < arrayCount; arrayIndex++)
+		{
+		__ASSERT_DEBUG(iIconIndexArray[arrayIndex].iFileName, Panic(EDPanicInvalidIconIndexArray));
+		if (iIconIndexArray[arrayIndex].iFileName->CompareF(aFileName) == 0)
+			{
+			ret = iIconIndexArray[arrayIndex].iIndex++;
+			iCachedArrayIndex = arrayIndex;
+			break;
+			}
+		}
+
+	if (arrayIndex >= arrayCount)
+		{
+		// filename not found, add it to array
+		TKeyValuePair keyValuePair;
+		keyValuePair.iFileName = aFileName.AllocL();
+		keyValuePair.iIndex = 0;
+		ret = keyValuePair.iIndex++;
+		User::LeaveIfError(iIconIndexArray.Append(keyValuePair));
+		iCachedArrayIndex = arrayCount;
+		}
+
+	return ret;
+	}
+	
+
+
+// returns EFalse if there was an error obtaining aMbmFileName's entry information,
+// otherwise returns ETrue.
+// Leaves if an error occurs while trying to populate aIcons or sort icons
+TBool CApaIconLoader::LoadIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CArrayPtr<CApaMaskedBitmap>& aIcons)
+	{
+	TEntry entry;
+	TInt error=iFs.Entry(aMbmFileName,entry);
+	if (error!=KErrNone)
+		return EFalse;
+
+	TInt iconIndex;
+	TInt fileIndex;
+	TBool useCache = EFalse;
+	
+	// create link to CApaAppList which owns this object as it has a separate share protected RFs
+	// which can be used to load bitmap icons 
+	CApaAppList* const appList = CApaAppList::Self();
+	
+	RFile mbmFile;
+	CleanupClosePushL(mbmFile);
+	User::LeaveIfError(mbmFile.Open(appList->ShareProtectedFileServer(), aMbmFileName, EFileShareReadersOnly));
+
+	for(iconIndex=0; iconIndex<aNumOfIcons; ++iconIndex)	
+		{		
+		CApaMaskedBitmap* bitmap = CApaMaskedBitmap::NewLC();
+		fileIndex = IconIndexL(aMbmFileName, useCache);
+		User::LeaveIfError(bitmap->Load(mbmFile, 2*fileIndex));
+		User::LeaveIfError((bitmap->Mask())->Load(mbmFile,2*fileIndex+1));		
+		aIcons.AppendL(bitmap);
+		CleanupStack::Pop(bitmap);		
+		}
+	
+	CleanupStack::PopAndDestroy(&mbmFile); // close mbmFile	
+
+	// now sort them in ascending order of size
+	TInt numberOfIcons = aIcons.Count();
+	// create a new array that we can sort by area, populated from aIcons
+	RPointerArray<CApaMaskedBitmap> ptrArray(numberOfIcons);
+	CleanupClosePushL(ptrArray);
+	TLinearOrder<CApaMaskedBitmap> order(CApaIconLoader::CompareIcons);
+	for (iconIndex=0; iconIndex<numberOfIcons; iconIndex++)
+		User::LeaveIfError(ptrArray.InsertInOrderAllowRepeats(aIcons[iconIndex], order));
+
+	// copy the sorted icon pointers back into aIcons - must not Leave inside the loop below
+	for (iconIndex=0; iconIndex<numberOfIcons; iconIndex++)
+		aIcons[iconIndex]=ptrArray[iconIndex];
+
+	CleanupStack::PopAndDestroy(&ptrArray);
+
+	return ETrue;
+	}
+
+TInt CApaIconLoader::CompareIcons(const CApaMaskedBitmap& aFirst, const CApaMaskedBitmap& aSecond)
+	{ // static
+	TSize sizeFirst = aFirst.SizeInPixels();
+	TInt areaFirst = sizeFirst.iWidth*sizeFirst.iHeight;
+	TSize sizeSecond = aSecond.SizeInPixels();
+	TInt areaSecond = sizeSecond.iWidth*sizeSecond.iHeight;
+	return areaFirst - areaSecond;
+	}
+
+//
+// Class CApaAppIconArray
+//
+
+CApaAppIconArray* CApaAppIconArray::NewL()
+	{
+	return new(ELeave) CApaAppIconArray();
+	}
+
+/* public factory functions */
+CApaAppIconArray* CApaAppIconArray::NewAppIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader)
+	{
+	return NewL(aNumOfIcons,aMbmFileName,aIconLoader,ETrue);
+	}
+
+CApaAppIconArray* CApaAppIconArray::NewViewIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader)
+	{
+	return NewL(aNumOfIcons,aMbmFileName,aIconLoader,EFalse);
+	}
+
+CApaAppIconArray* CApaAppIconArray::NewDefaultIconsL()
+	{
+	CApaAppIconArray* self = NewL();
+	CleanupStack::PushL(self);
+	self->GetDefaultIconsL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CApaAppIconArray* CApaAppIconArray::NewRealDefaultIconsLC(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader)
+	{
+	return NewLC(aNumOfIcons,aMbmFileName,aIconLoader,EFalse);
+	}
+
+/* real NewL and NewLC, private */
+CApaAppIconArray* CApaAppIconArray::NewL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons)
+	{
+	CApaAppIconArray* self = NewLC(aNumOfIcons,aMbmFileName,aIconLoader,aFallbackToDefaultIcons);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CApaAppIconArray* CApaAppIconArray::NewLC(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons)
+	{
+	CApaAppIconArray* self = new(ELeave) CApaAppIconArray(aNumOfIcons,aIconLoader,aFallbackToDefaultIcons);
+	CleanupStack::PushL(self);
+	self->ConstructL(aMbmFileName);
+	return self;
+	}
+
+CApaAppIconArray::CApaAppIconArray()
+	{
+	}
+
+CApaAppIconArray::CApaAppIconArray(TInt aNumOfIcons, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons) :
+		iNumOfIcons(aNumOfIcons),
+		iIconLoader(&aIconLoader),
+		iFallbackToDefaultIcons(aFallbackToDefaultIcons)
+	{
+	}
+
+void CApaAppIconArray::ConstructL(const TDesC& aMbmFileName)
+	{
+	iMbmFileName = aMbmFileName.AllocL();
+	ASSERT(iIconLoader);
+	iIconLoader->AddIconArrayL(*this);
+	}
+
+CApaAppIconArray::~CApaAppIconArray()
+	{
+	if(iDefaultIconsUsed)
+		{
+		ASSERT(iDefaultIconsProvider);
+		if(iDefaultIconsProvider)
+			iDefaultIconsProvider->ReleaseDefaultIconArray();
+		}
+
+	delete iMbmFileName;
+	if (iIcons)
+		{
+		iIcons->ResetAndDestroy();
+		delete iIcons;
+		}
+
+	iDefaultIconsProvider = NULL;
+	iIconLoader = NULL;
+	}
+
+// returns EFalse if there was an error obtaining iMbmFileName's entry information,
+// otherwise returns ETrue or leaves with a system-wide error code
+TBool CApaAppIconArray::LoadIconsL()
+	{
+	ASSERT(iIconLoader);
+	ASSERT(!iDefaultIconsUsed);
+	ASSERT(!iIcons);
+	iIcons = new(ELeave) CArrayPtrFlat<CApaMaskedBitmap>(5);
+	TBool badMbmEntryInfo = EFalse;
+	TRAPD(err,badMbmEntryInfo = !iIconLoader->LoadIconsL(iNumOfIcons,*iMbmFileName,*iIcons));
+
+	// We'll be called by the iconLoader at most once, and after we've been called,
+	// it might be destroyed. So we shouldn't keep a pointer to it anymore.
+	iIconLoader = NULL;
+
+	if ((badMbmEntryInfo || err != KErrNone) && iFallbackToDefaultIcons)
+		GetDefaultIconsL();
+	else if (badMbmEntryInfo)
+		return EFalse;
+	else if (err != KErrNone)
+		User::Leave(err);
+
+	return ETrue;
+	}
+
+CApaMaskedBitmap* CApaAppIconArray::IconBySize(const TSize& aSize) const
+	{
+	if(iDefaultIconsUsed)
+		return DefaultIcons().IconBySize(aSize);
+	else if(iIcons == NULL && iIconLoader == NULL)
+		{
+		// Then we've been created with the default constructor, just pretend
+		// there's no icon of the right size
+		return NULL;
+		}
+	else if(iIcons == NULL)
+		{
+		// Arriving here means the the icons need loading but havn't been loaded yet.
+		TRAPD(err, iIconLoader->LoadAllIconsL());
+		if (err != KErrNone)
+			return NULL;
+		}
+
+	const TInt count = iIcons->Count();
+	CApaMaskedBitmap* bmp=NULL;
+	for (TInt ii=0;ii<count;ii++)
+		{
+		if ((*iIcons)[ii]->SizeInPixels()==aSize)
+			bmp=(*iIcons)[ii];
+		}
+
+	if (!bmp)
+		{// if the exact size has not been found get one with nearest but smaller area
+		TInt differenceOfClosest=KMaxTInt;
+		TInt indexOfClosest=KMaxTInt;
+		TInt reqArea=aSize.iHeight*aSize.iWidth;
+		TSize bmpSize;
+		TInt difference;
+		for (TInt jj=0;jj<count;jj++)
+			{
+			bmpSize=(*iIcons)[jj]->SizeInPixels();
+			difference=reqArea-bmpSize.iHeight*bmpSize.iWidth;
+			if (difference<differenceOfClosest && difference>=0)
+				{
+				differenceOfClosest=difference;
+				indexOfClosest=jj;
+				}
+			}
+
+		if (indexOfClosest<KMaxTInt)
+			bmp=(*iIcons)[indexOfClosest];
+		}
+
+	return bmp;
+	}
+
+CArrayFixFlat<TSize>* CApaAppIconArray::IconSizesL() const
+	{
+	if(iDefaultIconsUsed)
+		return DefaultIcons().IconSizesL();
+	else if(iIcons == NULL && iIconLoader == NULL)
+		return new(ELeave)CArrayFixFlat<TSize>(1);
+	else if(iIcons == NULL)
+		{
+		// Arriving here means the the icons need loading but havn't been loaded yet.
+		TRAPD(err, iIconLoader->LoadAllIconsL());
+		if (err != KErrNone)
+			return new(ELeave)CArrayFixFlat<TSize>(1);
+		}
+
+	const TInt count=iIcons->Count();
+	CArrayFixFlat<TSize>* arrayOfSizes=new(ELeave)CArrayFixFlat<TSize>(1);
+	CleanupStack::PushL(arrayOfSizes);
+	for(TInt ii=0;ii<count;ii++)
+		arrayOfSizes->AppendL((*iIcons)[ii]->SizeInPixels());
+
+	CleanupStack::Pop(arrayOfSizes);
+	return arrayOfSizes;
+	}
+
+TInt CApaAppIconArray::Count() const
+	{
+	if(iDefaultIconsUsed)
+		return DefaultIcons().Count();
+	else if(iIcons == NULL && iIconLoader == NULL)
+		return 0;
+	else if(iIcons == NULL)
+		{
+		// Arriving here means the the icons need loading but havn't been loaded yet.
+		TRAPD(err, iIconLoader->LoadAllIconsL());
+		if (err != KErrNone)
+			return 0;
+		}
+
+	return iIcons->Count();
+	}
+
+TBool CApaAppIconArray::DefaultIconsUsed() const
+	{
+	return iDefaultIconsUsed;
+	}
+
+CApaMaskedBitmap* CApaAppIconArray::operator[](TInt aIndex) const
+	{
+	if(iDefaultIconsUsed)
+		return DefaultIcons()[aIndex];
+	else if(iIcons == NULL && iIconLoader == NULL)
+		{
+		Panic(EPanicIndexOutOfRange);
+		return NULL;
+		}
+	else if(iIcons == NULL)
+		{
+		// Arriving here means the the icons need loading but havn't been loaded yet.
+		TRAPD(err, iIconLoader->LoadAllIconsL());
+		if (err != KErrNone)
+			return NULL;
+		}
+
+	return (*iIcons)[aIndex];
+	}
+
+TBool CApaAppIconArray::AreAppIconsLoaded() const
+	{
+	if (iDefaultIconsUsed)
+		return ETrue;
+
+	if (iNumOfIcons > 0 && !iIcons)
+		return EFalse;	
+
+	return ETrue;
+	}
+
+TBool CApaAppIconArray::AreViewIconsLoaded() const
+	{
+	if (iNumOfIcons > 0 && !iIcons )
+		return EFalse;
+
+	return ETrue;	
+	}
+
+void CApaAppIconArray::GetDefaultIconsL()
+	{
+	ASSERT(!iDefaultIconsUsed);
+	iDefaultIconsProvider = CApaAppList::Self();
+	ASSERT(iDefaultIconsProvider);
+	iDefaultIconsProvider->AcquireDefaultIconArrayL();
+	iDefaultIconsUsed = ETrue;
+	delete iMbmFileName;
+	iMbmFileName = NULL;
+	if (iIcons)
+		{
+	 	iIcons->ResetAndDestroy();
+		delete iIcons;
+		iIcons = NULL;
+		}
+	}
+
+const CApaAppIconArray& CApaAppIconArray::DefaultIcons() const
+	{
+	ASSERT(iDefaultIconsUsed && iDefaultIconsProvider);
+	return iDefaultIconsProvider->DefaultIconArray();
+	}
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/aplappinforeader.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,204 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// aplappinforeader.h
+//
+
+#ifndef __APLAPPINFOREADER_H__
+#define __APLAPPINFOREADER_H__
+
+#include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apmstd.h>
+#include <barsc.h>
+#include <barsread.h>
+#include <apgicnfl.h>
+
+class TEntry;
+class RFs;
+class CResourceFile;
+class RResourceReader;
+class CApaAppList;
+class CApaAppIconArray;
+class CApaAppViewData;
+
+/**
+@internalComponent
+*/
+NONSHARABLE_CLASS(ApaUtils)
+	{
+public:
+	static TBool TypeUidIsForRegistrationFile(const TUidType& aUidType);
+	};
+
+
+/**
+@internalComponent
+*/
+NONSHARABLE_CLASS(CApaIconLoader) : public CBase
+	{
+public:
+	static CApaIconLoader* NewL(RFs& aFs);
+	static CApaIconLoader* NewLC(RFs& aFs);
+	~CApaIconLoader();
+
+	void AddIconArrayL(const CApaAppIconArray& aIcons);
+	void LoadAllIconsL();
+	TBool LoadIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CArrayPtr<CApaMaskedBitmap>& aIcons);
+private:
+	CApaIconLoader(RFs& aFs);
+	void ConstructL();
+	TInt IconIndexL(const TDesC& aFileName, TBool& aUseCache);
+	static TInt CompareIcons(const CApaMaskedBitmap& aFirst, const CApaMaskedBitmap& aSecond);
+private:
+	struct TKeyValuePair
+		{
+	public:
+		HBufC* iFileName; // key
+		TInt iIndex; // value
+		};
+private:
+	RFs& iFs;
+	RArray<TKeyValuePair> iIconIndexArray;
+	TInt iCachedArrayIndex;
+	RPointerArray<CApaAppIconArray> iIconArrays;
+	};
+
+/**
+@internalComponent
+*/
+NONSHARABLE_CLASS(CApaAppIconArray) : public CBase
+	{
+public:
+	static CApaAppIconArray* NewL(); // creates a dummy icon array
+	static CApaAppIconArray* NewAppIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader);
+	static CApaAppIconArray* NewViewIconsL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader);
+	static CApaAppIconArray* NewDefaultIconsL(); // creates a CApaAppIconArray that uses the default icons
+	static CApaAppIconArray* NewRealDefaultIconsLC(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader); // creates the CApaAppIconArray that contains the default icons
+	~CApaAppIconArray();
+
+	TBool LoadIconsL();
+
+	CApaMaskedBitmap* IconBySize(const TSize& aSize) const;
+	CArrayFixFlat<TSize>* IconSizesL() const;
+	TInt Count() const;
+	TBool DefaultIconsUsed() const;
+	CApaMaskedBitmap* operator[](TInt aIndex) const;
+
+	TBool AreAppIconsLoaded() const;
+	TBool AreViewIconsLoaded() const;
+private:
+	static CApaAppIconArray* NewL(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons);
+	static CApaAppIconArray* NewLC(TInt aNumOfIcons, const TDesC& aMbmFileName, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons);
+	CApaAppIconArray();
+	CApaAppIconArray(TInt aNumOfIcons, CApaIconLoader& aIconLoader, TBool aFallbackToDefaultIcons);
+	void ConstructL(const TDesC& aMbmFileName);
+	void GetDefaultIconsL();
+	const CApaAppIconArray& DefaultIcons() const;
+private:
+	TInt iNumOfIcons;
+	CApaIconLoader* iIconLoader;
+	TBool iFallbackToDefaultIcons;
+	HBufC* iMbmFileName;
+	TBool iDefaultIconsUsed;
+	CArrayPtrFlat<CApaMaskedBitmap>* iIcons;
+	CApaAppList* iDefaultIconsProvider;
+	};
+
+/**
+Reads application information from a combination of registration file,
+optional localisable resource file and optional icon file.
+
+@internalComponent
+*/
+class CApaAppInfoReader : public CBase
+	{
+public:
+	static CApaAppInfoReader* NewL(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid);
+	TBool ReadL();
+    static TBool FileIsMbmWithGenericExtensionL(const TDesC& aFileName);
+	~CApaAppInfoReader();
+public:
+	HBufC* AppBinaryFullName();
+	TUidType AppBinaryUidType() const;
+	void Capability(TDes8& aCapabilityBuf) const;
+	TUint DefaultScreenNumber() const;
+	CArrayPtrFlat<CApaAppViewData>* Views();
+	CDesCArray* OwnedFiles();
+	
+	HBufC* Caption();
+	HBufC* ShortCaption();
+	TInt NumOfAppIcons() const;
+	CApaAppIconArray* Icons();
+	HBufC* IconFileName();
+	TBool NonMbmIconFile() const;
+	CApaIconLoader* IconLoader();
+	
+	TTime TimeStamp() const;
+	TTime IconFileTimeStamp() const;
+	
+	HBufC* LocalisableResourceFileName();
+	TTime LocalisableResourceFileTimeStamp() const;
+	TLanguage AppLanguage() const;
+	CArrayFixFlat<TApaAppServiceInfo>* ServiceArray(TInt& aIndexOfFirstOpenService);
+	HBufC8* OpaqueData();
+private:
+	CApaAppInfoReader(RFs& aFs, const TDesC& aRegistrationFileName, TUid aAppUid);
+	void ConstructL();
+	void ReadMandatoryInfoL(RResourceReader& aResourceReader);
+	void ReadNonLocalisableInfoL(RResourceReader& aResourceReader, CResourceFile*& aLocalisableResourceFile, TUint& aLocalisableResourceId);
+	void ReadNonLocalisableOptionalInfoL(RResourceReader& aResourceReader, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile);
+	void ReadMimeTypesSupportedL(RResourceReader& aResourceReader, CArrayFixFlat<TDataTypeWithPriority>& aMimeTypesSupported);
+	void ReadLocalisableInfoL(const CResourceFile& aResourceFile, TUint aResourceId, TBool& aUseDefaultIcons);
+	HBufC* CreateFullIconFileNameL(const TDesC& aIconFileName) const;
+	TBool HasWriteDeviceDataCap();
+    void ReadAppSecurityInfo();
+	
+	static HBufC8* ReadOpaqueDataL(TUint aResourceId, const CResourceFile* aRegistrationFile, CResourceFile* aLocalisableResourceFile);
+private:
+	RFs& iFs;
+	TUid iAppUid;
+	HBufC* iAppBinaryFullName;
+	TUidType iAppBinaryUidType;
+	TTime iTimeStamp;
+	TTime iIconFileTimeStamp;
+	TApaAppCapability iCapability;
+	TUint iDefaultScreenNumber;
+	HBufC* iCaption;
+	HBufC* iShortCaption;
+	CApaAppIconArray* iIcons;
+	TInt iNumOfAppIcons;
+	CArrayPtrFlat<CApaAppViewData>* iViewDataArray;
+	CDesCArray* iOwnedFileArray;
+	HBufC* iIconFileName;
+	TBool iNonMbmIconFile; // ETrue if icon filename is not an MBM file, however, EFalse does not necessarily mean it is an MBM file
+	HBufC* iLocalisableResourceFileName;
+	TTime iLocalisableResourceFileTimeStamp;
+	TLanguage iApplicationLanguage;
+	CArrayFixFlat<TApaAppServiceInfo>* iServiceArray;
+	TInt iIndexOfFirstOpenService;
+	TBool iOpenServiceIsLegacy;
+	HBufC8* iOpaqueData;
+private:
+	const TDesC& iRegistrationFileName;
+	TBool iHasWriteDeviceDataCap;
+    TBool iIsSidTrusted;
+    // This flag is used to determine if app security info was allready read
+    TBool iSecurityInfoHasBeenRead;
+	CApaIconLoader* iIconLoader;	
+	};
+
+
+#endif	// __APLAPPINFOREADER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/aplapplist.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,1767 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// aplapplist.cpp
+//
+
+#include "aplapplist.h"
+#include "APGAPLST.H"			// KDefaultAppIconMbm
+#include "aplapplistitem.h"
+#include "../apgrfx/APGSTD.H"	// EPanicNullPointer
+#include "APFDEF.H"
+#include "../apparc/TRACE.H"
+#include "apgnotif.h"			// MApaAppListServObserver
+#include "aplappregfinder.h"	// CApaAppRegFinder
+#include <bautils.h>			// BaflUtils::NearestLanguageFile()
+#include <s32mem.h>				// RBufWriteStream
+#include "aplappinforeader.h"
+#include "apsiconcaptionoverride.h"
+#ifdef SYMBIAN_BAFL_SYSUTIL
+#include <bafl/sysutil.h>
+#endif
+
+
+// Delays in the pseudo idle object that builds the application list
+//
+
+const TInt KIdleStartDelay=0;
+const TInt KBufferExpansionGranularity = 0x100;
+const TInt KNumberOfIconsInDefaultMbm = 3;
+const TInt KAppListToFileStartDelay = 60000000;
+#ifdef SYMBIAN_BAFL_SYSUTIL
+const TInt KInfoBufLength=KSysUtilVersionTextLength;
+//This file is used for storing the rom version. If actual rom version differs from the one stored here the applist is not restored.
+//This file is versioned to avoid a data compatability break on adding further information to this file.
+//On adding further info to this file, KROMVersionCacheFileMajorVersion or KROMVersionCacheFileMinorVersion or KROMVersionCacheFileBuildVersion needs to be incremented appropriately.
+_LIT(KROMVersionStringCacheFileName, "ROMVersionCache.bin");
+const TInt8 KROMVersionCacheFileMajorVersion=1;
+const TInt8 KROMVersionCacheFileMinorVersion=0;
+const TInt16 KROMVersionCacheFileBuildVersion=0;
+#endif
+
+
+GLDEF_C void Panic(TApgPanic aPanic)
+	{
+	_LIT(KApGrfxPanic,"APGRFX");
+	User::Panic(KApGrfxPanic,aPanic);
+	}
+
+
+//
+// Class CApaLangChangeMonitor
+//
+
+/**
+Utility class used to monitor locale/language change event.
+@internalComponent
+*/
+NONSHARABLE_CLASS(CApaAppList::CApaLangChangeMonitor) : public CActive
+	{
+public:
+	static CApaLangChangeMonitor* NewL(CApaAppList& aAppList);
+	~CApaLangChangeMonitor();
+	void Start();
+private:
+	CApaLangChangeMonitor(CApaAppList& aAppList);
+	void ConstructL();
+private:	//from CActive
+	void RunL();
+	void DoCancel();
+	TInt RunError(TInt aError);
+private:
+	RChangeNotifier iLangNotifier;
+	CApaAppList& iAppList;
+	TLanguage iPrevLanguage;
+	};
+
+		
+//
+// Local functions
+//
+
+void CleanupServiceArray(TAny* aServiceArray)
+	{
+	__ASSERT_DEBUG(aServiceArray, Panic(EPanicNullPointer));
+	CArrayFixFlat<TApaAppServiceInfo>* serviceArray = static_cast<CArrayFixFlat<TApaAppServiceInfo>*>(aServiceArray);
+	const TInt serviceCount = serviceArray->Count();
+	
+	for (TInt i = serviceCount - 1; i >= 0; i--)
+		(*serviceArray)[i].Release();
+
+	delete serviceArray;
+	serviceArray = 0;
+	}
+
+
+//
+// Class CApaAppList
+//
+
+EXPORT_C CApaAppList* CApaAppList::NewL(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay)
+	{
+	CApaAppList* self=new (ELeave) CApaAppList(aFs, aLoadMbmIconsOnDemand, aIdlePeriodicDelay);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CApaAppList::CApaAppList(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay)
+	:iFs(aFs),
+	iFlags(0),
+	iIdlePeriodicDelay(aIdlePeriodicDelay),
+	iLoadMbmIconsOnDemand(aLoadMbmIconsOnDemand),
+    iUninstalledApps(NULL)	
+	{
+	}
+
+void CApaAppList::ConstructL()
+	{
+	iAppRegFinder = CApaAppRegFinder::NewL(iFs);
+	
+	User::LeaveIfError(iFsShareProtected.Connect());
+	User::LeaveIfError(iFsShareProtected.ShareProtected());
+	User::LeaveIfError(Dll::SetTls(this));
+	
+	//Start language change monitor.
+	iAppLangMonitor = CApaLangChangeMonitor::NewL(*this);
+	const TInt KArrayGranularity = 128;
+	iForcedRegistrations = new (ELeave) CDesCArraySeg(KArrayGranularity);
+	
+	// Init the AppsList cache paths
+	_LIT(KAppsListCacheFileName, ":\\private\\10003a3f\\AppsListCache\\AppsList.bin");
+	_LIT(KAppsListCacheBackUpFileName, ":\\private\\10003a3f\\AppsListCache\\AppsList_Backup.bin");
+	_LIT(KAppsListCachePath, ":\\private\\10003a3f\\AppsListCache\\");
+
+	const TChar sysDrive = RFs::GetSystemDriveChar();
+	TInt maxSizeofFileName = KAppsListCacheFileName().Length() + 1;
+	iAppsListCacheFileName.CreateL(maxSizeofFileName);
+	iAppsListCacheFileName.Append(sysDrive);
+	iAppsListCacheFileName.Append(KAppsListCacheFileName());
+	
+	maxSizeofFileName = KAppsListCacheBackUpFileName().Length() + 1;
+	iAppsListCacheBackUpFileName.CreateL(maxSizeofFileName);
+	iAppsListCacheBackUpFileName.Append(sysDrive);
+	iAppsListCacheBackUpFileName.Append(KAppsListCacheBackUpFileName());
+	
+	maxSizeofFileName = KAppsListCachePath().Length() + 1;
+	iAppsListCachePath.CreateL(maxSizeofFileName);
+	iAppsListCachePath.Append(sysDrive);
+	iAppsListCachePath.Append(KAppsListCachePath());
+	
+	iIconCaptionOverrides = new(ELeave) CApaIconCaptionOverrides();
+	iIconCaptionObserver = CApaIconCaptionCenrepObserver::NewL(*iIconCaptionOverrides);
+	iIconCaptionObserver->LoadOverridesL();
+	}
+	
+EXPORT_C CApaAppList::~CApaAppList()
+/** Frees all resources prior to destruction, including the application data list. */
+	{
+	iValidFirstAppData = NULL;
+	DeleteAppData();
+
+	iAppData = NULL;
+	iObserver = NULL;
+	iFsShareProtected.Close();
+
+	delete iDefaultIconArray;
+	delete iDefaultAppIconMbmFileName;
+	delete iAppRegFinder;
+	delete iAppIdler;
+	delete iAppListStorer;
+	delete iAppIconLoader;
+	delete iAppLangMonitor;
+	delete iForcedRegistrations;
+	delete iIconCaptionObserver;
+	delete iIconCaptionOverrides;
+	iAppsListCacheFileName.Close();
+	iAppsListCacheBackUpFileName.Close();
+	iAppsListCachePath.Close();
+	
+	iCustomAppList.ResetAndDestroy();
+	iCustomAppList.Close();
+	}
+
+// Stop scanning applications if installation or uninstallation has started	
+EXPORT_C void CApaAppList::StopScan(TBool aNNAInstall)
+	{
+	if (aNNAInstall)
+		{
+		iNNAInstallation = ETrue;
+		}
+	if (iAppIdler)
+		{
+		delete iAppIdler;
+		iAppIdler=NULL;
+		}
+	UndoSetPending(iAppData);
+	}
+	
+// Allow scanning when installation or uninstallation is complete
+EXPORT_C void CApaAppList::RestartScanL()
+	{
+	TRAP_IGNORE(PurgeL());
+	StartIdleUpdateL();
+	}
+
+EXPORT_C TBool CApaAppList::AppListUpdatePending()
+	{
+	return iNNAInstallation;
+	}
+
+void CApaAppList::UndoSetPending(CApaAppData* aAppData)
+	// Reset all apps to pevious pending state so they don't get purged
+	{
+  	for (; aAppData; aAppData = aAppData->iNext)
+		{
+		if (aAppData->iIsPresent == CApaAppData::EPresentPendingUpdate)
+			{
+			aAppData->iIsPresent = CApaAppData::EIsPresent;
+			}
+		}
+	}
+
+EXPORT_C void CApaAppList::StartIdleUpdateL()
+/** Updates the list asynchronously, using an idle time active object, 
+and no observer. When the update is finished, the resulting app 
+list is stored. */
+	{
+	// find the default icons (.mbm file) for applications, wrt current locale
+	CreateDefaultAppIconFileNameL();
+
+	// File operation is abandoned if it is in progress.
+	if (iAppListStorer && iAppListStorer->IsActive())
+		{
+		delete iAppListStorer;
+		iAppListStorer = NULL;
+		}
+
+	// Stops icon loading if it is in progress.
+	if (iAppIconLoader && iAppIconLoader->IsActive())
+		{
+		delete iAppIconLoader;
+		iAppIconLoader = NULL;
+		}
+
+	// DEF076594 - if changing locale, need to update the default icons here
+	// If updating the default icons array fails, the array is left in the state
+	// it was in before the call.
+	if(iDefaultIconArray)
+		{
+		TRAP_IGNORE(UpdateDefaultIconsL());
+		}
+
+	// start to scan.
+	if (iAppIdler)
+		{
+		delete iAppIdler;
+		iAppIdler=NULL;
+		}
+		
+	// DEF072701
+	// When performing the update scan let the idle object have lower priority.
+	if (IsFirstScanComplete())
+		{
+		iAppIdler=CPeriodic::NewL(CActive::EPriorityLow);
+		}
+	else
+		{
+		iAppIdler=CPeriodic::NewL(CActive::EPriorityStandard);
+		}
+	SetPending(iAppData);
+	iAppRegFinder->FindAllAppsL(CApaAppRegFinder::EScanAllDrives);
+ 
+ 	// DEF072701
+ 	// If this is the first scan i.e the boot scan then it may take some time. Thus
+ 	// the periodic delay value should be used so that this process will stop periodically 
+ 	// to allow time for other processes.
+ 	// If this is just a re-scan it should take much less time. Therefore it should just
+ 	// be completed in one go rather than periodically delayed. Thus the delay value
+ 	// should be set to 0.
+	iAppIdler->Start(KIdleStartDelay, IsFirstScanComplete()? 0 : iIdlePeriodicDelay, TCallBack(IdleUpdateCallbackL, this));
+	}
+
+EXPORT_C void CApaAppList::StartIdleUpdateL(MApaAppListObserver* aObserver)
+/** Updates the list asynchronously, using an idle time active object 
+and an observer. When the update is finished, the resulting app list 
+is stored and the observer is notified with an MApaAppListServObserver::EAppListChanged 
+message, if the list changed.
+@param aObserver Observer to be notified when the update has finished. */
+	{
+	iObserver=aObserver;
+
+	// Rename Appslist.bin file to AppsList_Backup.bin, so that it can be renamed back, if rescan/update scan does not change applist.
+	TInt replaceError = iFs.Replace(iAppsListCacheFileName, iAppsListCacheBackUpFileName);
+	if (replaceError != KErrNone)
+		{
+		iFs.Delete(iAppsListCacheFileName);
+		}
+	StartIdleUpdateL();
+	}
+
+void CApaAppList::CreateDefaultAppIconFileNameL()
+	{
+	TFileName tempFileName(KDefaultAppIconMbm);
+	TLanguage language;
+	BaflUtils::NearestLanguageFileV2(iFs, tempFileName, language);
+	(void)language;
+	delete iDefaultAppIconMbmFileName;
+	iDefaultAppIconMbmFileName = NULL;
+	iDefaultAppIconMbmFileName = tempFileName.AllocL();
+	}
+
+EXPORT_C void CApaAppList::InitListL(MApaAppListObserver* aObserver)
+/** It Restores the data present in the AppsList.bin file and updates the applist. 
+ * If Restore operation fails then it 
+ * starts updating the list asynchronously, by calling StartIdleUpdateL().
+
+@param aObserver Observer to be notified when the update has finished. */
+	{
+	DeleteAppsListBackUpAndTempFiles();
+	TInt ret = KErrGeneral;
+#ifndef __WINS__ // on the emulator, don't read app list from file, as doing so means apps
+                 // built while the emulator isn't running won't appear in the list
+	TRAP(ret, RestoreL());
+#endif
+	if (ret != KErrNone)
+		{
+		// There was an error during restore, so update the list asynchronously.
+		DeleteAppData();
+		iFs.Delete(iAppsListCacheFileName);
+		StartIdleUpdateL(aObserver);
+		}
+	else
+		{
+		iObserver = aObserver;
+		if (iLoadMbmIconsOnDemand)
+			{
+			InitiateStoringOfAppList();
+			}
+		else
+			{
+			StartIconLoadingL();
+			}
+		}
+	}
+
+void CApaAppList::StartIconLoadingL()
+	{
+	iAppIconLoader = new(ELeave) CApaIdleIconLoader(iAppData, iFs, *this);
+	iAppIconLoader->Start();
+	}
+
+void CApaAppList::ScanRemovableDrivesAndUpdateL()
+/** Rename Appslist.bin file to AppsList_Backup.bin, so that it can be renamed back, 
+     if the update scan on removable media drives does not change applist. */
+	{
+	const TArray<const TDriveUnitInfo> listOfRemovableMediaDrives = iAppRegFinder->DriveList();
+	const TInt count = listOfRemovableMediaDrives.Count();
+
+	// Removable media scan would take place only if removable drives are present.
+	if (count)
+		{
+		CApaAppData* appData = iAppData;
+		while (appData)
+			{
+			for (TInt driveIndex = 0; driveIndex < count; ++driveIndex)
+				{
+				if (TParsePtrC(*appData->iRegistrationFile).Drive() == listOfRemovableMediaDrives[driveIndex].iUnit.Name())
+					{
+					appData->SetAppPending();
+					break;
+					}
+				}
+			appData = appData->iNext;
+			}
+
+		while (IdleUpdateL())
+			{ // It updates the removable media apps present in AppList if it has changed.
+
+			};
+		}
+	}
+
+void CApaAppList::DeleteAppsListBackUpAndTempFiles()
+/** Deletes all files inside AppsListCache folder except AppsList.bin */
+	{
+	_LIT(KTemp, "AppsList.bin");
+	CDir* cache = NULL;
+	TInt ret = iFs.GetDir(iAppsListCachePath, KEntryAttNormal, ESortNone, cache);
+	if (ret == KErrNone)
+		{
+		const TInt count = cache->Count();
+		TBufC<KMaxFileName> cacheFileName;
+		TEntry entry;
+		for (TInt i = 0; i < count; ++i)
+			{
+			entry=(*cache)[i];
+			cacheFileName=entry.iName;
+	#if defined (SYMBIAN_BAFL_SYSUTIL)
+			if ((cacheFileName.Match(KTemp) == KErrNotFound) && (cacheFileName.Match(KROMVersionStringCacheFileName) == KErrNotFound)) 
+	#else
+			if ((cacheFileName.Match(KTemp) == KErrNotFound)) 
+	#endif
+				{
+				TFileName fileNameToDelete;
+				fileNameToDelete.Append(iAppsListCachePath);
+				fileNameToDelete.Append(cacheFileName);
+				iFs.Delete(fileNameToDelete);
+				}
+			}
+		delete cache;
+		}
+	}
+
+void CApaAppList::RestoreL()
+/** It restores the data present in the AppsList.bin file */
+	{
+	RFileReadStream theReadStream;
+	User::LeaveIfError(theReadStream.Open(iFs, iAppsListCacheFileName, EFileRead));
+	CleanupClosePushL(theReadStream);
+	
+	TLanguage appListFileLanguage = (TLanguage)theReadStream.ReadInt32L();
+	if (appListFileLanguage != User::Language())
+		{
+		User::Leave(KErrNotSupported);
+		}
+	
+#if defined (SYMBIAN_BAFL_SYSUTIL)
+	//Build the filename for the cache file
+	TInt maxSizeofFileName = iAppsListCachePath.Length() + KROMVersionStringCacheFileName().Length();
+	RBuf romVersionCacheFileName;
+	romVersionCacheFileName.CreateL(maxSizeofFileName);
+	romVersionCacheFileName.CleanupClosePushL();
+	romVersionCacheFileName.Append(iAppsListCachePath);
+	romVersionCacheFileName.Append(KROMVersionStringCacheFileName());
+	
+	RFileReadStream romVerStream;
+	User::LeaveIfError(romVerStream.Open(iFs,romVersionCacheFileName,EFileRead));
+	CleanupClosePushL(romVerStream);
+	
+	TVersion actualROMVersionCacheFileVersion(KROMVersionCacheFileMajorVersion, KROMVersionCacheFileMinorVersion, KROMVersionCacheFileBuildVersion);
+	TVersionName actualROMVersionCacheFileVersionName = actualROMVersionCacheFileVersion.Name();
+	
+	//read the rom file version
+	TInt8 romVersionCacheFileMajorVersion = romVerStream.ReadInt8L();
+	TInt8 romVersionCacheFileMinorVersion = romVerStream.ReadInt8L();
+	TInt16 romVersionCacheFileBuildVersion = romVerStream.ReadInt16L();
+	TVersion romVersionCacheFileVersion(romVersionCacheFileMajorVersion, romVersionCacheFileMinorVersion, romVersionCacheFileBuildVersion);
+	TVersionName romVersionCacheFileVersionName = romVersionCacheFileVersion.Name();
+	
+	//If persisted file version differs from what apparc can handle, recreate rom version file and applist.bin
+	if (romVersionCacheFileVersionName.Compare(actualROMVersionCacheFileVersionName) != 0)
+		{
+		User::Leave(KErrGeneral);
+		}
+		
+	//Read the length & value of software version from it.
+	TBuf<KInfoBufLength> softwareVersion;
+	TUint32 length = romVerStream.ReadUint32L();
+	if (length>KInfoBufLength)
+		{
+		//File must be corrupt, an attempt to read will panic
+		User::Leave(KErrCorrupt);
+		}	
+	romVerStream.ReadL(softwareVersion, length);
+
+	//the persisted version has been successfully read
+	//read the actual current version string
+	TBuf<KInfoBufLength> actualSoftwareVersion;
+	TInt err = SysUtil::GetSWVersion(actualSoftwareVersion); //use the SysUtil implementation
+	if(err == KErrNone)
+		{
+		if (softwareVersion.Compare(actualSoftwareVersion) != 0)
+			{
+			//Leave if the current version is different from the previous stored version and recreate applist.
+#ifdef _DEBUG
+			RDebug::Print(_L("!!Firmware update detected!! Rebuilding AppList"));
+#endif
+			User::Leave(KErrGeneral);
+			}
+		}
+	else
+		{
+		//Leave if any error reading the version information, except if file is not present
+		if (err != KErrPathNotFound && err != KErrNotFound)
+			{
+#ifdef _DEBUG
+			RDebug::Print(_L("!!Error %d reading Firmware version.  Rebuilding AppList"),err);
+#endif
+			User::Leave(err);
+			}
+		}
+	CleanupStack::PopAndDestroy(2); //romVerStream, romVersionCacheFileName
+#endif
+		
+	// Create Default Icon File Name
+	CreateDefaultAppIconFileNameL();
+	
+	TInt ret = KErrNone;
+	while (ret == KErrNone)
+		{
+		CApaAppData* const pApp = new (ELeave) CApaAppData(iFs);
+		CleanupStack::PushL(pApp);
+
+		// Restore entries till we leave
+		TRAP(ret, pApp->InternalizeL(theReadStream));
+		
+		if (ret != KErrNone && ret != KErrEof)
+			{
+			User::Leave(ret);
+			}
+		// Check that the app has not been added to the list twice
+		if (ret == KErrNone && !AppDataByUid(pApp->iUidType[2]))
+			{
+			AddToList(pApp);
+			CleanupStack::Pop(pApp);
+			}
+		else
+			{ // Delete pApp if an End of File condition is reached or the app has been added to the list twice
+			CleanupStack::PopAndDestroy(pApp);
+			}
+		}	
+	// Close the stream;
+	CleanupStack::PopAndDestroy(&theReadStream);
+
+	iFs.Rename(iAppsListCacheFileName, iAppsListCacheBackUpFileName);
+	iAppRegFinder->FindAllAppsL(CApaAppRegFinder::EScanRemovableDrives);	// Builds the Removable Media Drive List
+
+	iFlags |= ENotifyUpdateOnFirstScanComplete;
+
+	// It runs an update scan on removable media apps.
+	ScanRemovableDrivesAndUpdateL();
+	}
+
+EXPORT_C TBool CApaAppList::IsLanguageChangePending() const
+/** Returns ETrue if a language change event is received and a re-scan is in progress otherwise EFalse. */
+	{
+	return (iFlags & ELangChangePending);
+	}
+
+
+TInt CApaAppList::IdleUpdateCallbackL(TAny* aObject)
+	{
+	CApaAppList* self=REINTERPRET_CAST(CApaAppList*,aObject);
+	const TBool moreToCome=self->IdleUpdateL();
+	if (moreToCome==EFalse)
+		{
+		//Reset language change flag if scanning is over.
+		if (self->IsLanguageChangePending())
+			self->iFlags &= ~ELangChangePending;
+
+		self->StopIdler();
+		if (self->iLoadMbmIconsOnDemand)
+			{
+			self->InitiateStoringOfAppList();
+			}
+		else
+			{
+			self->StartIconLoadingL();
+			}
+		}
+	return moreToCome;
+	}
+
+void CApaAppList::StoreL()
+	{
+	iAppListStorer = CApaAppListStorer::NewL(iAppData, iFs, *this);
+	iAppListStorer->StartL(KAppListToFileStartDelay);
+	}
+
+void CApaAppList::NotifyObserver()
+	{
+	if (iObserver)
+		{
+		if (iFlags & EAppListHasChanged || iFlags & ENotifyUpdateOnFirstScanComplete)
+			iObserver->NotifyUpdate(MApaAppListServObserver::EAppListChanged);	// NotifyUpdate will notify clients for both list update and scan complete.
+		else
+			iObserver->NotifyScanComplete();	// NotifyScanComplete will notify clients for scan complete.
+
+		iObserver=NULL;
+		}
+	}
+
+void CApaAppList::StopIdler()
+	{
+ 	delete iAppIdler;
+	iAppIdler=NULL;
+	}
+
+TInt CApaAppList::IdleUpdateL()
+// returns ETrue if there is more scanning to be done.
+	{
+	TBool more=EFalse;
+	TApaAppEntry currentApp = TApaAppEntry();
+	TRAPD(err, more = iAppRegFinder->NextL(currentApp, *iForcedRegistrations));
+	if (err!=KErrNone)
+		{
+		if (iFlags & ENotifyUpdateOnFirstScanComplete)
+			User::Leave(err);
+
+		return more;
+		}
+	TBool hasChanged=EFalse;
+	if (more)
+		{
+		TRAPD(err,UpdateNextAppL(currentApp,hasChanged));
+		if (err!=KErrNone)
+			{
+			SetNotFound(iAppData,hasChanged);
+			if (iFlags & ENotifyUpdateOnFirstScanComplete)
+				User::Leave(err);
+
+			more=EFalse; // abandon ship
+			}
+		}
+	else
+		{
+		SetNotFound(iAppData,hasChanged);
+		PurgeL();
+		}
+
+	if (hasChanged)
+		iFlags |= EAppListHasChanged;
+
+	return more;
+	}
+
+EXPORT_C TBool CApaAppList::IsIdleUpdateComplete() const
+/** Tests whether an asynchronous update of the list is currently in progress.
+
+@return True if no asynchronous update of the list is currently in progress, 
+otherwise false. */
+	{
+	return iAppIdler == NULL;
+	}
+
+void CApaAppList::SetPending(CApaAppData* aAppData)
+	// set all apps to pending update - we'll find them again as we scan
+	{
+  	for (; aAppData; aAppData = aAppData->iNext)
+		aAppData->SetAppPending();
+	}
+
+void CApaAppList::SetNotFound(CApaAppData* aAppData, TBool& aHasChanged)
+	// mark any unfound apps not present
+	{
+	while (aAppData)
+		{
+		if (aAppData->IsPending())
+			{
+			aAppData->iIsPresent = CApaAppData::ENotPresent;
+			aHasChanged = ETrue;
+			}
+		aAppData = aAppData->iNext;
+		}
+	}
+
+void CApaAppList::AddToList( CApaAppData* aAppData )
+	{
+	__ASSERT_DEBUG(aAppData, Panic(EPanicNullPointer));
+	aAppData->iNext=iAppData;
+	iAppData=aAppData;
+	}
+
+void CApaAppList::UpdateNextAppL(const TApaAppEntry& aAppEntry,TBool& aHasChanged)
+	{
+	CApaAppData* appData=AppDataByUid(aAppEntry.iUidType[2]);
+	if (appData==NULL)
+		{// not in list, so add it at the start
+		TRAPD(err,appData=CApaAppData::NewL(aAppEntry, iFs));
+		if (err==KErrNone)
+			{
+			AddToList( appData );
+			aHasChanged=ETrue;
+			}
+		}
+	else if (appData->IsPending())
+		{ // not found yet during current scan - we may need to override this one
+		
+		// On a system which scans for registration .RSC files (V2 apps) first, followed by
+		// .APP files (V1 apps), it's valid for a V1 app to override a V2 app (if the V2 app
+		// has just been removed). If this is the case, assume it's ok to compare the V1 .APP filename,
+		// with the V2 .RSC filename as their filenames will never match (which is what we want in this case).
+		TPtrC currentFileName;
+		if (appData->RegistrationFileUsed())
+			currentFileName.Set(*appData->iRegistrationFile);
+		else
+			currentFileName.Set(*appData->iFullName);
+	
+		if (aAppEntry.iFullName.CompareF(currentFileName)!=0)
+			{
+			delete appData->iSuccessor;
+			appData->iSuccessor = NULL;
+			appData->iSuccessor = CApaAppEntry::NewL(aAppEntry);
+
+			appData->iIsPresent = CApaAppData::ESuperseded;
+			aHasChanged=ETrue;
+			}
+		else
+			{
+			if (appData->Update() || appData->iIsPresent==CApaAppData::ENotPresentPendingUpdate) 
+				aHasChanged=ETrue; 
+
+			appData->iIsPresent = CApaAppData::EIsPresent;
+			}
+		}
+	}
+
+/**
+@internalComponent
+*/
+EXPORT_C CApaAppData* CApaAppList::FindAndAddSpecificAppL(CApaAppRegFinder* aFinder, TUid aAppUid)
+	{
+//Scans and adds the specified application to the app list if found
+	__ASSERT_DEBUG(aFinder, Panic(EPanicNullPointer));
+	TBool found = EFalse;
+	TApaAppEntry appEntry;
+	aFinder->FindAllAppsL(CApaAppRegFinder::EScanAllDrives);
+	while (aFinder->NextL(appEntry, *iForcedRegistrations))
+		{
+		if (appEntry.iUidType[2] == aAppUid)
+			{
+			found = ETrue;
+			break;
+			}
+		}
+	
+	CApaAppData* app = NULL;
+	if (found)
+		{
+		// add the app to the list
+		TBool hasChanged = EFalse;
+		CApaAppData* prevFirstAppInList = iAppData;
+		UpdateNextAppL(appEntry, hasChanged);
+		if (iAppData != prevFirstAppInList)
+			app = iAppData;		// assume the new app was added to the list
+
+		if (hasChanged)
+			iFlags |= EAppListHasChanged;
+		}
+
+	return app;
+	}
+
+EXPORT_C void CApaAppList::PurgeL()
+/** Removes any applications from the list if they are no longer present 
+on the phone. It updates applications that have been 
+superceded. */
+	{
+	CApaAppData* appData=iAppData;
+	CApaAppData* prev=NULL;
+	while (appData)
+		{
+		CApaAppData* next=appData->iNext;
+		if (appData->iIsPresent==CApaAppData::ENotPresent)
+			{
+			if (prev)
+				prev->iNext=next;
+			else
+				iAppData=next;
+			
+            //Add uninstalled application UID to a list
+            if(iUninstalledApps==NULL)
+                iUninstalledApps=new(ELeave) CArrayFixFlat<TUid>(1);
+            
+            iUninstalledApps->AppendL(appData->AppEntry().iUidType[2]);
+			
+			delete appData;
+			}
+		else if (appData->iIsPresent==CApaAppData::ESuperseded)
+			{
+			CApaAppData* newApp=NULL;
+			TApaAppEntry appEntry;
+			appData->iSuccessor->Get(appEntry);
+			TRAPD(err,newApp=CApaAppData::NewL(appEntry, iFs));
+			if (err==KErrNone)
+				{
+				// remove the old one and add the new one in its place
+				if (prev)
+					prev->iNext=newApp;
+				else
+					iAppData=newApp;
+		
+				newApp->iNext = appData->iNext;
+				delete appData;
+				// increment the iterator
+				prev = newApp;
+				}
+			}
+		else
+			prev=appData;
+		
+		appData=next;
+		}
+	}
+
+EXPORT_C TInt CApaAppList::Count() const
+/** Gets the count of applications present in the app list.
+
+@return The number of applications in the list. */
+
+	{
+	TInt count=0;
+	CApaAppData* appData=iAppData;
+	while (appData)
+		{
+		count++;
+		appData=appData->iNext;
+		}
+	
+	return count;
+	}
+
+EXPORT_C CApaAppData* CApaAppList::FirstApp() const
+/** Gets a pointer to the first application in the list 
+that can use the default screen mode.
+
+@return A pointer to the first application. */
+	{
+	return FirstApp(0);
+	}
+
+EXPORT_C CApaAppData* CApaAppList::FirstApp(TInt aScreenMode) const
+/** Gets a pointer to the first application in the list 
+that can use the specified screen mode.
+
+@param aScreenMode The index of the screen mode. Specifying 
+KIgnoreScreenMode returns the first application in the list, 
+regardless of screen mode.
+@return A pointer to the first application that can use the 
+specified screen mode. */
+	{
+
+	CApaAppData* appData=iValidFirstAppData;
+
+	if(aScreenMode!=KIgnoreScreenMode)
+		{
+		while (appData && !appData->CanUseScreenMode(aScreenMode))
+			appData = appData->iNext;
+		}
+
+	return appData;
+	}
+
+EXPORT_C CApaAppData* CApaAppList::NextApp(const CApaAppData* aApp) const
+/** Gets a pointer to the next application after aApp in the list 
+that can use the default screen mode.
+
+@param aApp A pointer to an application in the list.
+@return A pointer to the next application after aApp in the list 
+that can use the default screen mode.
+@panic APGRFX 12 aApp is NULL. */
+	{
+	return NextApp(aApp,0);
+	}
+
+EXPORT_C CApaAppData* CApaAppList::NextApp(const CApaAppData* aApp, TInt aScreenMode) const
+/** Gets a pointer to the next application after aApp in the list 
+that can use the specified screen mode.
+
+@param aApp A pointer to an application in the list. 
+@param aScreenMode The index of the screen mode. Specifying 
+KIgnoreScreenMode returns the next application in the list, 
+regardless of screen mode.
+@return A pointer to the next application after aApp in the list 
+that can use the specified screen mode.
+@panic APGRFX 12 aApp is NULL. */
+
+	{
+	__ASSERT_ALWAYS(aApp,Panic(EPanicNoAppDataSupplied));
+	//
+	CApaAppData* iApp=aApp->iNext; //lint !e613 Suppress possible use of null pointer - asserted above
+
+	if(aScreenMode!=KIgnoreScreenMode)
+		while (iApp && !iApp->CanUseScreenMode(aScreenMode))
+			iApp = iApp->iNext;
+
+	return iApp;
+	}
+
+EXPORT_C CApaAppData* CApaAppList::AppDataByUid(TUid aAppUid) const
+/** Gets a pointer to the application in the list whose third 
+UID matches the specified UID.
+
+@param aAppUid An application's third UID. 
+@return A pointer to the application, if successful. Null, 
+if no match is found or if KNullUid was specified. */
+	{
+	if (aAppUid==KNullUid)
+		return NULL; // never match null UID as it represents an un-UIDed file
+	
+	CApaAppData* appData=iAppData;
+	while (appData)
+		{
+		if (appData->AppEntry().iUidType[2]==aAppUid)
+			return appData;
+		appData=appData->iNext;
+		}
+	
+	return NULL;
+	}
+
+EXPORT_C CApaAppData* CApaAppList::AppDataByFileName(const TDesC& aFullFileName) const
+/** Gets a pointer to the application in the list whose application
+file name matches the one specified
+
+@param aFullFileName a file name. 
+@return A pointer to the application, if successful. Null, 
+if no match is found or if KNullDesC was specified.
+@internalTechnology
+*/
+	{
+	if (aFullFileName.Length()==0)
+		return NULL; // never match null UID as it represents an un-UIDed file
+
+	CApaAppData* appData=iAppData;
+	while (appData)
+		{
+		if (appData->AppEntry().iFullName.CompareF(aFullFileName)==0)
+			return appData;
+
+		appData=appData->iNext;
+		}
+
+	return NULL;
+	}
+	
+/**
+Adds a registration file to the iForcedRegistrations array.
+
+@param aRegistrationFile The function takes ownership of the HBufC.
+@internalComponent
+*/
+EXPORT_C void CApaAppList::AddForcedRegistrationL(const TDesC& aRegistrationFile)
+	{
+	TInt err = iForcedRegistrations->InsertIsqL(aRegistrationFile, ECmpFolded);
+	if (err != KErrAlreadyExists) // We silently ignore attempts to insert duplicates
+		User::LeaveIfError(err);
+	
+	} //lint !e818 Suppress pointer parameter 'aRegistrationFile' could be declared as pointing to const
+	
+EXPORT_C void CApaAppList::ResetForcedRegistrations()
+	{
+	if(iForcedRegistrations)
+		iForcedRegistrations->Reset();
+	}
+
+/** Finds the preferred application to handle the specified data type.
+
+@param aDataType The data type of interest.
+@return The third UID of the application in the list which has the 
+highest priority for handling the specified data type. A null UID is 
+returned if no application in the list can handle the specified data type. */
+EXPORT_C TUid CApaAppList::PreferredDataHandlerL(const TDataType& aDataType) const
+	{
+	TInt dummy;
+	return PreferredDataHandlerL(aDataType, NULL, dummy);
+	}
+	
+/** Finds the preferred application to handle the specified data type.
+
+@param aDataType The data type of interest.
+@param aServiceUid The optional service UID.
+@param aPriority The priority associated with the returned app.
+@return The third UID of the application in the list which has the 
+highest priority for handling a combination of the specified data type
+and service. A null UID is returned if no application in the list can
+handle the combination of specified data type and service.
+@internalComponent
+*/
+EXPORT_C TUid CApaAppList::PreferredDataHandlerL(const TDataType& aDataType, const TUid* aServiceUid, TInt& aPriority) const
+	{
+	// If there is a service UID then first try to use the service specific list
+	// of datatypes
+	if (aServiceUid)
+		{
+		CApaAppData* appData = iAppData;
+		aPriority = KDataTypePriorityNotSupported;
+		TUid uid = KNullUid; 
+
+		while (appData)
+			{
+			TInt priority = appData->ImplementsServiceWithDataType(*aServiceUid, aDataType);
+			if (priority > aPriority)
+				{
+				aPriority=priority;
+				uid=appData->AppEntry().iUidType[2];
+				}
+
+			appData=appData->iNext;
+			}
+
+		if (aPriority != KDataTypePriorityNotSupported)
+			return uid;
+		}
+	
+	CApaAppData* appData = iAppData;
+	aPriority = KDataTypePriorityNotSupported;
+	TUid uid = KNullUid;
+
+	// Run through all of the linked list of app-data to locate the application 
+	// with the highest priority that can handle the given data type
+	while (appData)
+		{
+		const TInt priority = appData->DataType(aDataType);
+		if ((priority > aPriority) && (!aServiceUid || (aServiceUid && appData->ImplementsService(*aServiceUid))))
+			{
+			aPriority = priority;
+			uid = appData->AppEntry().iUidType[2];
+			}
+			
+		appData=appData->iNext;
+		}
+		
+	return uid;
+	}
+  
+void CApaAppList::DeleteAppData()
+	{
+	iValidFirstAppData = NULL;
+	iFlags &= ~EFirstScanComplete;
+	iFlags &= ~EAppListHasChanged;
+	iFlags &= ~ELangChangePending;
+	
+	CApaAppData* next = NULL;
+	for (CApaAppData* appData=iAppData; appData; appData = next)
+		{
+		next = appData->iNext;
+		delete appData;
+		}
+	iAppData = NULL;
+	}
+
+void CApaAppList::ScanComplete()
+	{
+	if (!(iFlags & EFirstScanComplete) && iObserver)
+		iObserver->InitialListPopulationComplete();
+	iValidFirstAppData = iAppData;
+	iFlags|=EFirstScanComplete;
+	iNNAInstallation = EFalse;
+	}
+
+/**
+ *
+ * Tests whether the first scan for list of Apps has completed.
+ *
+ * @return   "TBool"
+ *            True, if the first scan for list of Apps has completed; false, otherwise.
+ * @internalComponent
+ */
+EXPORT_C TBool CApaAppList::IsFirstScanComplete() const
+	{
+	return iFlags&EFirstScanComplete;
+	}
+
+EXPORT_C TBool CApaAppList::AppScanInProgress() const
+/** @internalComponent */
+	{
+	return (iAppIdler!=NULL) && iAppIdler->IsActive();
+	}
+
+/**
+@internalComponent
+*/
+EXPORT_C CBufFlat* CApaAppList::ServiceArrayBufferL(TUid aAppUid) const
+	{
+	CApaAppData* app = FirstApp(KIgnoreScreenMode);
+	while (app && app->AppEntry().iUidType[2] != aAppUid)
+		app = NextApp(app, KIgnoreScreenMode);
+
+	if (app)
+		{
+		if (!app->RegistrationFileUsed())
+			User::Leave(KErrNotSupported);
+
+		if (app->iServiceArray)
+			{
+			CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
+			CleanupStack::PushL(buf);
+			RBufWriteStream writeStream(*buf);
+			writeStream << *(app->iServiceArray);
+			writeStream.CommitL();
+			writeStream.Release();
+			CleanupStack::Pop(buf);
+			return buf;
+			}
+		}
+
+	User::Leave(KErrNotFound);
+	return NULL; // to keep compiler happy
+	}
+
+/**
+@internalComponent
+*/
+EXPORT_C CBufFlat* CApaAppList::ServiceUidBufferL(TUid aAppUid) const
+	{
+	CApaAppData* app = FirstApp(KIgnoreScreenMode);
+	while (app && app->AppEntry().iUidType[2] != aAppUid)
+		app = NextApp(app, KIgnoreScreenMode);
+
+	if (app)
+		{
+		if (!app->RegistrationFileUsed())
+			User::Leave(KErrNotSupported);
+
+		if (app->iServiceArray)
+			{
+			CArrayFixFlat<TApaAppServiceInfo>& serviceArray = *(app->iServiceArray);
+			CArrayFixFlat<TUid>* uidArray = new(ELeave) CArrayFixFlat<TUid>(4);
+			CleanupStack::PushL(uidArray);
+			for (TInt i = serviceArray.Count()-1; i >= 0; i--)
+				uidArray->AppendL(serviceArray[i].Uid());
+
+			CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
+			CleanupStack::PushL(buf);
+			RBufWriteStream writeStream(*buf);
+			writeStream << *uidArray;
+			writeStream.CommitL();
+			writeStream.Release();
+			CleanupStack::Pop(buf);
+			CleanupStack::PopAndDestroy(uidArray);
+			return buf;
+			}
+		}
+
+	User::Leave(KErrNotFound);
+	return NULL; // to keep compiler happy
+	}
+
+/**
+@internalComponent
+*/
+EXPORT_C CBufFlat* CApaAppList::ServiceOpaqueDataBufferL(TUid aAppUid, TUid aServiceUid) const
+	{
+	CApaAppData* app = FirstApp(KIgnoreScreenMode);
+	while (app && app->AppEntry().iUidType[2] != aAppUid)
+		app = NextApp(app, KIgnoreScreenMode);
+
+	if (app)
+		{
+		if (!app->RegistrationFileUsed())
+			User::Leave(KErrNotSupported);
+
+		if (app->iServiceArray)
+			{
+			CArrayFixFlat<TApaAppServiceInfo>* implArray = NULL;
+			CArrayFixFlat<TApaAppServiceInfo>& serviceArray = *(app->iServiceArray);
+			for (TInt i = serviceArray.Count()-1; i >= 0; i--)
+				{
+				const TApaAppServiceInfo& infoRef = serviceArray[i];
+				if (infoRef.Uid() == aServiceUid)
+					{
+					if (!implArray)
+						{
+						implArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
+						CleanupStack::PushL(TCleanupItem(CleanupServiceArray, implArray));
+						}
+
+					CArrayFixFlat<TDataTypeWithPriority>* dummy = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(1);
+					CleanupStack::PushL(dummy);					
+					TApaAppServiceInfo info(aServiceUid, dummy, infoRef.OpaqueData().AllocLC());
+					implArray->AppendL(info);
+					CleanupStack::Pop(CONST_CAST(TDesC8*,&info.OpaqueData()));
+					CleanupStack::Pop(dummy);
+					}
+				}
+				
+			if (implArray)
+				{
+				CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
+				CleanupStack::PushL(buf);
+				RBufWriteStream writeStream(*buf);
+				writeStream << *implArray;
+				writeStream.CommitL();
+				writeStream.Release();
+				CleanupStack::Pop(buf);
+				CleanupStack::PopAndDestroy(implArray);
+				return buf;
+				}
+			}
+		}
+	User::Leave(KErrNotFound);
+	return NULL; // to keep compiler happy
+	}
+
+/**
+@internalComponent
+*/
+EXPORT_C CBufFlat* CApaAppList::ServiceImplArrayBufferL(TUid aServiceUid) const
+	{
+	CApaAppData* app = FirstApp(KIgnoreScreenMode);
+	// build an array containing all implementations of the service identified by aServiceUid
+	CArrayFixFlat<TApaAppServiceInfo>* implArray = NULL;
+	while (app)
+		{
+		if (app->iServiceArray)
+			{
+			for (TInt i = app->iServiceArray->Count()-1; i >= 0; i--)
+				{
+				const TApaAppServiceInfo& infoRef = (*app->iServiceArray)[i];
+				if (infoRef.Uid() == aServiceUid)
+					{
+					if (!implArray)
+						{
+						implArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
+						CleanupStack::PushL(TCleanupItem(CleanupServiceArray, implArray));
+						}
+				
+					CArrayFixFlat<TDataTypeWithPriority>* datatypes = DataTypeArrayDeepCopyLC(infoRef.DataTypes());
+					HBufC8* data = infoRef.OpaqueData().AllocLC();
+					TApaAppServiceInfo info(app->AppEntry().iUidType[2], datatypes, data);
+					implArray->AppendL(info);
+					CleanupStack::Pop(data);
+					CleanupStack::Pop(datatypes);
+					}
+				}
+			}
+		app = NextApp(app, KIgnoreScreenMode);
+		}
+
+	if (implArray)
+		{
+		CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
+		CleanupStack::PushL(buf);
+		RBufWriteStream writeStream(*buf);
+		writeStream << *(implArray);
+		writeStream.CommitL();
+		writeStream.Release();
+		CleanupStack::Pop(buf);
+		CleanupStack::PopAndDestroy(implArray);
+		return buf;
+		}
+		
+	User::Leave(KErrNotFound);
+	return NULL; // to keep compiler happy
+	}
+
+EXPORT_C CBufFlat* CApaAppList::ServiceImplArrayBufferL(TUid aServiceUid, const TDataType& aDataType) const
+	{
+	CApaAppData* app = FirstApp(KIgnoreScreenMode);
+	// build an array containing all implementations of the service identified by aServiceUid
+	CArrayFixFlat<TApaAppServiceInfo>* implArray = NULL;
+	while (app)
+		{
+		if (app->iServiceArray)
+			{
+			for (TInt i = app->iServiceArray->Count()-1; i >= 0; i--)
+				{
+				const TApaAppServiceInfo& infoRef = (*app->iServiceArray)[i];
+				if (infoRef.Uid() == aServiceUid)
+					{
+				 	if (KDataTypePriorityNotSupported != app->DataType(aDataType, infoRef.DataTypes()))
+						{
+						if (!implArray)
+							{
+							implArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(4);
+							CleanupStack::PushL(TCleanupItem(CleanupServiceArray, implArray));
+							}
+						CArrayFixFlat<TDataTypeWithPriority>* datatypes = DataTypeArrayDeepCopyLC(infoRef.DataTypes());
+						HBufC8* data = infoRef.OpaqueData().AllocLC();
+						TApaAppServiceInfo info(app->AppEntry().iUidType[2], datatypes, data);
+						implArray->AppendL(info);
+						CleanupStack::Pop(data);
+						CleanupStack::Pop(datatypes);
+						}
+					}
+				}
+			}
+		app = NextApp(app, KIgnoreScreenMode);
+		}
+
+	if (implArray)
+		{
+		CBufFlat* const buf = CBufFlat::NewL(KBufferExpansionGranularity);
+		CleanupStack::PushL(buf);
+		RBufWriteStream writeStream(*buf);
+		writeStream << *(implArray);
+		writeStream.CommitL();
+		writeStream.Release();
+		CleanupStack::Pop(buf);
+		CleanupStack::PopAndDestroy(implArray);
+		return buf;
+		}
+		
+	User::Leave(KErrNotFound);
+	return NULL; // to keep compiler happy
+	}
+	
+CArrayFixFlat<TDataTypeWithPriority>* CApaAppList::DataTypeArrayDeepCopyLC(const CArrayFixFlat<TDataTypeWithPriority>& aOriginal) const
+	{
+	CArrayFixFlat<TDataTypeWithPriority>* result = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(1);
+	CleanupStack::PushL(result);
+	TInt ii = 0;
+	TInt end = aOriginal.Count();
+	while (ii < end)
+		{
+		result->AppendL(aOriginal[ii]);
+		ii++;
+		}
+		
+	return result;
+	}
+	
+EXPORT_C CApaAppList* CApaAppList::Self()
+	{ // static
+	return STATIC_CAST(CApaAppList*,Dll::Tls());
+	}
+	
+/*EXPORT_C*/ RFs& CApaAppList::ShareProtectedFileServer()
+	{
+	return iFsShareProtected; //lint !e1536 Exposing low access member - need to consider a redesign or design clarification here(iFsShareProtected should be owned be the one that needs it) but postpone for now as that may require large changes
+	}
+	
+CApaAppIconArray* CApaAppList::LoadDefaultIconsL() const
+	{
+	CApaIconLoader* iconLoader = CApaIconLoader::NewLC(iFs);
+	CApaAppIconArray* icons = CApaAppIconArray::NewRealDefaultIconsLC(KNumberOfIconsInDefaultMbm,*iDefaultAppIconMbmFileName, *iconLoader);
+	const TBool badMbmEntryInfo = !icons->LoadIconsL();
+	if(badMbmEntryInfo)
+		{
+		CleanupStack::PopAndDestroy(2,iconLoader);
+		return CApaAppIconArray::NewL();
+		}
+	else
+		{
+		CleanupStack::Pop(icons);
+		CleanupStack::PopAndDestroy(iconLoader);
+		}
+		
+	return icons;
+	}
+
+void CApaAppList::AcquireDefaultIconArrayL() const
+	{
+	ASSERT(iDefaultIconUsageCount >= 0);
+	if (iDefaultIconUsageCount == 0)
+		iDefaultIconArray = LoadDefaultIconsL();
+
+	++iDefaultIconUsageCount;
+	}
+
+// Should NEVER be called by an object that does not call AcquireDefaultIconArrayL and
+// ReleaseDefaultIconArray at the beginning and end of its lifetime respectively
+const CApaAppIconArray& CApaAppList::DefaultIconArray() const
+	{
+	__ASSERT_ALWAYS(iDefaultIconArray, Panic(EPanicNullPointer));
+	return *iDefaultIconArray;
+	}
+
+void CApaAppList::ReleaseDefaultIconArray() const
+	{
+	ASSERT(iDefaultIconUsageCount > 0);
+	if(0 == --iDefaultIconUsageCount)
+		{
+		delete iDefaultIconArray;
+		iDefaultIconArray = NULL;		
+		}
+	}
+	
+// DEF077478 - Required to update the default icons that the app list holds.
+void CApaAppList::UpdateDefaultIconsL()
+	{
+	CApaAppIconArray* iconArray = LoadDefaultIconsL();
+	if (iconArray)
+		{
+		delete iDefaultIconArray;
+		iDefaultIconArray = iconArray;
+		}
+	}
+
+void CApaAppList::DeleteAppListStorer()
+	{
+	delete iAppListStorer;
+	iAppListStorer = NULL;
+	}
+
+void CApaAppList::DeleteAppIconLoader()
+	{
+	delete iAppIconLoader;
+	iAppIconLoader = NULL;
+	}
+
+void CApaAppList::InitiateStoringOfAppList()
+	{
+	ScanComplete();	
+	NotifyObserver();
+	iFlags &= ~ENotifyUpdateOnFirstScanComplete;
+	// now that the scan is finished, iDefaultAppIconMbmFileName is deleted
+	delete iDefaultAppIconMbmFileName;
+	iDefaultAppIconMbmFileName=NULL;
+	// if applist has not changed and AppsList_Backup.bin file exists then it is replaced back to AppsList.bin
+	if (!(iFlags & EAppListHasChanged) && BaflUtils::FileExists(iFs, iAppsListCacheBackUpFileName))
+		{
+		TInt replaceError = iFs.Replace(iAppsListCacheBackUpFileName, iAppsListCacheFileName);
+		if (replaceError == KErrNone)
+			return;
+		}
+
+    iFlags &= ~EAppListHasChanged;
+	iFs.Delete(iAppsListCacheBackUpFileName);
+	TInt err = iFs.MkDir(iAppsListCachePath);
+	if (err == KErrNone || err == KErrAlreadyExists)
+		{
+		TRAP(err, StoreL());
+		if (err)
+			DeleteAppListStorer();
+		}
+	}
+
+
+EXPORT_C void CApaAppList::AddCustomAppInfoInListL(TUid aAppUid, TLanguage aLanguage, const TDesC& aShortCaption)
+	{
+	TBool replaced=EFalse;
+	for (TInt i=iCustomAppList.Count()-1; i>=0; --i)
+		{
+		if (aAppUid == iCustomAppList[i]->Uid() && aLanguage == iCustomAppList[i]->Language())
+			{
+			CCustomAppInfoData* oldAppInfo = iCustomAppList[i];
+			iCustomAppList[i] = CCustomAppInfoData::NewL(aAppUid, aLanguage, aShortCaption);;
+			delete oldAppInfo;
+			replaced=ETrue;
+			break;
+			}
+		}
+	//Add ELangNone items at the end and others at the beginning
+	if(!replaced)
+		{
+		CCustomAppInfoData* appInfo = CCustomAppInfoData::NewL(aAppUid, aLanguage, aShortCaption);
+		CleanupStack::PushL(appInfo);
+		
+		if(aLanguage == ELangNone)
+			iCustomAppList.AppendL(appInfo);
+		else
+			iCustomAppList.InsertL(appInfo,0);
+		
+		CleanupStack::Pop(appInfo);
+		}
+	
+	} //lint !e818 Suppress pointer parameter could be declared as pointing to const - this method takes ownership
+
+
+EXPORT_C void CApaAppList::UpdateAppListByShortCaptionL()
+	{
+	//Items with ELangNone are always found at the end and other languages at the beginning
+	//While iterating from end to beginning, we overwrite short caption set by ELangNone if there is any provided for the application language
+	for (TInt i=iCustomAppList.Count()-1; i>=0; --i)
+		{
+		const CCustomAppInfoData* const customAppInfo=iCustomAppList[i];
+		CApaAppData* app = AppDataByUid(customAppInfo->Uid());
+		
+		if ( app && (app->ApplicationLanguage()==customAppInfo->Language() || customAppInfo->Language()==ELangNone))
+			app->SetShortCaptionL(*customAppInfo->ShortCaption());
+		}
+	}
+
+EXPORT_C void CApaAppList::UpdateAppListByIconCaptionOverridesL()
+	{
+	// get the language downgrade path, so that most appropriate language can be used
+	RArray<TLanguage> languageDowngradePath;
+	CleanupClosePushL(languageDowngradePath);
+	BaflUtils::GetDowngradePathL(iFs, User::Language(), languageDowngradePath);
+	for (CApaAppData* app = FirstApp(); app; app = NextApp(app))
+		{
+		CApaIconCaptionOverridesForApp* appOverride = iIconCaptionOverrides->OverrideForApp(app->AppEntry().iUidType[2]);
+		if (appOverride)
+			{
+			TApaIconCaptionOverrideReader overrideReader = appOverride->Reader(languageDowngradePath);
+			const TDesC* shortCaption = overrideReader.ShortCaption();
+			if (shortCaption)
+				app->SetShortCaptionL(*shortCaption);
+			const TDesC* caption = overrideReader.Caption();
+			if (caption)
+				app->SetCaptionL(*caption);
+			const TDesC* iconFileName = overrideReader.IconFileName();
+			if (overrideReader.NumIconsSet() && iconFileName)
+				app->SetIconsL(*iconFileName, overrideReader.NumIcons());
+			}
+		}
+	CleanupStack::PopAndDestroy(&languageDowngradePath);
+	}
+
+//
+// Class CApaAppListStorer
+//
+
+CApaAppList::CApaAppListStorer::CApaAppListStorer(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList) : CActive(EPriorityIdle), iCurrentAppData(aFirstAppData), iFs(aFs), iAppList(aAppList)
+	{
+	}
+
+CApaAppList::CApaAppListStorer::~CApaAppListStorer()
+	{
+	Cancel();
+	iWriteStream.Close();
+	iFs.Delete(iTempFilename);
+	iTimer.Close();
+	iCurrentAppData = NULL;
+	}
+
+CApaAppList::CApaAppListStorer* CApaAppList::CApaAppListStorer::NewL(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList)
+	{
+	CApaAppListStorer* self = new(ELeave) CApaAppListStorer(aFirstAppData, aFs, aAppList);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+void CApaAppList::CApaAppListStorer::ConstructL()
+	{
+	User::LeaveIfError(iTimer.CreateLocal());
+	CActiveScheduler::Add(this);
+	}
+
+void CApaAppList::CApaAppListStorer::StartL(const TTimeIntervalMicroSeconds32& aDelay)
+	{
+	User::LeaveIfError(iWriteStream.Temp(iFs, iAppList.iAppsListCachePath, iTempFilename, EFileWrite));
+	iWriteStream.WriteInt32L(User::Language());
+	
+#if defined (SYMBIAN_BAFL_SYSUTIL)
+	//Write a cache of the ROM version to a separate stream
+	//Build the filename for the cache file
+	TInt maxSizeofFileName = iAppList.iAppsListCachePath.Length() + KROMVersionStringCacheFileName().Length();
+	RBuf romVersionCacheFileName;
+	romVersionCacheFileName.CreateL(maxSizeofFileName);
+	romVersionCacheFileName.CleanupClosePushL();
+	romVersionCacheFileName.Append(iAppList.iAppsListCachePath);
+	romVersionCacheFileName.Append(KROMVersionStringCacheFileName());
+	
+	RFileWriteStream romVerStream;
+	User::LeaveIfError(romVerStream.Replace(iFs,romVersionCacheFileName,EFileWrite));
+	CleanupClosePushL(romVerStream);
+	
+	// Write the file version that apparc can handle.
+	romVerStream.WriteInt8L(KROMVersionCacheFileMajorVersion);
+	romVerStream.WriteInt8L(KROMVersionCacheFileMinorVersion);
+	romVerStream.WriteInt16L(KROMVersionCacheFileBuildVersion);
+		
+	TBuf<KInfoBufLength> version;
+	SysUtil::GetSWVersion(version);
+	
+	// Write the software version even if SysUtil returns err since all conditions are taken care during restore.
+	romVerStream.WriteUint32L(version.Length());
+	romVerStream.WriteL(version, version.Length());
+	CleanupStack::PopAndDestroy(2); //romVerStream, romVersionCacheFileName
+#endif //(SYMBIAN_BAFL_SYSUTIL)
+	
+	iTimer.After(iStatus, aDelay);
+	SetActive();
+	}
+
+void CApaAppList::CApaAppListStorer::RunL()
+	{ 
+	// iStatus could be KErrNone or negative when timer completes, irrespective of its status we need to re-queue the request.
+	if (iCurrentAppData)
+		{
+		StoreEntryL(iWriteStream, *iCurrentAppData);
+		iCurrentAppData = iCurrentAppData->Next();
+		SetActive();
+		TRequestStatus* status = &iStatus;
+		User::RequestComplete(status, KErrNone);
+		}
+	else
+		{
+		iWriteStream.CommitL();
+		iWriteStream.Close();
+
+		TInt err = iFs.Replace(iTempFilename, iAppList.iAppsListCacheFileName);
+		if (err != KErrNone)
+			iFs.Delete(iTempFilename);
+
+		iAppList.DeleteAppListStorer();
+		}
+	}
+
+void CApaAppList::CApaAppListStorer::StoreEntryL(RWriteStream& aWriteStream, const CApaAppData& aApp)
+	{
+	aWriteStream << aApp;
+	}
+
+void CApaAppList::CApaAppListStorer::DoCancel()
+	{
+	iTimer.Cancel();
+	}
+
+TInt CApaAppList::CApaAppListStorer::RunError(TInt /*aError*/)
+	{
+	iAppList.DeleteAppListStorer();
+	return KErrNone;
+	}
+
+//
+// Class CApaIdleIconLoader
+//
+
+CApaAppList::CApaIdleIconLoader::CApaIdleIconLoader(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList) : CActive(EPriorityLow), iCurrentAppData(aFirstAppData), iFs(aFs), iAppList(aAppList)
+	{ // Priority is less than KAppListServerPriority, to maintain server responsiveness.
+	CActiveScheduler::Add(this);
+	}
+
+CApaAppList::CApaIdleIconLoader::~CApaIdleIconLoader()
+	{
+	Cancel();
+	iCurrentAppData = NULL;
+	}
+
+void CApaAppList::CApaIdleIconLoader::Start()
+	{
+	SetActive();
+	TRequestStatus* status = &iStatus;
+	User::RequestComplete(status, KErrNone);
+	}
+
+void CApaAppList::CApaIdleIconLoader::RunL()
+/** if the icons are not already loaded on demand then it would be loaded here. */
+	{
+	while (iCurrentAppData && !iCurrentAppData->MbmIconsRequireLoading())
+		iCurrentAppData = iCurrentAppData->Next();
+
+	if(iCurrentAppData)
+		{
+		Start();
+		CApaAppData* const appData = iCurrentAppData;
+		iCurrentAppData = iCurrentAppData->Next();
+		appData->LoadIconsL();
+		}
+	else
+		{
+		iAppList.InitiateStoringOfAppList();
+		iAppList.DeleteAppIconLoader();
+		}
+	}
+
+void CApaAppList::CApaIdleIconLoader::DoCancel()
+	{
+	}
+
+TInt CApaAppList::CApaIdleIconLoader::RunError(TInt /*aError*/)
+	{
+	return KErrNone;
+	}
+
+
+//
+// Class CApaLangChangeMonitor
+//
+
+CApaAppList::CApaLangChangeMonitor::~CApaLangChangeMonitor()
+	{	
+	Cancel();
+	iLangNotifier.Close();
+	}
+
+CApaAppList::CApaLangChangeMonitor* CApaAppList::CApaLangChangeMonitor::NewL(CApaAppList& aAppList)
+	{ // static	
+	CApaLangChangeMonitor* self=new(ELeave) CApaLangChangeMonitor(aAppList);
+	self->ConstructL();
+	return self;
+	}
+
+CApaAppList::CApaLangChangeMonitor::CApaLangChangeMonitor(CApaAppList& aAppList)
+	: CActive(EPriorityNormal),
+	iAppList(aAppList)
+	{	
+	iPrevLanguage = User::Language();
+	CActiveScheduler::Add(this);
+	}
+
+void CApaAppList::CApaLangChangeMonitor::ConstructL()
+	{
+	User::LeaveIfError(iLangNotifier.Create());
+	Start();
+	}
+ 
+void CApaAppList::CApaLangChangeMonitor::Start()
+	{
+	iLangNotifier.Logon(iStatus);
+	SetActive();
+	}
+
+void CApaAppList::CApaLangChangeMonitor::DoCancel()
+	{
+	iLangNotifier.LogonCancel();
+	}
+
+void CApaAppList::CApaLangChangeMonitor::RunL()
+	{
+	// Logon to get further events before handling current request.
+	TRequestStatus status = iStatus;
+	Start();
+	
+	// if it is a language change event, start a rescan on app-list.
+	if (status.Int() == EChangesLocale && iPrevLanguage != User::Language())
+		{		
+		iPrevLanguage = User::Language();
+		iAppList.iFlags |= CApaAppList::ELangChangePending;
+		iAppList.StartIdleUpdateL(iAppList.iObserver);
+		}
+	}
+
+TInt CApaAppList::CApaLangChangeMonitor::RunError(TInt /*aError*/)
+	{
+	// Reset ELangChangePending flag if RunL leaves.
+	iAppList.iFlags &= ~CApaAppList::ELangChangePending;
+	// Reset iPrevLanguage to ELangNone if RunL leaves.
+	iPrevLanguage = ELangNone;
+	return KErrNone;
+	}
+
+//
+// CCustomAppInfoData
+//
+
+CApaAppList::CCustomAppInfoData* CApaAppList::CCustomAppInfoData::NewL(TUid aAppUid, TLanguage aLanguage, const TDesC& aShortCaption)
+	{
+	CCustomAppInfoData* self=new(ELeave) CCustomAppInfoData(aAppUid, aLanguage);
+    CleanupStack::PushL(self);
+	self->ConstructL(aShortCaption);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CApaAppList::CCustomAppInfoData::~CCustomAppInfoData()
+	{
+	delete iShortCaption;
+	}
+
+CApaAppList::CCustomAppInfoData::CCustomAppInfoData(TUid aAppUid, TLanguage aLanguage)
+	:iUid(aAppUid),
+	iLanguage(aLanguage)
+	{
+	}
+
+void CApaAppList::CCustomAppInfoData::ConstructL(const TDesC& aShortCaption)
+	{
+	iShortCaption=aShortCaption.AllocL();
+	}
+
+TUid CApaAppList::CCustomAppInfoData::Uid() const
+	{ return iUid; }
+	
+TLanguage CApaAppList::CCustomAppInfoData::Language() const
+	{ return iLanguage; }
+	
+HBufC* CApaAppList::CCustomAppInfoData::ShortCaption() const
+	{ return iShortCaption; }
+
+// The function transfers ownership of the pointer owned by a CApaAppList to the caller
+// to avoid copying the array.
+
+EXPORT_C CArrayFixFlat<TUid>* CApaAppList::UninstalledAppArray()
+    {
+    CArrayFixFlat<TUid>* uninstalledApps=iUninstalledApps;
+    iUninstalledApps=NULL;
+    return uninstalledApps;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/aplapplist.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,266 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// aplapplist.h
+//
+
+#ifndef __APLAPPLIST_H__
+#define __APLAPPLIST_H__
+
+/*#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apmfndr.h>
+#else
+#include <apmstd.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+*/
+#include <apaid.h>
+#include <badesca.h>
+#include <s32file.h>
+
+// classes defined:
+class CApaAppList;
+class CApaAppViewData;
+// classes referenced:
+class CApaMaskedBitmap;
+class TEntry;
+class RFs;
+class CApaAppRegFinder;
+class CApaAppIconArray;
+class CApaIconLoader;
+class TApaAppEntry;
+class CApaAppData;
+class CApaIconCaptionOverrides;
+class CApaIconCaptionCenrepObserver;
+
+/**
+KIgnoreScreenMode
+
+@internalTechnology
+*/
+const TInt KIgnoreScreenMode=-1;
+
+
+/**
+The MApaAppListObserver interface allows a class to be informed when a CApaAppList is 
+updated.
+
+@internalComponent
+*/
+class MApaAppListObserver
+	{
+public:
+	virtual void NotifyUpdate(TInt aReason)=0;
+	virtual void InitialListPopulationComplete()=0;
+	virtual void NotifyScanComplete()=0;
+ 	};
+
+/**
+The CApaAppList class provides a list of all available applications present on a device.
+Its functionality should be accessed through the Apparc Server.
+
+@internalComponent
+*/
+class CApaAppList : public CBase
+	{
+public: 
+	IMPORT_C static CApaAppList* NewL(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aTimeoutDelay = 50000); // takes ownership of aAppRegFinder
+public:
+	IMPORT_C void PurgeL();
+	IMPORT_C TInt Count() const;
+	IMPORT_C CApaAppData* FirstApp() const;
+	IMPORT_C CApaAppData* FirstApp(TInt aScreenMode) const; 
+	IMPORT_C CApaAppData* NextApp(const CApaAppData* aApp) const;
+	IMPORT_C CApaAppData* NextApp(const CApaAppData* aApp, TInt aScreenMode) const;
+	IMPORT_C CApaAppData* AppDataByUid(TUid aAppUid) const;
+	IMPORT_C void StopScan(TBool aNNAInstall = EFalse);
+	IMPORT_C void RestartScanL();
+	IMPORT_C TBool AppListUpdatePending();
+	// ER5
+	IMPORT_C TUid PreferredDataHandlerL(const TDataType& aDataType) const;
+	IMPORT_C void StartIdleUpdateL();
+	IMPORT_C void StartIdleUpdateL(MApaAppListObserver* aObserver);
+	IMPORT_C void InitListL(MApaAppListObserver* aObserver);
+	IMPORT_C TBool IsIdleUpdateComplete() const;
+	//
+	IMPORT_C TBool IsFirstScanComplete() const;
+	IMPORT_C TBool AppScanInProgress() const;
+	IMPORT_C CBufFlat* ServiceArrayBufferL(TUid aAppUid) const;
+	IMPORT_C CBufFlat* ServiceImplArrayBufferL(TUid aServiceUid) const;
+	IMPORT_C CBufFlat* ServiceImplArrayBufferL(TUid aServiceUid, const TDataType& aDataType) const;	
+	IMPORT_C CBufFlat* ServiceUidBufferL(TUid aAppUid) const;
+	IMPORT_C CBufFlat* ServiceOpaqueDataBufferL(TUid aAppUid, TUid aServiceUid) const;
+	IMPORT_C CApaAppData* FindAndAddSpecificAppL(CApaAppRegFinder* aFinder, TUid aAppUid);
+	IMPORT_C TUid PreferredDataHandlerL(const TDataType& aDataType, const TUid* aServiceUid, 
+		TInt& aPriority) const;
+	IMPORT_C ~CApaAppList();
+	// 9.1
+	IMPORT_C CApaAppData* AppDataByFileName(const TDesC& aFullFileName) const;
+	/*IMPORT_C*/ RFs& ShareProtectedFileServer();
+	IMPORT_C void AddForcedRegistrationL(const TDesC& aRegistrationFile);
+	IMPORT_C void ResetForcedRegistrations();
+	IMPORT_C TBool IsLanguageChangePending() const;
+	IMPORT_C static CApaAppList* Self();
+    IMPORT_C CArrayFixFlat<TUid>* UninstalledAppArray();
+    
+	void AcquireDefaultIconArrayL() const;
+	const CApaAppIconArray& DefaultIconArray() const;
+	void ReleaseDefaultIconArray() const;
+
+	void StoreL();
+	void NotifyObserver();
+	void DeleteAppListStorer();
+	void DeleteAppIconLoader();
+	void InitiateStoringOfAppList();
+	
+	IMPORT_C void AddCustomAppInfoInListL(TUid aAppUid, TLanguage aLanguage, const TDesC& aShortCaption);
+	IMPORT_C void UpdateAppListByShortCaptionL();
+	IMPORT_C void UpdateAppListByIconCaptionOverridesL();
+private:
+	enum
+		{
+		EFirstScanComplete = 0x01,
+		EAppListHasChanged = 0x02,	// This flag is used to check if the applist has really changed after a re-scan/update scan.
+		ENotifyUpdateOnFirstScanComplete = 0x04,// This flag is used to notify clients for applist update on first boot when AppsList.Bin is used.
+		ELangChangePending = 0x08 // This flag is used to check if applist update is in progress on language change event.
+		};
+private:
+	CApaAppList(RFs& aFs, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay);
+	void UpdateNextAppL(const TApaAppEntry& aAppEntry,TBool& aHasChanged);
+	void AddToList( CApaAppData* aAppData );
+	static void SetPending(CApaAppData* aAppData);
+	static void SetNotFound(CApaAppData* aAppData, TBool& aHasChanged);
+	static TInt IdleUpdateCallbackL(TAny* aObject);
+	TInt IdleUpdateL();
+	void ScanComplete();
+	void UndoSetPending(CApaAppData* aAppData);
+
+	void StopIdler();
+	void DeleteAppData();
+	CArrayFixFlat<TDataTypeWithPriority>* DataTypeArrayDeepCopyLC(const CArrayFixFlat<TDataTypeWithPriority>& aOriginal) const;
+	CApaAppIconArray* LoadDefaultIconsL() const;
+	void UpdateDefaultIconsL();
+
+	void StartIconLoadingL();
+	void DeleteAppsListBackUpAndTempFiles();
+	void ScanRemovableDrivesAndUpdateL();
+	void CreateDefaultAppIconFileNameL();
+private: 
+	// Persistence Layer
+	void RestoreL();
+	void ConstructL();
+
+	/**
+	Utility class used to Load Icons once applist is populated
+	@internalComponent
+	*/	
+	NONSHARABLE_CLASS(CApaIdleIconLoader) : public CActive
+		{
+	public:
+		CApaIdleIconLoader(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList);
+		~CApaIdleIconLoader();
+		void Start();
+	private:	// from CActive
+		void RunL();
+		void DoCancel();
+		TInt RunError(TInt aError);
+	private:
+		CApaAppData* iCurrentAppData;
+		RFs& iFs;
+		CApaAppList& iAppList;
+		};
+
+	/**
+	Utility class used to externalize applist to file
+	@internalComponent
+	*/	
+	NONSHARABLE_CLASS(CApaAppListStorer) : public CActive
+		{
+	public:
+		static CApaAppListStorer* NewL(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList);
+		~CApaAppListStorer();
+		void StartL(const TTimeIntervalMicroSeconds32& aDelay);
+	private:
+		CApaAppListStorer(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList);
+		static void StoreEntryL(RWriteStream& aWriteStream, const CApaAppData& aApp);
+		void ConstructL();
+	private:	// from CActive
+		void RunL();
+		void DoCancel();
+		TInt RunError(TInt aError);
+	private:
+		CApaAppData* iCurrentAppData;
+		TFileName iTempFilename;
+		RFileWriteStream iWriteStream;
+		RTimer iTimer;
+		RFs& iFs;
+		CApaAppList& iAppList;
+		};
+	
+	/**
+	The CCustomAppInfoData class encapsulate the attributes of customised application information
+	which will be used to modify short caption dynamically.
+
+	@internalComponent
+	*/
+	NONSHARABLE_CLASS(CCustomAppInfoData) : public CBase
+		{
+	public:
+		static CCustomAppInfoData* NewL(TUid aAppUid, TLanguage aLanguage, const TDesC& aShortCaption);
+		~CCustomAppInfoData();
+		inline TUid Uid() const;
+		inline TLanguage Language() const;
+		inline HBufC* ShortCaption() const;
+	private:
+		CCustomAppInfoData(TUid aAppUid, TLanguage aLanguage);
+		void ConstructL(const TDesC& aShortCaption);
+	private:
+		TUid iUid;
+		TLanguage iLanguage;
+		HBufC* iShortCaption;
+		};
+
+private:
+	RFs& iFs;
+	CApaAppData* iAppData; // linked list of apps
+	CPeriodic* iAppIdler;
+	MApaAppListObserver* iObserver;
+	CApaAppData* iValidFirstAppData; //First valid app data in linked list!
+	TInt iFlags;
+	CApaAppRegFinder* iAppRegFinder;
+	TInt iIdlePeriodicDelay; 	// idle timeout periodic delay
+	RFs iFsShareProtected;
+	mutable CApaAppIconArray* iDefaultIconArray;
+	mutable TInt iDefaultIconUsageCount;
+	CDesCArray* iForcedRegistrations;
+	class CApaLangChangeMonitor; //inner class of CApaAppList.
+	CApaLangChangeMonitor* iAppLangMonitor; // Active Object used for language change monitoring.		
+
+	RBuf iAppsListCacheFileName;
+	RBuf iAppsListCacheBackUpFileName;
+	RBuf iAppsListCachePath;
+
+	HBufC* iDefaultAppIconMbmFileName; // This member data lives only during the scan
+	CApaAppListStorer* iAppListStorer;	//Active Object used for writing applist to file.
+	CApaIdleIconLoader* iAppIconLoader;	//Active Object used for icon handling
+	TBool iLoadMbmIconsOnDemand;
+	RPointerArray<CCustomAppInfoData> iCustomAppList;
+	CApaIconCaptionOverrides* iIconCaptionOverrides;
+	CApaIconCaptionCenrepObserver* iIconCaptionObserver;
+	TBool iNNAInstallation;	
+    CArrayFixFlat<TUid>* iUninstalledApps; 	
+    
+private:
+	friend class CApaLangChangeMonitor;
+	};
+
+#endif //__APLAPPLIST_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/aplapplistitem.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,1305 @@
+// Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// aplapplistitem.cpp
+//
+
+#include "aplapplistitem.h"
+#include "APGAPLST.H"				// KApaIconIndexSmall, KApaIconIndexMedium, KApaIconIndexLarge
+#include "../apgrfx/APGSTD.H" 
+#include "APFDEF.H"					// KAppResourceFileExtension
+#include "../apparc/TRACE.H"
+#include <bautils.h>
+#include "../apgrfx/APGPRIV.H"		// KLitPathForNonNativeResourceAndIconFiles
+#include "../apgrfx/apprivate.h"	// KLitPathForNonNativeResourceAndIconFiles
+#include "aplappinforeader.h"
+#include <e32uid.h>
+
+
+// Delays in the pseudo idle object that builds the application list
+//
+
+//
+// Local functions
+//
+
+extern void CleanupServiceArray(TAny* aServiceArray);	// Implemented in AplAppList.cpp
+
+
+//
+// class TApaAppEntry
+//
+
+/** Constructs an empty application entry object.
+
+The full path name is empty, and the triplet of UIDs forming the UID type 
+are set to null UIDs. */
+EXPORT_C TApaAppEntry::TApaAppEntry()
+	: iUidType(TUidType()),
+	iFullName(KNullDesC)
+	{}
+
+
+/** Constructs an application entry object from the specified application 
+DLL full path name and UID type. 
+@param aAppUidType UID type.
+@param aDllName Application DLL full path name. */
+TApaAppEntry::TApaAppEntry(const TUidType& aAppUidType,const TFileName& aDllName)
+	: iUidType(aAppUidType),
+	iFullName(aDllName)
+	{}
+
+
+/** Externalises the application entry to a write stream.
+
+@param aStream The write stream. */
+void TApaAppEntry::ExternalizeL(RWriteStream& aStream)const
+	{
+	aStream<< iUidType[0];
+	aStream<< iUidType[1];
+	aStream<< iUidType[2];
+	aStream<< iFullName;
+	}
+
+
+/** Internalises the application entry from a read stream.
+
+@param aStream The read stream. */
+void TApaAppEntry::InternalizeL(RReadStream& aStream)
+	{
+	TUid uid1;
+	TUid uid2;
+	TUid uid3;
+	aStream>> uid1;
+	aStream>> uid2;
+	aStream>> uid3;
+	iUidType = TUidType(uid1,uid2,uid3);
+	aStream>> iFullName;
+	}
+
+//
+// Class CApaAppViewData
+//
+
+CApaAppViewData::~CApaAppViewData()
+	{
+	delete iIcons;
+	delete iCaption;
+	delete iIconFileName;
+	}
+
+CApaAppViewData::CApaAppViewData()
+	: iNonMbmIconFile(EFalse)
+	{
+	}
+
+void CApaAppViewData::ConstructL()
+	{
+	iIcons=CApaAppIconArray::NewL();
+	}
+
+CApaAppViewData* CApaAppViewData::NewLC()
+	{
+	CApaAppViewData* self=new(ELeave) CApaAppViewData();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;	
+	}
+
+void CApaAppViewData::SetUid(TUid aUid)
+	{
+	iUid=aUid;
+	}
+
+void CApaAppViewData::SetScreenMode(TInt aScreenMode)
+	{
+	iScreenMode=aScreenMode;
+	}
+
+EXPORT_C TInt CApaAppViewData::ScreenMode() const
+	{
+	return iScreenMode;
+	}
+
+void CApaAppViewData::SetCaptionL(const TDesC& aCaption)
+	{
+	HBufC* newCaption=aCaption.AllocL();
+	delete(iCaption); // after the AllocL succeeds
+	iCaption=newCaption;
+	}
+
+void CApaAppViewData::SetIconArray(CApaAppIconArray* aIcons)
+	{
+	delete iIcons;
+	iIcons = aIcons;
+	}
+
+void CApaAppViewData::SetIconFileNameL(const TDesC& aFileName)
+	{
+	HBufC* fileName = aFileName.AllocL();
+	delete iIconFileName; // after the AllocL succeeds
+	iIconFileName = fileName;
+	}
+
+void CApaAppViewData::SetNumOfViewIcons(TInt aNumOfViewIcons)
+	{
+	iNumOfViewIcons = aNumOfViewIcons;
+	}
+
+void CApaAppViewData::SetNonMbmIconFile(TBool aNonMbmIconFile)
+	{
+	iNonMbmIconFile = aNonMbmIconFile;
+	}
+
+EXPORT_C TUid CApaAppViewData::Uid() const
+	{
+	return iUid;
+	}
+
+EXPORT_C CApaMaskedBitmap* CApaAppViewData::Icon(const TSize& aSize) const
+	{
+	return iIcons->IconBySize(aSize);
+	}
+
+EXPORT_C CArrayFixFlat<TSize>* CApaAppViewData::IconSizesL() const
+	{
+	return iIcons->IconSizesL();
+	}
+
+EXPORT_C TPtrC CApaAppViewData::IconFileName() const
+	{
+	if (iIconFileName)
+		{
+		return *iIconFileName;
+		}
+	else
+		{
+		return TPtrC(KNullDesC);
+		}
+	}
+
+EXPORT_C TBool CApaAppViewData::NonMbmIconFile() const
+	{
+	return iNonMbmIconFile;
+	}
+
+
+//
+// class CApaAppEntry
+//
+
+CApaAppEntry* CApaAppEntry::NewL(const TApaAppEntry& aAppEntry)
+	{ // static
+	CApaAppEntry* self=new(ELeave) CApaAppEntry(aAppEntry.iUidType);
+	CleanupStack::PushL(self);
+	self->ConstructL(aAppEntry.iFullName);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CApaAppEntry::~CApaAppEntry()
+	{
+	delete iFullName;
+	}
+
+void CApaAppEntry::Get(TApaAppEntry& aAppEntry) const
+	{
+	aAppEntry.iFullName=*iFullName;
+	aAppEntry.iUidType=iUidType;
+	}
+
+CApaAppEntry::CApaAppEntry(const TUidType& aUidType)
+	: iUidType(aUidType)
+	{
+	}
+
+void CApaAppEntry::ConstructL(const TDesC& aFileName)
+	{
+	iFullName=aFileName.AllocL();
+	}
+
+
+//
+// Class CApaAppData
+//
+
+EXPORT_C CApaAppData* CApaAppData::NewL(const TApaAppEntry& aAppEntry, RFs& aFs)
+	{
+	CApaAppData* self=new(ELeave) CApaAppData(aFs);
+	CleanupStack::PushL(self);
+	self->ConstructL(aAppEntry);
+	CleanupStack::Pop(); // self
+	return self;
+	}
+
+CApaAppData::CApaAppData(RFs& aFs)
+	:iCaption(NULL), iShortCaption(NULL), 
+	iIsPresent(CApaAppData::EIsPresent), iFs(aFs),
+	iNonMbmIconFile(EFalse),
+	iApplicationLanguage(ELangNone), iIndexOfFirstOpenService(-1),
+	iNonNativeApplicationType(TUid::Null()),
+	iShortCaptionFromResourceFile(NULL)
+	{
+	}
+
+void CApaAppData::ConstructL(const TApaAppEntry& aAppEntry)
+	{
+	iUidType = aAppEntry.iUidType; // if the 2nd UID is KUidAppRegistrationFile, iUidType will be updated in ReadApplicationInformationFromResourceFiles() to reflect the TUidType for the application binary
+	if (ApaUtils::TypeUidIsForRegistrationFile(aAppEntry.iUidType))
+		{
+		iRegistrationFile = aAppEntry.iFullName.AllocL();
+		}
+	else
+		{
+		iFullName = aAppEntry.iFullName.AllocL();
+		}
+
+	iCapabilityBuf.FillZ(iCapabilityBuf.MaxLength());
+	iIcons = CApaAppIconArray::NewL();
+	iViewDataArray=new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);
+	iOwnedFileArray=new(ELeave) CDesCArraySeg(1);
+	User::LeaveIfError(ReadApplicationInformationFromResourceFiles());
+	}
+
+// Return a standard error code
+// The value returned only reflect the caption status
+// If there is errors setting up captions the old values are retained
+// All other errors are silently ignored
+// General notes:
+// 1. This method is deliberately very similar to the old CApaAppData::GetAifData
+//    in order to maintain behavioural compatibility for V1 apps
+// 2. Be very careful in this method, because it can be called on a newly constructed object,
+//    or on an existing object, so don't assume member data pointers will be NULL
+TInt CApaAppData::ReadApplicationInformationFromResourceFiles()
+	{
+	HBufC* caption = NULL;
+	HBufC* shortCaption = NULL;
+
+	iTimeStamp = TTime(0); // cannot init in constructor because this function can be called on an existing CApaAppData object
+
+	if(iRegistrationFile)
+		{
+		CApaAppInfoReader* appInfoReader = NULL;
+		TRAP_IGNORE(appInfoReader = CApaAppInfoReader::NewL(iFs, *iRegistrationFile, iUidType[2]));	
+		if (!appInfoReader)
+			{
+			if (!iFullName)
+				{
+				// assume that if iFullName is NULL, this method has been called as part
+				// of constructing a new app data object. The CApaAppInfoReader derived object
+				// could not be created, therefore we have no way to determine the full filename
+				// of the app binary, so give up
+				return KErrNoMemory;
+				}
+			}
+		else
+			{
+			TBool readSuccessful=EFalse;
+			TRAP_IGNORE(readSuccessful= appInfoReader->ReadL());
+
+			HBufC* const appBinaryFullName = appInfoReader->AppBinaryFullName();
+			if (appBinaryFullName)
+				{
+				delete iFullName;
+				iFullName = appBinaryFullName;
+				}
+				
+			if (!iFullName)
+				{
+				delete appInfoReader;
+				return KErrNoMemory;
+				}
+				
+			// if this object has just been constructed, iUidType is currently the TUidType
+			// of the registration file, it should be the TUidType of the app binary file
+			TUidType uidType = appInfoReader->AppBinaryUidType();
+			if (uidType[1].iUid != KNullUid.iUid)
+				iUidType = uidType;
+
+			// must get captions regardless of value of readSuccessful,
+			// because the V1 reader might have read captions
+			// this is done to maintain behavioural compatibility with V1
+			caption = appInfoReader->Caption();
+			shortCaption = appInfoReader->ShortCaption();
+
+			CApaAppIconArray* icons = appInfoReader->Icons();
+			if(icons)
+				{
+				delete iIcons;
+				iIcons = icons;
+				iIconLoader = appInfoReader->IconLoader();
+				}
+			else
+				{			
+				TRAPD(err, icons = CApaAppIconArray::NewL());
+				if(err == KErrNone)
+					{
+					delete iIcons;
+					iIcons = icons;
+					}
+				}
+				
+			iTimeStamp = appInfoReader->TimeStamp();
+			delete iLocalisableResourceFileName;
+			iLocalisableResourceFileName = appInfoReader->LocalisableResourceFileName();
+			iLocalisableResourceFileTimeStamp = appInfoReader->LocalisableResourceFileTimeStamp();
+
+			const TBool isNonNativeApp = 
+				(TParsePtrC(*iRegistrationFile).Path().CompareF(KLitPathForNonNativeResourceAndIconFiles) == 0);
+				
+			if (isNonNativeApp)
+				{
+				// In the case of a non-native app, the resource file has been prefixed with a
+				// TCheckedUid, the second of whose UIDs is the non-native application type uid.
+				TEntry entry;
+				const TInt error=iFs.Entry(*iRegistrationFile, entry);
+				if (error!=KErrNone)
+					{
+					delete appInfoReader;
+					return error;
+					}
+					
+				__ASSERT_DEBUG(entry.iType[0].iUid==KUidPrefixedNonNativeRegistrationResourceFile, Panic(EPanicUnexpectedUid));
+				iNonNativeApplicationType=entry.iType[1];
+				}
+
+			delete iOpaqueData;
+			iOpaqueData = appInfoReader->OpaqueData();
+
+			if (readSuccessful)
+				{
+				appInfoReader->Capability(iCapabilityBuf);
+
+				iDefaultScreenNumber = appInfoReader->DefaultScreenNumber();
+
+				delete iIconFileName;
+				iIconFileName = appInfoReader->IconFileName();
+				iIconFileTimeStamp = appInfoReader->IconFileTimeStamp();
+				iNonMbmIconFile = appInfoReader->NonMbmIconFile();
+				iNumOfAppIcons = appInfoReader->NumOfAppIcons();
+				iApplicationLanguage = appInfoReader->AppLanguage();
+						
+				// views
+				iViewDataArray->ResetAndDestroy();
+				CArrayPtrFlat<CApaAppViewData>* viewDataArray = appInfoReader->Views();
+				if (viewDataArray)
+					{
+					delete iViewDataArray;
+					iViewDataArray = viewDataArray;
+					
+					if(!iIconLoader && ViewMbmIconsRequireLoading())
+					    {
+					    //if VIEW_DATA contains a MBM icon we need to initialize iIconLoader
+					    iIconLoader = appInfoReader->IconLoader();
+					    }
+					}
+
+				// owned files
+				iOwnedFileArray->Reset();
+				CDesCArray* const ownedFileArray = appInfoReader->OwnedFiles();
+				if (ownedFileArray)
+					{
+					delete iOwnedFileArray;
+					iOwnedFileArray = ownedFileArray;
+					}
+				
+				UpdateServiceArray(appInfoReader->ServiceArray(iIndexOfFirstOpenService));
+				}
+
+			delete appInfoReader;
+			}
+		}
+		
+	if (!caption)
+		{
+		TParsePtrC parse (*iFullName);
+		caption = parse.Name().Alloc();
+		}
+
+	// Put the captions into place
+	if (caption)
+		{
+		if (!shortCaption)
+			{
+			shortCaption = caption->Alloc();
+			if (!shortCaption)
+				{
+				delete caption;
+				caption = NULL;
+				}
+			}
+
+		delete iCaption;
+		iCaption = caption;
+		delete iShortCaption;
+		iShortCaption = shortCaption;
+		}
+
+	return caption ? KErrNone : KErrNoMemory;
+	}
+
+EXPORT_C CApaAppData::~CApaAppData()
+// Just delete components, NOT iNext (next CApaAppData in the list).
+	{
+	delete iSuccessor;
+	delete iCaption;
+	delete iShortCaption;
+	delete iFullName;
+	delete iShortCaptionFromResourceFile;
+	delete iIcons;
+	delete iIconLoader;
+	if(iViewDataArray)
+		{
+		iViewDataArray->ResetAndDestroy();
+		delete iViewDataArray;
+		}
+	delete iOwnedFileArray;
+	delete iIconFileName;
+	delete iLocalisableResourceFileName;
+	if (iServiceArray)
+		{
+		CleanupServiceArray(iServiceArray);
+		iServiceArray = NULL;
+		}
+	delete iOpaqueData;
+	delete iRegistrationFile;
+	iNext = NULL;
+	}
+
+void CApaAppData::UpdateServiceArray(CArrayFixFlat<TApaAppServiceInfo>* aNewServiceArray)
+	{
+	// clear out any existing service info
+	if (iServiceArray)
+		{
+		CleanupServiceArray(iServiceArray);
+		iServiceArray = NULL;
+		}
+	// store new service array
+	iServiceArray = aNewServiceArray;
+	}
+	
+TDataTypePriority CApaAppData::DataType(const TDataType& aDataType, const CArrayFixFlat<TDataTypeWithPriority>& aDataTypeArray) const
+	{
+	TInt count=aDataTypeArray.Count();
+	for (TInt ii=0;ii<count;ii++)
+		{
+		const TDataTypeWithPriority& type=aDataTypeArray[ii];
+		if (type.iDataType==aDataType)
+			{
+			return type.iPriority;
+			}
+		else
+			{
+			TPtrC8 src=type.iDataType.Des8();
+			TPtrC8 trg=aDataType.Des8();
+			if (src.Match(trg)==0 || trg.Match(src)==0)
+				{
+				if (type.iPriority == KDataTypePrioritySystem)
+					{
+					// This is more or less a magic number so don't decrement
+					return KDataTypePrioritySystem;
+					}
+				else
+					{
+					return (TInt16)(type.iPriority-1);
+					}
+				}
+			}
+		}
+	return KDataTypePriorityNotSupported;
+	}
+
+/**
+ * Returns the CApaMaskedBitmap of size aSize for the application associated
+ * with this CApaAppData. If the icons for the application are not yet loaded then it would be loaded first.
+ * If there is not a bitmap of exact size aSize then 
+ * the icon closest to but smaller than the one asked for is returned, or NULL if
+ * none is smaller.
+ * 
+ * @since Uikon1.2
+ */
+EXPORT_C CApaMaskedBitmap* CApaAppData::Icon(TSize aSize) const
+	{
+	return iIcons->IconBySize(aSize);
+	}
+
+/**
+ * Returns a pointer to the small, medium or large application icon for aIconIndex equal to 0, 1 or 2 respectively.
+ * Panics if aIconIndex is not one of these three values.
+ *
+ * This method is superseded by an overload which returns the icon by finding the closest match to a specified size.
+ *
+ * @deprecated
+ */
+EXPORT_C CApaMaskedBitmap* CApaAppData::Icon(TInt aIconIndex) const
+	{
+	__ASSERT_DEBUG(aIconIndex>-1 && aIconIndex<3, Panic(EDPanicBadIconSize)); //only support old behaviour
+	TSize sizeExpected;
+	switch(aIconIndex)
+		{
+	case KApaIconIndexSmall:
+		sizeExpected=TSize(24,24);
+		break;
+	case KApaIconIndexMedium:
+		sizeExpected=TSize(32,32);
+		break;
+	case KApaIconIndexLarge:
+		sizeExpected=TSize(48,48);
+		break;
+	default:
+		break;
+		}
+	return Icon(sizeExpected);
+	}
+
+void CApaAppData::LoadIconsL()
+	{
+	iIconLoader->LoadAllIconsL();
+	}
+
+EXPORT_C CArrayFixFlat<TSize>* CApaAppData::IconSizesL()const
+/** Gets the sizes of icons available for the application. 
+* If the icons for the application are not yet loaded then it would be loaded first.
+
+@return A pointer to an array of the icon sizes. The caller takes ownership. */
+	{
+	return iIcons->IconSizesL();
+	}
+
+EXPORT_C TApaAppEntry CApaAppData::AppEntry() const
+/** Constructs an application entry based on this object.
+
+@return The application entry. */
+	{
+	return TApaAppEntry(iUidType,*iFullName);
+	}
+
+
+EXPORT_C void CApaAppData::Capability(TDes8& aCapabilityBuf)const
+/** Gets the application's capabilities.
+
+@param aCapabilityBuf On return, contains the application's capabilities, 
+specified as a TApaAppCapabilityBuf object. */
+	{
+	TApaAppCapability::CopyCapability(aCapabilityBuf,iCapabilityBuf);
+	}
+
+/**
+ * Returns a pointer to the array of view data objects current for this application. Does not imply transfer of ownership.
+ *
+ * @since App-Framework_6.1
+ */
+EXPORT_C CArrayPtrFlat<CApaAppViewData>* CApaAppData::Views() const
+	{
+	return iViewDataArray;
+	}
+
+/**
+ * Returns a pointer to the array of files for which this application claims ownership. Does not imply transfer of ownership.
+ *
+ * @since App-Framework_6.1
+ */
+EXPORT_C CDesCArray* CApaAppData::OwnedFiles() const
+	{
+	return iOwnedFileArray;
+	}
+
+TBool CApaAppData::Update()
+// returns true if changes were made to the cached data
+	{
+	__APA_PROFILE_START(17);
+	TBool changed=EFalse;
+
+	// Get app info file entry
+	TEntry entry;
+	TInt ret;
+	if (iRegistrationFile != NULL)
+		{
+		ret = iFs.Entry(*iRegistrationFile, entry);
+		if (ret==KErrNone && entry.iModified!=iTimeStamp)
+			{
+			// assume registration file may have changed
+			changed = ETrue;
+			}
+		else
+			{
+			if (iLocalisableResourceFileName)
+				{
+				// see if localisable resource information might have changed
+				TParse parse;
+				ret = parse.SetNoWild(KAppResourceFileExtension, iLocalisableResourceFileName, NULL);
+				if (ret == KErrNone)
+					{
+					TFileName resourceFileName(parse.FullName());
+					TLanguage language;
+					BaflUtils::NearestLanguageFileV2(iFs, resourceFileName, language);
+					(void)language;
+					if (resourceFileName.CompareF(*iLocalisableResourceFileName)!=0)
+						{
+						changed = ETrue;
+						}
+					else
+						{
+						ret = iFs.Entry(*iLocalisableResourceFileName, entry);
+						if ((ret==KErrNotFound && iLocalisableResourceFileTimeStamp!=TTime(0)) ||
+							(ret==KErrNone && entry.iModified!=iLocalisableResourceFileTimeStamp))
+							{
+							changed = ETrue;
+							}
+						}
+					}
+				}
+			}
+		}
+	if (changed)
+		{
+		// re-read data
+		// Ignore result, nothing we can do in case failure
+		// and the old values should be preserved
+		const TInt ignore = ReadApplicationInformationFromResourceFiles();
+		} //lint !e529 Symbol 'ignore' not subsequently referenced
+		
+	else 
+		{
+		if (iIconFileName)
+			{
+			ret = iFs.Entry(*iIconFileName, entry);
+			// See if the icon file has been "modified"
+			// It could have been replaced with a differnt version, deleted or added 
+			// if the icon file specified in the resource was missing
+			if ((ret==KErrNotFound && iIconFileTimeStamp!=TTime(0)) ||
+					(ret==KErrNone && entry.iModified!=iIconFileTimeStamp))
+					{
+					// Assume the icon file has changed
+					iIconFileTimeStamp = entry.iModified;
+					changed = ETrue;
+					}
+			}
+		}
+
+	__APA_PROFILE_END(17);
+	return changed;
+	}
+
+EXPORT_C TDataTypePriority CApaAppData::DataType(const TDataType& aDataType) const
+// returns the priority of the data type
+/** If the application supports the specified data type, the function returns 
+the priority with which it should be selected for handling it.
+
+If the application does not support the specified data type, 
+KDataTypePriorityNotSupported is returned.
+
+Note that the function supports wildcard matching, using "*" and "?". In the case 
+of a wildcard match, the priority value returned is reduced by 1, so that in this 
+case, the application could never have the maximum priority 
+(KDataTypePriorityUserSpecified).
+
+@param aDataType The data type of interest.
+@return The priority with which the application should be selected for handling 
+the specified data type, or KDataTypePriorityNotSupported if the data type is 
+not supported. */
+	{
+	if (iIndexOfFirstOpenService >= 0)
+		{
+		const CArrayFixFlat<TDataTypeWithPriority>& dataTypeArray = 
+			(*iServiceArray)[iIndexOfFirstOpenService].DataTypes();
+		return DataType(aDataType, dataTypeArray);
+		}
+	return KDataTypePriorityNotSupported;
+	}
+
+
+EXPORT_C TBool CApaAppData::IsPending() const
+/* Returns true if the app info is not yet updated by the current scan. */
+	{
+	return (iIsPresent==CApaAppData::EPresentPendingUpdate 
+		|| iIsPresent==CApaAppData::ENotPresentPendingUpdate);
+	}
+
+EXPORT_C TBool CApaAppData::CanUseScreenMode(TInt aScreenMode)
+/** Tests whether the specified screen mode is valid for any of 
+this application's views. If the app has no views, the function 
+assumes that only the default screen mode (at screen mode index 
+zero) is allowed. This function is used by CApaAppList to create 
+a list of valid applications.
+
+@param aScreenMode The index of the screen mode.
+@return True if screen mode is valid, otherwise false. */
+	{
+	const TInt count=iViewDataArray->Count();
+	// If there are no views, assume only the default screen mode is allowed
+	TBool ret=(count==0 && aScreenMode==0);
+	for(TInt ii=0;ii<count;ii++)
+		{
+		const CApaAppViewData* data=(*iViewDataArray)[ii];
+		if(data->ScreenMode()==aScreenMode)
+			{
+			ret=ETrue;
+			break;
+			}
+		}
+	return ret;
+	}
+
+EXPORT_C void CApaAppData::GetIconInfo(TInt& aIconCount, TInt& aDefaultIconsUsed) const
+/** Gets icon information for the app. If the icons for the application are not yet loaded then it would be loaded first.
+
+@param aIconCount On return, this contains the number of app icons
+@param aDefaultIconsUsed On return, this indicates whether the default icons have been used
+*/
+	{
+	aIconCount = iIcons->Count();
+	aDefaultIconsUsed = iIcons->DefaultIconsUsed();
+	}
+
+/** Gets the default screen number used by the application.
+
+A device may have more than once screen. This function
+returns the number associated with the screen which will
+be the default screen used by the application.
+
+@return The default screen number
+*/
+EXPORT_C TUint CApaAppData::DefaultScreenNumber() const
+	{
+	return iDefaultScreenNumber;
+	}
+
+/** Returns true if app info was provided by a registration file
+
+@return true if app info was provided by a registration file
+*/
+EXPORT_C TBool CApaAppData::RegistrationFileUsed() const
+	{
+	return iRegistrationFile != NULL;
+	}
+
+/** Returns the full filename of the registration resource file
+
+@return The full path and filename of the registration resource file.
+@internalTechnology
+*/
+EXPORT_C TPtrC CApaAppData::RegistrationFileName() const
+	{
+	if (iRegistrationFile)
+		{
+		return *iRegistrationFile;
+		}
+	else
+		{
+		return TPtrC(KNullDesC);
+		}
+	}
+
+
+/** Returns the full filename of the localisable resource file
+
+@return The full path and filename of the localisable resource file.
+@internalTechnology
+*/
+EXPORT_C TPtrC CApaAppData::LocalisableResourceFileName() const
+	{
+	if (iLocalisableResourceFileName)
+		{
+		return *iLocalisableResourceFileName;
+		}
+	else
+		{
+		return TPtrC(KNullDesC);
+		}
+	}
+
+
+/** Returns the non-native application opaque data
+
+@return The non-native application opaque data.
+@internalComponent
+*/
+EXPORT_C TPtrC8 CApaAppData::OpaqueData() const
+	{
+	if (iOpaqueData)
+		{
+		return *iOpaqueData;
+		}
+	else
+		{
+		return TPtrC8(KNullDesC8);
+		}
+	}
+
+EXPORT_C TUid CApaAppData::NonNativeApplicationType() const
+/** @internalComponent */
+	{
+	return iNonNativeApplicationType;
+	}
+
+/** Returns the full filename of the file containing application icons
+
+@return The full path and filename of the icon file.
+*/
+EXPORT_C TPtrC CApaAppData::IconFileName() const
+	{
+	if (iIconFileName)
+		{
+		return *iIconFileName;
+		}
+	else
+		{
+		return TPtrC(KNullDesC);
+		}
+	}
+
+/** Returns true if the application provides a non-MBM icon filename.
+
+If this function returns false, this does not necessarily mean
+an MBM icon filename is provided.
+
+@return true if the application provides a non-MBM icon filename.
+*/
+EXPORT_C TBool CApaAppData::NonMbmIconFile() const
+	{
+	return iNonMbmIconFile;
+	}
+
+
+/** Determines the current language the application is using to display its
+user interface.
+@return The current language.
+*/	
+EXPORT_C TLanguage CApaAppData::ApplicationLanguage() const
+	{
+	return iApplicationLanguage;
+	}
+
+/** Returns true if the application implements the specified service.
+@param aServiceUid The service UID.
+@return true if the application implements the specified service.
+@internalComponent
+*/
+EXPORT_C TBool CApaAppData::ImplementsService(TUid aServiceUid) const
+	{
+	if (iServiceArray)
+		{
+		TInt count = iServiceArray->Count();
+		for (TInt i = count-1; i >= 0; i--)
+			{
+			if ((*iServiceArray)[i].Uid() == aServiceUid)
+				{
+				return ETrue;
+				}
+			}
+		}
+	return EFalse;
+	}
+	
+/** Checks if the application implements the specified service and if the 
+service explicitly supports the datatype. Explicitly means that the datatype is
+listed in the service's list of datatype in the registration file and is
+not the general datatype associated with the application (aka the Open service).
+@param aServiceUid The service UID.
+@param aDataType The datattype
+@return The priority. KDataTypePriorityNotSupported if the app doesn't support
+this service with this datatype.
+@internalComponent
+*/
+TInt CApaAppData::ImplementsServiceWithDataType(TUid aServiceUid, const TDataType& aDataType) const
+	{
+	TInt result = KDataTypePriorityNotSupported;
+	if (iServiceArray)
+		{
+		TInt count = iServiceArray->Count();
+		for (TInt i = count-1; i >= 0; i--)
+			{
+			// There can be more than one instance of a given service so we iterate
+			// through the whole service list even if we have already found a suitable
+			// service.
+			if ((*iServiceArray)[i].Uid() == aServiceUid)
+				{
+				const CArrayFixFlat<TDataTypeWithPriority>& datatypes =
+					(*iServiceArray)[i].DataTypes();
+				TInt priority = DataType(aDataType, datatypes);
+				if (priority > result)
+					{
+					result = priority;
+					}
+				}
+			}
+		}
+	return result;
+	}
+
+EXPORT_C void CApaAppData::SetShortCaptionL(const TDesC& aShortCaption)
+	{
+	if(iShortCaption->Compare(aShortCaption) != 0)
+		{
+		HBufC* newShortCaption=aShortCaption.AllocL();
+		if (!iShortCaptionFromResourceFile)
+			{ // store the rsc file caption into iShortCaptionFromResourceFile so that it can be externalized.
+			iShortCaptionFromResourceFile = iShortCaption;
+			}
+		else
+			{
+			delete iShortCaption;
+			}
+		iShortCaption = newShortCaption;
+		}
+	}
+
+/** Sets the caption of the application. If the caption is from central repository,
+ it overrides tha value from the resource file.  
+*/
+EXPORT_C void CApaAppData::SetCaptionL(const TDesC& aCaption)
+	{
+	if(iCaption->Compare(aCaption) != 0)
+		{
+		HBufC* newCaption=aCaption.AllocL();
+		if (!iCaptionFromResourceFile)
+			{ // store the rsc file caption into iCaptionFromResourceFile so that it can be externalized.
+			iCaptionFromResourceFile = iCaption;
+			}
+		else
+			{
+			delete iCaption;
+			}
+		iCaption = newCaption;
+		}
+	}
+
+/** Sets the icon details of an application. If these details are from the central repository,
+ it overrides the value in the resource file and loads it.
+*/
+EXPORT_C void CApaAppData::SetIconsL(const TDesC& aFileName, TInt aNumIcons)
+	{
+	if (iIconFileName && 
+		iIconFileName->Compare(aFileName) == 0 &&
+		iNumOfAppIcons == aNumIcons)
+		return;
+
+	if (!iIconFileNameFromResourceFile)
+		{
+	 	iNumOfAppIconsFromResourceFile = iNumOfAppIcons;
+	 	iIconFileNameFromResourceFile = iIconFileName;
+	 	iIconFileName = NULL;
+	 	iNonMbmIconFileFromResourceFile = iNonMbmIconFile;
+	 	iIconFileTimeStampFromResourceFile = iIconFileTimeStamp;
+		}
+		
+	iNonMbmIconFile = !CApaAppInfoReader::FileIsMbmWithGenericExtensionL(aFileName);
+	iNumOfAppIcons = aNumIcons;
+	
+	if (aFileName != KNullDesC)
+		{
+		iIconFileName = aFileName.AllocL();
+		if (!iNonMbmIconFile)
+			{
+			if (iNumOfAppIcons > 0)
+				{
+				// Creates an Application Icon Array
+				CApaAppIconArray* icons = CApaAppIconArray::NewAppIconsL(iNumOfAppIcons, *iIconFileName, *iIconLoader);
+				delete iIcons;
+				iIcons = icons;
+				}
+			}
+		else
+			{	// Creates an Empty Icon Array if application has Non-Mbm Icons
+			CApaAppIconArray* icons = CApaAppIconArray::NewL();
+			delete iIcons;
+			iIcons = icons;
+			}
+		}
+	else
+		{
+		CApaAppIconArray* icons = CApaAppIconArray::NewDefaultIconsL();
+		delete iIcons;
+		iIcons = icons;
+		}
+	}
+
+void CApaAppData::SetAppPending()
+	{
+	if (iIsPresent == CApaAppData::ENotPresent 
+		|| iIsPresent == CApaAppData::ENotPresentPendingUpdate)
+		{
+		iIsPresent = CApaAppData::ENotPresentPendingUpdate;
+		}
+	else
+		{
+		iIsPresent = CApaAppData::EPresentPendingUpdate;
+		}
+	}
+
+void CApaAppData::InternalizeL(RReadStream& aReadStream)
+/** Internalizes the appdata from the AppsList.bin file */
+	{
+	TUint highTime = aReadStream.ReadUint32L();
+	TUint lowTime = aReadStream.ReadUint32L();
+	iTimeStamp = TTime(MAKE_TINT64(highTime, lowTime));
+
+	highTime = aReadStream.ReadUint32L();
+	lowTime = aReadStream.ReadUint32L();
+	iIconFileTimeStamp = TTime(MAKE_TINT64(highTime, lowTime));
+	iCaption = HBufC::NewL(aReadStream, KMaxFileName);	// Caption
+	iShortCaption = HBufC::NewL(aReadStream, KMaxFileName);	// Shortcaption
+	iFullName = HBufC::NewL(aReadStream, KMaxFileName);		// Filename of application binary
+
+	TUid uid1;
+	uid1.iUid = aReadStream.ReadUint32L();
+	TUid uid2;
+	uid2.iUid = aReadStream.ReadUint32L();	
+	TUid uid3;
+	uid3.iUid = aReadStream.ReadUint32L();
+	iUidType = TUidType(uid1, uid2, uid3);	// Application UID
+	
+	aReadStream >> iCapabilityBuf;
+	iRegistrationFile = HBufC::NewL(aReadStream, KMaxFileName);	// Registration Filename
+	iDefaultScreenNumber = aReadStream.ReadUint32L();	// Default Screen number
+	iNumOfAppIcons = aReadStream.ReadInt32L();	// No. of icons
+	iNonMbmIconFile = aReadStream.ReadUint32L();
+
+	HBufC* iconFileName = HBufC::NewL(aReadStream, KMaxFileName);	// Icon Filename
+	if (*iconFileName != KNullDesC)
+		{
+		iIconFileName = iconFileName;
+		if (!iNonMbmIconFile)
+			{
+			if (iNumOfAppIcons > 0)
+				{ // Create IconLoader to load icons
+				iIconLoader = CApaIconLoader::NewL(iFs);
+				// Creates an Application Icon Array
+				iIcons = CApaAppIconArray::NewAppIconsL(iNumOfAppIcons, *iIconFileName, *iIconLoader);
+				}
+			else
+			    TRAP_IGNORE(iIcons = CApaAppIconArray::NewDefaultIconsL()); // Creates and Loads Default Icons.
+			}
+		else
+			{	// Creates an Empty Icon Array if application has Non-Mbm Icons
+			iIcons = CApaAppIconArray::NewL();
+			}
+		}
+	else
+		{
+		delete iconFileName;
+		TRAP_IGNORE(iIcons = CApaAppIconArray::NewDefaultIconsL()); // Creates and Loads Default Icons.
+		}
+
+	HBufC* localisableResourceFileName = HBufC::NewL(aReadStream, KMaxFileName);	// Registration Filename
+	if (*localisableResourceFileName != KNullDesC)
+		iLocalisableResourceFileName = localisableResourceFileName;
+	else
+		delete localisableResourceFileName;
+
+	highTime = aReadStream.ReadUint32L();
+	lowTime = aReadStream.ReadUint32L();
+	iLocalisableResourceFileTimeStamp = TTime(MAKE_TINT64(highTime, lowTime));	// Localisable file timestamp
+
+	iApplicationLanguage = (TLanguage)aReadStream.ReadInt32L();	// Application Language
+	iIndexOfFirstOpenService = aReadStream.ReadUint32L();		// Index of first open service
+	iNonNativeApplicationType.iUid = aReadStream.ReadUint32L();
+
+	HBufC8* opaqueData = HBufC8::NewL(aReadStream, KMaxFileName);	// Opaque Data
+	if (*opaqueData != KNullDesC8)
+		iOpaqueData = opaqueData;
+	else
+		delete opaqueData;
+
+	iViewDataArray = new(ELeave) CArrayPtrFlat<CApaAppViewData>(1);	// ViewDataArray
+	const TInt viewCount = aReadStream.ReadInt32L();
+	TInt i;	
+	for (i = 0; i < viewCount; ++i)
+		{
+		CApaAppViewData* pView = CApaAppViewData::NewLC();
+
+		pView->iCaption = HBufC::NewL(aReadStream, KMaxFileName);
+		pView->iNumOfViewIcons = aReadStream.ReadUint32L();
+		pView->iNonMbmIconFile = aReadStream.ReadUint32L();
+		HBufC* iconFileName = HBufC::NewL(aReadStream, KMaxFileName);	// Icon Filename		
+		if (*iconFileName != KNullDesC)
+			{
+			pView->iIconFileName = iconFileName;
+			if (!pView->iNonMbmIconFile)
+				{
+				if (pView->iNumOfViewIcons > 0)
+					{
+					if (!iIconLoader)
+						{	// Create Icon Loader if it was not done for App or any of the previous views for the App.
+						iIconLoader = CApaIconLoader::NewL(iFs);
+						}
+					// Creates an Application View Icon Array
+					CApaAppIconArray* iconViewArray = CApaAppIconArray::NewViewIconsL(pView->iNumOfViewIcons, *pView->iIconFileName, *iIconLoader);
+					pView->SetIconArray(iconViewArray);
+					}
+				}
+			}
+		else
+			delete iconFileName;
+
+		pView->iScreenMode = aReadStream.ReadUint32L();
+		pView->iUid.iUid = aReadStream.ReadUint32L();
+
+		iViewDataArray->AppendL(pView);
+		CleanupStack::Pop(pView);
+		}
+
+	iServiceArray = new(ELeave) CArrayFixFlat<TApaAppServiceInfo>(1);
+	const TInt serviceCount = aReadStream.ReadUint32L();
+
+	for (i = 0; i < serviceCount; ++i)
+		{
+		TApaAppServiceInfo serviceInfo ;
+		aReadStream >> serviceInfo;
+		iServiceArray->AppendL(serviceInfo);
+		}
+
+	iOwnedFileArray = new(ELeave) CDesCArraySeg(1);
+	const TInt fileCount = aReadStream.ReadUint32L();	
+	for (i = 0; i < fileCount; ++i)
+		{
+		TFileName ownedFile;
+		aReadStream >> ownedFile;
+		iOwnedFileArray->AppendL(ownedFile);
+		}
+	}
+
+TBool CApaAppData::ViewMbmIconsRequireLoading() const
+	{
+	const TInt count = iViewDataArray->Count();
+	for (TInt i = 0; i < count; ++i)
+		{
+		const CApaAppViewData* const viewData = iViewDataArray->At(i);
+		if ((!viewData->iNonMbmIconFile) && (!viewData->iIcons->AreViewIconsLoaded()))
+			{
+			return ETrue;
+			}
+		}
+	return EFalse;
+	}
+	
+TBool CApaAppData::MbmIconsRequireLoading() const
+	{
+	if (!iNonMbmIconFile)
+		{
+		if (!iIcons->AreAppIconsLoaded())
+			{
+			return ETrue;
+			}
+		}
+
+	if (ViewMbmIconsRequireLoading())
+		{// if a view has mbm icons, and its not yet loaded we should load its icons.
+		return ETrue;
+		}
+	return EFalse; // icons were loaded already so no need to load them again.
+	}
+
+void CApaAppData::ExternalizeL(RWriteStream& aWriteStream) const
+	{
+	aWriteStream.WriteUint32L(I64HIGH(iTimeStamp.Int64()));
+	aWriteStream.WriteUint32L(I64LOW(iTimeStamp.Int64()));
+
+	if (iIconFileNameFromResourceFile)
+		{
+		aWriteStream.WriteUint32L(I64HIGH(iIconFileTimeStampFromResourceFile.Int64()));
+	    aWriteStream.WriteUint32L(I64LOW(iIconFileTimeStampFromResourceFile.Int64()));
+		}
+	else
+		{
+		aWriteStream.WriteUint32L(I64HIGH(iIconFileTimeStamp.Int64()));
+		aWriteStream.WriteUint32L(I64LOW(iIconFileTimeStamp.Int64()));
+		}
+	
+	if (iCaptionFromResourceFile) // Caption present in the resource file would be externalized if the one in applist has dynamically changed
+		{
+		aWriteStream << *iCaptionFromResourceFile;
+		}
+	else
+		{
+		aWriteStream << *iCaption;	// Caption
+		}
+
+	if (iShortCaptionFromResourceFile)	// Short caption present in the resource file would be externalized if the one in applist has dynamically changed
+		aWriteStream << *iShortCaptionFromResourceFile;
+	else
+		aWriteStream << *iShortCaption;
+
+	aWriteStream << *iFullName;	// FullName
+
+	TInt i = 0;
+	for (i = 0; i < 3; ++i)
+		aWriteStream << iUidType[i];	// Uid Type
+
+	aWriteStream << iCapabilityBuf;
+	aWriteStream << RegistrationFileName();	// Registration filename
+	aWriteStream.WriteUint32L(iDefaultScreenNumber);	// Default screen number
+
+	if (iIconFileNameFromResourceFile)
+		{
+		aWriteStream.WriteUint32L(iNumOfAppIconsFromResourceFile);	// number of icons
+		aWriteStream.WriteUint32L(iNonMbmIconFileFromResourceFile);
+		aWriteStream << *iIconFileNameFromResourceFile;
+		}
+	else
+		{
+		aWriteStream.WriteUint32L(iNumOfAppIcons);	// number of icons
+		aWriteStream.WriteUint32L(iNonMbmIconFile);
+		aWriteStream << IconFileName();
+		}
+
+	aWriteStream << LocalisableResourceFileName();
+
+	aWriteStream.WriteUint32L(I64HIGH(iLocalisableResourceFileTimeStamp.Int64()));
+	aWriteStream.WriteUint32L(I64LOW(iLocalisableResourceFileTimeStamp.Int64()));
+
+	aWriteStream.WriteInt32L(iApplicationLanguage);
+
+	aWriteStream.WriteUint32L(iIndexOfFirstOpenService);
+
+	aWriteStream.WriteUint32L(iNonNativeApplicationType.iUid);
+
+	aWriteStream << OpaqueData();
+	
+	TInt count = iViewDataArray->Count();
+	aWriteStream.WriteUint32L(count);
+
+	for (i = 0; i < count; ++i)
+		{
+		const CApaAppViewData* const viewData = iViewDataArray->At(i);
+		aWriteStream << *(viewData->iCaption);
+		aWriteStream.WriteUint32L(viewData->iNumOfViewIcons);
+		aWriteStream.WriteUint32L(viewData->iNonMbmIconFile);
+		aWriteStream << viewData->IconFileName();		
+		aWriteStream.WriteUint32L(viewData->iScreenMode);
+		aWriteStream.WriteUint32L(viewData->iUid.iUid);
+		}
+
+	// TApaAppServiceInfo service array
+	if (iServiceArray)
+		{
+		count = iServiceArray->Count();
+		aWriteStream.WriteUint32L(count);
+		for (i = 0; i < count; ++i)
+			aWriteStream << iServiceArray->At(i);
+		}
+	else
+		aWriteStream.WriteUint32L(NULL);
+
+	if (iOwnedFileArray)
+		{
+		count = iOwnedFileArray->MdcaCount();
+		aWriteStream.WriteUint32L(count);
+		for (i = 0; i < count; ++i)
+			aWriteStream << (*iOwnedFileArray)[i];
+		}
+	else
+		aWriteStream.WriteUint32L(0);
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/aplapplistitem.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,264 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// aplapplistitem.h
+//
+
+#ifndef __APLAPPLISTITEM_H__
+#define __APLAPPLISTITEM_H__
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APAID_PARTNER_H__)
+#include "apaidpartner.h"
+#endif
+#include <apmfndr.h>
+#else
+#include <apmstd.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaid.h>
+#include <badesca.h>
+#include <s32file.h>
+
+// classes defined:
+class CApaAppData;
+class CApaAppList;
+class CApaAppViewData;
+class CApaMaskedBitmap;
+class TEntry;
+class RFs;
+class CApaAppRegFinder;
+class CApaAppIconArray;
+class CApaIconLoader;
+
+
+
+/** An application entry.
+
+An object of this type contains two pieces of information:
+
+the full path name of the application DLL
+
+the UID type (or compound identifier) of the application DLL. 
+
+@internalComponent
+@released */
+class TApaAppEntry
+	{
+public:
+	IMPORT_C TApaAppEntry();
+	TApaAppEntry(const TUidType& aAppUidType,const TFileName& aDllName);
+	void ExternalizeL(RWriteStream& aStream)const;
+	void InternalizeL(RReadStream& aStream);
+public:
+	/** The UID type (or compound identifier) of the application DLL. */
+	TUidType iUidType;
+	/** The full path name of the application DLL. */
+	TFileName iFullName;
+private:
+	TInt iTApaAppEntry_Reserved1;
+	};
+
+/**
+Utility class with smaller RAM footprint than TApaAppEntry
+
+@internalComponent
+*/
+class CApaAppEntry : public CBase
+	{
+public:
+	static CApaAppEntry* NewL(const TApaAppEntry& aAppEntry);
+	~CApaAppEntry();
+	void Get(TApaAppEntry& aAppEntry) const;
+private:
+	CApaAppEntry(const TUidType& aUidType);
+	void ConstructL(const TDesC& aFileName);
+private:
+	TUidType iUidType;
+	HBufC* iFullName;
+	};
+
+/** Represents the data associated with a CApaApplication, such as its 
+caption, capabilities and icons. This should be accessed through the Apparc Server.
+
+@internalComponent
+*/
+class CApaAppData : public CBase
+	{
+public:
+	IMPORT_C static CApaAppData* NewL(const TApaAppEntry& aAppEntry, RFs& aFs);
+	IMPORT_C ~CApaAppData();
+	IMPORT_C TApaAppEntry AppEntry() const;
+	inline TPtrC Caption() const;
+	inline TPtrC ShortCaption() const;
+	IMPORT_C CApaMaskedBitmap* Icon(TInt aIconIndex) const;
+	IMPORT_C void Capability(TDes8& aCapabilityBuf)const;
+	inline TBool IsPresent() const;
+	// ER5
+	IMPORT_C TDataTypePriority DataType(const TDataType& aDataType) const;
+	// ER6
+	IMPORT_C CApaMaskedBitmap* Icon(TSize aSize) const;
+	IMPORT_C CArrayFixFlat<TSize>* IconSizesL() const;
+	// ER6.1
+	IMPORT_C CArrayPtrFlat<CApaAppViewData>* Views() const;
+	IMPORT_C CDesCArray* OwnedFiles() const;
+	IMPORT_C TBool CanUseScreenMode(TInt aScreenMode);
+	// 7.0s
+	IMPORT_C void GetIconInfo(TInt& aIconCount, TInt& aDefaultIconsUsed) const;
+	// 8.1
+	IMPORT_C TUint DefaultScreenNumber() const;
+	IMPORT_C TBool RegistrationFileUsed() const;
+	IMPORT_C TPtrC IconFileName() const;
+	IMPORT_C TBool NonMbmIconFile() const;
+
+	// 9.0
+	IMPORT_C TBool ImplementsService(TUid aServiceUid) const;
+	TInt ImplementsServiceWithDataType(TUid aServiceUid, const TDataType& aDataType) const;
+
+	// 9.1
+	IMPORT_C TLanguage ApplicationLanguage() const;
+	IMPORT_C TPtrC RegistrationFileName() const;
+	IMPORT_C TPtrC8 OpaqueData() const;
+	IMPORT_C TUid NonNativeApplicationType() const;
+	IMPORT_C TPtrC LocalisableResourceFileName() const;
+	IMPORT_C void SetShortCaptionL(const TDesC& aShortCaption);
+	IMPORT_C TBool IsPending()const;
+	// 9.5
+	IMPORT_C void SetCaptionL(const TDesC& aCaption);
+	IMPORT_C void SetIconsL(const TDesC& aFileName, TInt aNumIcons);
+
+	void ExternalizeL(RWriteStream& aWriteStream) const;	
+	void LoadIconsL();
+	TBool MbmIconsRequireLoading() const;
+	inline CApaAppData* Next() const;
+private:
+	CApaAppData(RFs& aFs);
+	TBool Update();
+	void SetAppPending();
+
+	void ConstructL(const TApaAppEntry& aAppEntry);
+	TInt ReadApplicationInformationFromResourceFiles();
+	void UpdateServiceArray(CArrayFixFlat<TApaAppServiceInfo>* aNewServiceArray);
+	TDataTypePriority DataType(const TDataType& aDataType, const CArrayFixFlat<TDataTypeWithPriority>& aDataTypeArray) const;
+	void InternalizeL(RReadStream& aReadStream);
+	TBool ViewMbmIconsRequireLoading() const;
+private:
+	enum { ENotPresent, ENotPresentPendingUpdate, EPresentPendingUpdate, EIsPresent, ESuperseded };
+private:
+	CApaAppIconArray* iIcons;
+	HBufC* iCaption;
+	HBufC* iShortCaption;
+	HBufC* iFullName; // filename of application binary
+	TInt iIsPresent; // uses enum
+	TUidType iUidType;
+	CApaAppData* iNext;
+	TApaAppCapabilityBuf iCapabilityBuf;
+	CApaAppEntry* iSuccessor;
+	TTime iTimeStamp;
+	CArrayPtrFlat<CApaAppViewData>* iViewDataArray;
+	CDesCArray* iOwnedFileArray;
+ 	RFs& iFs;
+ 	HBufC* iRegistrationFile;
+ 	TUint iDefaultScreenNumber;
+ 	HBufC* iIconFileName;
+ 	TBool iNonMbmIconFile;
+ 	HBufC* iLocalisableResourceFileName;
+ 	TTime iLocalisableResourceFileTimeStamp;
+	TTime iIconFileTimeStamp;
+ 	TLanguage iApplicationLanguage;
+ 	CArrayFixFlat<TApaAppServiceInfo>* iServiceArray;
+ 	TInt iIndexOfFirstOpenService;
+	TUid iNonNativeApplicationType;
+	HBufC8* iOpaqueData;
+ 	TInt iNumOfAppIcons;
+	TInt iNumOfAppIconsFromResourceFile;
+ 	HBufC* iIconFileNameFromResourceFile; // Icon file name as found in the localisable resource file
+ 	TBool iNonMbmIconFileFromResourceFile; // A Flag that tells whether the icon in resource file is non MBM file format
+ 	TTime iIconFileTimeStampFromResourceFile;
+	HBufC* iShortCaptionFromResourceFile;	// Short Caption as found in the localisable resource file
+	HBufC* iCaptionFromResourceFile;		// Caption as found in the localisable resource file
+	CApaIconLoader* iIconLoader;
+private:
+	friend class CApaAppList;
+	};
+
+/**
+The CApaAppViewData class represents the data associated with an application view.
+
+@internalComponent
+*/
+class CApaAppViewData : public CBase
+	{
+public:
+	IMPORT_C TUid Uid() const;
+	inline TPtrC Caption() const;
+	IMPORT_C CApaMaskedBitmap* Icon(const TSize& aSize) const;
+	IMPORT_C CArrayFixFlat<TSize>* IconSizesL() const;
+	IMPORT_C TInt ScreenMode() const;
+	IMPORT_C TPtrC IconFileName() const;
+	IMPORT_C TBool NonMbmIconFile() const;
+public:
+	~CApaAppViewData();
+	static CApaAppViewData* NewLC();
+	void SetUid(TUid aUid);
+	void SetCaptionL(const TDesC& aCaption);
+	void SetIconArray(CApaAppIconArray* aIcons);
+	void SetScreenMode(TInt aScreenMode);
+	void SetIconFileNameL(const TDesC& aFileName);
+	void SetNonMbmIconFile(TBool aNonMbmIconFile);
+	void SetNumOfViewIcons(TInt aNumOfViewIcons);
+private:
+	CApaAppViewData();
+	void ConstructL();
+private:
+	CApaAppIconArray* iIcons;
+	HBufC* iCaption;
+	TUid iUid;
+	TInt iScreenMode;
+	HBufC* iIconFileName;
+	TBool iNonMbmIconFile;
+	TInt iNumOfViewIcons;
+	friend class CApaAppData;
+	};
+
+//
+// inlines
+//
+
+inline TPtrC CApaAppViewData::Caption() const
+	{ return *iCaption; }
+
+/** Gets the application's caption.
+
+@return The application's caption. */
+inline TPtrC CApaAppData::Caption() const
+	{ return *iCaption; }
+
+/** Gets the application's short caption.
+
+@return The application's short caption. */
+inline TPtrC CApaAppData::ShortCaption() const
+	{ return *iShortCaption; }
+
+/** Tests whether the application is present or not on the device.
+
+@return True if application exists, else false. */
+inline TBool CApaAppData::IsPresent() const
+	{ return iIsPresent; }
+
+/** Gets the Next Appdata in the list
+
+@return iNext */
+inline CApaAppData* CApaAppData::Next() const
+	{ return iNext; }
+
+#endif //__APLAPPLISTITEM_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/aplappregfinder.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,358 @@
+// Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// aplappregfinder.cpp
+//
+
+#include "aplappregfinder.h"
+#include "APFDEF.H"
+#include "../apfile/APFSTD.H"
+#include "../apserv/apsserv.h"				// class CApaAppListServer
+#include "../apgrfx/apprivate.h"
+#include <apsidchecker.h>
+#include "aplapplistitem.h"					// class TApaAppEntry
+#include "aplappinforeader.h"				// class ApaUtils
+
+
+GLDEF_C void Panic(TApfPanic aPanic)
+	{
+	_LIT(KApFilePanic,"APFILE");
+	User::Panic(KApFilePanic,aPanic);
+	}
+
+
+//
+// CApaAppRegFinder
+//
+
+EXPORT_C CApaAppRegFinder* CApaAppRegFinder::NewL(const RFs& aFs)
+	{
+	CApaAppRegFinder* self=NewLC(aFs);
+	CleanupStack::Pop(self);
+	return self;
+	}
+	
+EXPORT_C CApaAppRegFinder* CApaAppRegFinder::NewLC(const RFs& aFs)
+	{
+	CApaAppRegFinder* self=new (ELeave) CApaAppRegFinder(aFs);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+	
+CApaAppRegFinder::CApaAppRegFinder(const RFs& aFs)
+	: iFs(aFs),
+	iSidCheckerMap(CApaAppArcServer::Self()?CApaAppArcServer::Self()->RescanCallBack():TCallBack(NULL,NULL))
+	{
+	}
+
+CApaAppRegFinder::~CApaAppRegFinder()
+	{
+	iListOfDrives.Close();
+	iSidCheckerMap.Close();
+	delete iFileList; // should already be deleted and NULL at this point
+	}
+
+void CApaAppRegFinder::ConstructL()
+	{
+	}
+
+
+// Build a list of currently available drives
+void CApaAppRegFinder::RebuildDriveListL(TScanScope aScopeOfScan)
+	{
+	iListOfDrives.Reset();
+	TDriveList driveList;
+	User::LeaveIfError(iFs.DriveList(driveList));
+
+	// Scan through all the drives in the drive list from Y to A, querying the 
+	// file server about wheather the drives are pressent or not
+
+	TInt drive(EDriveY);
+	TDriveUnitInfo driveUnitInfo;
+	while(drive >= EDriveA)
+		{
+		// If the drive exists in the file system...
+		if (driveList[drive]!=KDriveAbsent)
+			{
+			TDriveInfo driveInfo;
+			const TInt err = iFs.Drive(driveInfo, drive);
+			if (!err)
+				{
+				if (aScopeOfScan == EScanRemovableDrives)
+					{// iListOfDrives should have list of all the removable drives irrespective of presence of the media
+					if ((driveInfo.iType != EMediaRemote) && (driveInfo.iDriveAtt & KDriveAttRemovable))
+						{
+						driveUnitInfo.iUnit=drive;
+						driveUnitInfo.iAttribs=driveInfo.iDriveAtt;
+						iListOfDrives.AppendL(driveUnitInfo);
+						}
+					}
+				else // scan all drives
+					{
+					if (driveInfo.iType!=EMediaNotPresent && driveInfo.iType!=EMediaRemote)
+						{
+						driveUnitInfo.iUnit=drive;
+						driveUnitInfo.iAttribs=driveInfo.iDriveAtt;
+						iListOfDrives.AppendL(driveUnitInfo);
+						}
+					}
+				}
+			}
+			
+		--drive;
+		}
+
+	// Add the Z-drive to the list if scanning all drives (not only removable)
+	if (aScopeOfScan == EScanAllDrives)
+		{
+		driveUnitInfo.iUnit=EDriveZ;
+		driveUnitInfo.iAttribs=KDriveAttRom;
+		iListOfDrives.AppendL(driveUnitInfo);
+		}
+	}
+
+EXPORT_C TArray<const TDriveUnitInfo> CApaAppRegFinder::DriveList() const
+	{
+	return iListOfDrives.Array();
+	}
+
+EXPORT_C void CApaAppRegFinder::FindAllAppsL(TScanScope aScopeOfScan)
+	{
+	delete iFileList;
+	iFileList = NULL;
+	RebuildDriveListL(aScopeOfScan);
+	iCurrentIndexInDriveList=-1;
+	iScanStage = EScanStageNonImportROM;
+	iLastChkedApp = KNullUid;	
+	}
+
+/** Scans the applications in following order:
+1. non-import y-a,z but only on ROM drives
+2. import on all non-ROM drives in the order y-a,z
+3. import on all ROM drives in the order y-a,z
+
+Upgrades of apparc server (via Software Install) are currently disallowed. 
+This means it is not possible to install registration files to \private\10003a3f\apps 
+(on any drive), so there is no need to scan \private\10003a3f\apps on non ROM based drives.
+*/
+EXPORT_C TBool CApaAppRegFinder::NextL(TApaAppEntry& aAppRegistrationEntry, const CDesCArray& aForcedRegistrations)
+	{
+	__ASSERT_ALWAYS(iListOfDrives.Count(),Panic(EPanicFindAllAppsNotCalled));
+
+	FOREVER	// Continue until we have looked at all apps on all drives
+		{
+		TDriveUnitInfo currentDrive;
+		TPtrC appFolderOnDrive;
+		
+		if (!iFileList)	// If the file list has been exhausted...
+			{
+			iFileIndex = 0;
+			
+			// Look at the next drive until we find one with applications on it, or we run out of drives.
+			while(NextDriveAndFolderInNormalizedOrder(currentDrive, appFolderOnDrive))	
+				{
+				const TInt err = GetAppListOfDriveL(currentDrive.iUnit, appFolderOnDrive, iFileList);	// ...and create a new list for the next drive.
+				if(!err)	
+					break;	// Found a drive with applications on it
+				}
+				
+			if (!iFileList)		// If we've run out of drives
+				return EFalse; 	// ...then signal this by returning false.
+			}
+		else	// Still apps in the current list. Recall the current drive and path.
+			GetCurrentDriveAndFolder(currentDrive, appFolderOnDrive);
+
+		// Scan the list of all app files for application reg-files
+		while (iFileIndex < iFileList->Count())
+			{
+			const TEntry& entry=(*iFileList)[iFileIndex++];
+			if (!ApaUtils::TypeUidIsForRegistrationFile(entry.iType))
+				continue; // Only interested in app registration resource files
+				
+			// File is application reg-file
+			
+			// Build a parse-object for the full ref-file name
+			TParse regFileNameParser;
+			const TDriveName driveName = currentDrive.iUnit.Name();
+			regFileNameParser.Set(entry.iName, &appFolderOnDrive, &driveName);
+			
+			// Apparc will call sidchecker to verify if an application is a valid registered application. 
+			// Apparc will call sidchecker in the following conditions
+			// 1. If the current drive is a removable drive
+			// 2. If the current drive is not 
+			//		a) an internal read-only drive
+			// 		b) the system drive
+			if(currentDrive.iAttribs&KDriveAttRemovable || ((currentDrive.iUnit != iFs.GetSystemDrive()) && (currentDrive.iAttribs&KDriveAttInternal) && !(currentDrive.iAttribs&KDriveAttRom)))
+				{
+				// ...then verify that there is a valid Secure ID (SID) for the appliation
+				// to protect against untrusted applications.
+				if (entry[2] != iLastChkedApp) //Check for validity only if it has not yet been checked
+					{
+					const TUid appTypeUid = 
+					(entry[0].iUid == KUidPrefixedNonNativeRegistrationResourceFile ? entry[1] : KNullUid);
+				
+					// Get the CAppSidChecker for this type of executable
+					TBool validRegistration = ETrue;
+					TRAPD(err, validRegistration = iSidCheckerMap.FindSidCheckerL(appTypeUid).AppRegisteredAt(entry[2], currentDrive.iUnit));
+					iLastChkedApp = entry[2];
+					if(!err)
+						{
+						if(!validRegistration)	// If not trusted...
+							{
+							// Check if this registration file should be included despite 
+							// not being officially reported as a valid registration
+							const TPtrC fullName = regFileNameParser.FullName();
+							TInt ignorePos = KErrNotFound;
+							if (aForcedRegistrations.FindIsq(fullName, ignorePos, ECmpFolded) != 0)	// If not found
+								continue;	// App is not trusted. Move on to the next!
+							}
+						// App is trusted! Fall through.
+						}
+					else if(err != KErrNotFound)
+						User::LeaveIfError(err);
+					else
+						continue; // Can't tell. Move on to next.
+					}
+				else
+					{
+					continue;
+					}
+				}
+	
+			// App was found to be trustworthy	
+			aAppRegistrationEntry.iUidType = entry.iType;
+			aAppRegistrationEntry.iFullName = regFileNameParser.FullName();
+			return ETrue;	// Break out of the loop!
+			}
+			
+		// Current drive has been exhausted...
+		delete iFileList;
+		iFileList = NULL;
+		} // ...loop and check the next drive for apps.
+	}
+	
+void CApaAppRegFinder::GetCurrentDriveAndFolder(TDriveUnitInfo& aDrive, TPtrC& aAppFolderOnDrive) const
+	{
+	ASSERT(iCurrentIndexInDriveList != KErrNotFound && iCurrentIndexInDriveList < iListOfDrives.Count());
+	aDrive = iListOfDrives[iCurrentIndexInDriveList];
+	aAppFolderOnDrive.Set(iFolderOnCurrentDrive);
+	}
+	
+TBool CApaAppRegFinder::NextDriveAndFolderInNormalizedOrder(TDriveUnitInfo& aNextDrive, TPtrC& aAppFolderOnDrive) const
+	{
+_LIT(KAppRegRscSearchPath,"\\private\\10003a3f\\apps\\");
+_LIT(KAppRegRscImportSearchPath,"\\private\\10003a3f\\import\\apps\\");
+_LIT(KAppRegRscImportNonNativeSearchPath,"\\private\\10003a3f\\import\\apps\\NonNative\\Resource\\");
+
+	// Updates iCurrentIndexInDriveList
+	// 
+	TBool foundAnotherDrive = ETrue;
+	FOREVER
+		{
+		iCurrentIndexInDriveList++;	// move to next folder
+		if (iCurrentIndexInDriveList >= iListOfDrives.Count())	// If we reached the end if the drive list...
+			{
+			ASSERT(iScanStage < EScanStageComplete);
+			iCurrentIndexInDriveList = 0;		// ...start over from the beginning of the drive list
+			iScanStage++;						// ...and start looking for drives of the next type
+			}
+		
+		// Get next drive's info
+		const TDriveUnitInfo driveUnitInfo = iListOfDrives[iCurrentIndexInDriveList];
+		
+		// Check if this drive is of the correct type for this next stage
+		switch (iScanStage)
+			{
+			case EScanStageNonImportROM:
+			// Stage 1: Look in the non-import folder on ROM drives
+				if (driveUnitInfo.iAttribs==KDriveAttRom)
+					{
+					aAppFolderOnDrive.Set(KAppRegRscSearchPath);
+					goto done;	// Break out of the loop to return the drive found
+					}
+				break;	// Break and move on to the next drive
+			case EScanStageImportNonROM:	
+			// Stage 2: Look in the import folder for native apps on non-ROM drives
+				if (driveUnitInfo.iAttribs!=KDriveAttRom)
+					{
+					aAppFolderOnDrive.Set(KAppRegRscImportSearchPath);
+					goto done;	// Break out of the loop to return the drive found
+					}
+				break; // Break and move on to the next drive
+			case EScanStageImportNonNativeResourceNonROM:
+			// Stage 3: Look in the import folder for non-native apps on non-ROM drives
+				if (driveUnitInfo.iAttribs!=KDriveAttRom)
+					{
+					aAppFolderOnDrive.Set(KAppRegRscImportNonNativeSearchPath);
+					goto done;	// Break out of the loop to return the drive found
+					}
+				break; // Break and move on to the next drive
+			case EScanStageImportROM:
+			// Stage 4: Look in import folder for native apps on ROM drives
+				if (driveUnitInfo.iAttribs==KDriveAttRom)
+					{
+					aAppFolderOnDrive.Set(KAppRegRscImportSearchPath);
+					goto done;	// Break out of the loop to return the drive found
+					}
+				break; // Break and move on to the next drive
+			case EScanStageImportNonNativeResourceROM:
+			// Stage 5: Look in the import folder for non-native apps on ROM drives
+				if (driveUnitInfo.iAttribs==KDriveAttRom)
+					{
+					aAppFolderOnDrive.Set(KAppRegRscImportNonNativeSearchPath);
+					goto done;	// Break out of the loop to return the drive found
+					}
+				break; // Break and move on to the next drive
+			case EScanStageComplete:
+			// Stage 6: All done!
+				aAppFolderOnDrive.Set(KNullDesC);
+				foundAnotherDrive = EFalse;
+				goto done;
+			default:
+				ASSERT(0);
+				break;	
+			}
+		}
+
+done:		
+	aNextDrive = (foundAnotherDrive) ? iListOfDrives[iCurrentIndexInDriveList] : TDriveUnitInfo();
+	iFolderOnCurrentDrive.Set(aAppFolderOnDrive);	// Remember the folder path for GetCurrentDriveAndFolder()
+	return foundAnotherDrive;
+	}	
+	
+_LIT(KAppRegRscSearchAnyFile,"*");
+
+TInt CApaAppRegFinder::GetAppListOfDriveL(TDriveUnit aDriveUnit, const TDesC& aPath, CDir*& aFileList) const
+	{
+	const TDriveName driveName = aDriveUnit.Name();
+	TParse regFileNameParser;
+	TInt error = regFileNameParser.Set(KAppRegRscSearchAnyFile, &aPath, &driveName);
+	User::LeaveIfError(error);
+	
+	ASSERT(!aFileList);
+	error = iFs.GetDir(regFileNameParser.FullName(), KEntryAttAllowUid, ESortNone, aFileList);
+	LeaveIfIrregularErrorL(error);
+	return error;
+	}
+
+void CApaAppRegFinder::LeaveIfIrregularErrorL(TInt aError)	// e.g. KErrNoMemory
+// static
+	{
+	if (aError!=KErrNone && aError!=KErrNotFound && aError!=KErrPathNotFound && aError!=KErrNotReady
+		&& aError!=KErrDisMounted && aError!=KErrCorrupt && aError!=KErrNotSupported && 
+		aError!=KErrBadName && aError!=KErrLocked)
+		{
+		User::Leave(aError);
+		}
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/aplappregfinder.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,88 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// aplappregfinder.h
+//
+
+#ifndef __APLAPPREGFINDER_H__
+#define __APLAPPREGFINDER_H__
+
+#include <f32file.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "apsidcheckermap.h"
+#else
+#include <apsidchecker.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <badesca.h>		// typedef CDesCArray
+
+class TDriveUnitInfo;
+class TApaAppEntry;
+
+/**
+@internalComponent
+*/
+class CApaAppRegFinder : public CBase
+	{
+public: // Construction / Destruction
+	IMPORT_C static CApaAppRegFinder* NewL(const RFs& aFs);
+	IMPORT_C static CApaAppRegFinder* NewLC(const RFs& aFs);
+	~CApaAppRegFinder();
+private: // Private construction
+	CApaAppRegFinder(const RFs& aFs);
+	void ConstructL();
+public:
+	enum TScanScope
+		{
+		EScanAllDrives,
+		EScanRemovableDrives
+		};	
+		
+	IMPORT_C void FindAllAppsL(TScanScope aScopeOfScan); // sets up a scan for all apps
+	IMPORT_C TBool NextL(TApaAppEntry& aEntry, const CDesCArray& aForcedRegistrations); // increments a scan for all apps
+	IMPORT_C TArray<const TDriveUnitInfo> DriveList() const;
+private:		
+	void RebuildDriveListL(TScanScope aScopeOfScan);
+	TBool NextDriveAndFolderInNormalizedOrder(TDriveUnitInfo& aNextDrive, TPtrC& aAppFolderOnDrive) const;
+	void GetCurrentDriveAndFolder(TDriveUnitInfo& aDrive, TPtrC& aAppFolderOnDrive) const;
+	TInt GetAppListOfDriveL(TDriveUnit aDriveUnit, const TDesC& aPathName, CDir*& aFileList) const;
+	static void LeaveIfIrregularErrorL(TInt aError);
+private:
+	enum TScanStage
+		{
+		EScanStageNonImportROM,
+		EScanStageImportNonROM, 
+		EScanStageImportNonNativeResourceNonROM,
+		EScanStageImportROM,
+		EScanStageImportNonNativeResourceROM,
+		EScanStageComplete
+		};
+private:
+	CDir* iFileList;
+	TInt iFileIndex;
+	const RFs& iFs;
+	RSidCheckerMap iSidCheckerMap;
+	RArray<const TDriveUnitInfo> iListOfDrives;
+	mutable TInt iCurrentIndexInDriveList;
+	mutable TInt iScanStage;
+	mutable TPtrC iFolderOnCurrentDrive;
+	TUid iLastChkedApp; //Uid of the last app whose sid cheking has been done.
+	};
+	
+NONSHARABLE_CLASS(TDriveUnitInfo)
+	{
+public:
+	TDriveUnit iUnit; 
+	TUint iAttribs;
+	};
+	
+#endif // __APLAPPREGFINDER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/apsiconcaptionoverride.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,551 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apsiconcaptionoverride.cpp
+//
+
+#include "apsiconcaptionoverride.h"
+#include <centralrepository.h>
+#include <apadef.h>
+
+//constants defined
+const TUid KUidIconCaptionRepository = { 0x1028583d }; // Central Repository UID
+const TUint32 KAppBits = 0xFF000000; // App mask bits
+const TUint32 KFieldBits = 0x00FF0000; // Field mask bits
+const TUint32 KUidKey = 0x00FFFFFF; // UID mask bits
+
+// Field id values for short caption, caption, icon count, icon file name
+// of an application.
+enum TFieldId
+	{
+	EOverrideFieldShortCaption,
+	EOverrideFieldCaption,
+	EOverrideFieldNumIcons,
+	EOverrideFieldIconFileName
+	};
+
+/** 
+Stores the Central Repository configuration details into a Hash table.
+Two Hash tables defined to store integer and string type data separately.
+
+@internalComponent
+*/
+NONSHARABLE_CLASS(CApaIconCaptionOverrideStore) : public CBase
+	{
+public:
+	CApaIconCaptionOverrideStore();
+	~CApaIconCaptionOverrideStore();
+	
+	const TDesC* String(TUint32 aKey) const;
+	void SetStringL(TUint32 aKey, const TDesC& aString);
+	const TInt* Int(TUint32 aKey) const;
+	void SetIntL(TUint32 aKey, TInt aInt);
+	
+private:
+	typedef RHashMap<TUint32, TInt> RIntMap;
+	RIntMap iIntMap;
+	typedef RHashMap<TUint32, HBufC*> RStringMap;
+	RStringMap iStringMap;
+	};
+
+/**
+A utility class used to write information into a store (CApaIconCaptionOverrideStore).
+
+@internalComponent
+*/
+NONSHARABLE_CLASS(TApaIconCaptionOverrideWriter)
+	{
+public:
+	TApaIconCaptionOverrideWriter(CApaIconCaptionOverrideStore& aStore);
+	void LoadFieldFromCenRepL(CRepository* aRepository, TUint32 aFullKey);
+
+private:
+	CApaIconCaptionOverrideStore& iStore;
+	};
+
+// Constructor
+CApaIconCaptionOverrideStore::CApaIconCaptionOverrideStore()
+	{
+	}
+
+// Destructor
+CApaIconCaptionOverrideStore::~CApaIconCaptionOverrideStore()
+	{
+	RStringMap::TIter pString(iStringMap);
+	for (HBufC* const* str = pString.NextValue();
+		 str;
+		 str = pString.NextValue())
+		delete *str;
+	iStringMap.Close();
+	iIntMap.Close();
+	}
+
+/** 
+Looks up a specified key in the associative array and returns a pointer to the corresponding value.
+
+@param aKey The key object of type integer to look up.
+@return A pointer to the corresponding string value.  
+*/
+const TDesC* CApaIconCaptionOverrideStore::String(TUint32 aKey) const
+	{
+	HBufC* const* pStr = iStringMap.Find(aKey);
+	if (pStr)
+		return *pStr;
+	else
+		return NULL;
+	}
+
+/**
+Inserts the key-value pair into the array (string Hash table).
+
+@param aKey The key object of type integer to add to the array.
+@param aString The value object of type string to associate with aKey.
+*/
+void CApaIconCaptionOverrideStore::SetStringL(TUint32 aKey, const TDesC& aString)
+	{
+	HBufC* newStr = aString.AllocL();
+	CleanupStack::PushL(newStr);
+	HBufC* const* pStr = iStringMap.Find(aKey);
+	if (pStr)
+		{
+		delete *pStr;
+		}
+	iStringMap.InsertL(aKey, newStr);
+	CleanupStack::Pop(newStr);
+	}
+
+/**
+Looks up a specified key in the associative array and returns a pointer to the corresponding value.
+
+@param aKey The key object of type integer to look up
+@return A pointer to the corresponding integer value.
+*/
+const TInt* CApaIconCaptionOverrideStore::Int(TUint32 aKey) const
+	{
+	const TInt* pInt = iIntMap.Find(aKey);
+	return pInt;
+	}
+
+/**
+Inserts the key-value pair into the array (integer Hash table)
+
+@param aKey The key object of type integer to add to the array.
+@param aInt The value object of type integer to associate with aKey.
+*/
+void CApaIconCaptionOverrideStore::SetIntL(TUint32 aKey, TInt aInt)
+	{
+	iIntMap.InsertL(aKey, aInt);
+	}
+
+// Constructor
+TApaIconCaptionOverrideWriter::TApaIconCaptionOverrideWriter(CApaIconCaptionOverrideStore& aStore)
+: iStore(aStore)
+	{
+	}
+
+/**
+Reads the Central Repository integer, string settings and inserts the key-value pair into Store.
+
+Each setting is enumerated by a 32-bit key. The top 8 bits of the key is for app identification,
+the next 8 bits is for field (short caption (00), caption (01),total number of icons (02), 
+icon filename (03)) identification and next 16 bits for language identification.
+
+It is computed in the following way
+
+	00XXXXXX - App UID field
+	XX00XXXX - Short Caption field
+	XX01XXXX - Caption field
+	XX02XXXX - Icon count field
+	XX03XXXX - Icon Filename field
+	XXXX0000 - Language field
+
+First it performs a bitwise NOT operation on application mask key (KAppBits) and its value is bitwise
+AND with the 32 bit key of the field.
+
+It performs a bitwise AND with the field mask key (KFieldBits) and does a bitwise right shift to 16 bits
+to extract the the field bit value from the 32 bit key.
+
+It reads each field's (short caption, caption, total number of icons, icon file name) value from the
+Central Repository and inserts into a Store (Hash table).
+
+@param aRepository The object provides access to Central Repository
+@param aFullKey The 32-bit field key
+*/
+void TApaIconCaptionOverrideWriter::LoadFieldFromCenRepL(CRepository* aRepository, TUint32 aFullKey)
+	{
+	TUint32 key = aFullKey & ~KAppBits;
+	TUint32 fieldId = (key & KFieldBits) >> 16;
+	switch (fieldId)
+		{
+		case EOverrideFieldShortCaption:
+			{
+			TApaAppCaption shortCaption;
+			if (aRepository->Get(aFullKey, shortCaption) == KErrNone)
+				iStore.SetStringL(key, shortCaption);
+			break;
+			}
+		case EOverrideFieldCaption:
+			{
+			TApaAppCaption caption;
+			if (aRepository->Get(aFullKey, caption) == KErrNone)
+				iStore.SetStringL(key, caption);
+			break;
+			}
+		case EOverrideFieldNumIcons:
+			int numIcons;
+			if (aRepository->Get(aFullKey, numIcons) == KErrNone)
+				iStore.SetIntL(key, numIcons);
+			break;
+		case EOverrideFieldIconFileName:
+			{
+			TFileName fileName;
+			if (aRepository->Get(aFullKey, fileName) == KErrNone)
+				iStore.SetStringL(key, fileName);
+			break;
+			}
+		default:
+			break;
+		}
+	}
+
+// Constructor
+TApaIconCaptionOverrideReader::TApaIconCaptionOverrideReader(const CApaIconCaptionOverrideStore& aStore, const RArray<TLanguage>& aLanguageDowngradePath)
+: iStore(aStore), iLanguageDowngradePath(aLanguageDowngradePath)
+	{
+	}
+
+/**
+Gets the short caption value of the corresponding setting from store.
+*/
+const TDesC* TApaIconCaptionOverrideReader::ShortCaption() const
+	{
+	return GetString(EOverrideFieldShortCaption);
+	}
+
+/**
+Gets the caption value of the corresponding setting from store.
+*/
+const TDesC* TApaIconCaptionOverrideReader::Caption() const
+	{
+	return GetString(EOverrideFieldCaption);
+	}
+
+/**
+Gets the total number of icons value of the corresponding setting from the
+store and checks whether it is NULL.
+*/
+TBool TApaIconCaptionOverrideReader::NumIconsSet() const
+	{
+	return GetInt(EOverrideFieldNumIcons) != NULL;
+	}
+
+/**
+Gets the total number of icons of the corresponding setting from store.
+*/
+TInt TApaIconCaptionOverrideReader::NumIcons() const
+	{
+	const TInt* pInt = GetInt(EOverrideFieldNumIcons);
+	if (pInt)
+		return *pInt;
+	else
+		return 0;
+	}
+
+/**
+Gets the icon file name of the corresponding setting from store.
+*/
+const TDesC* TApaIconCaptionOverrideReader::IconFileName() const
+	{
+	return GetString(EOverrideFieldIconFileName);
+	}
+
+/**
+Reads store and retrieves the corresponding string value of the passed field Id.
+
+Gets the configuration information with reference to the language downgrade path, with
+ELangNone as default language, in case there is no match is found.
+
+@param aFieldId Field Id values for short caption, caption, icon count, icon file name.
+@return A pointer to the corresponding string value.
+*/
+const TDesC* TApaIconCaptionOverrideReader::GetString(TUint32 aFieldId) const
+	{
+	TInt count = iLanguageDowngradePath.Count();
+	for (TInt ii=0; ii<count; ii++)
+		{
+		TLanguage language = iLanguageDowngradePath[ii];
+		TUint32 key = (aFieldId << 16) | language;
+		const TDesC* pString = iStore.String(key);
+		if (pString)
+			return pString;
+		}
+	// default fallback language is ELangNone
+	TUint32 key = (aFieldId << 16) | ELangNone;
+	const TDesC* pString = iStore.String(key);
+	if (pString)
+		return pString;
+	return NULL;
+	}
+
+/**
+Reads store and retrieves the corresponding integer value of the passed field Id.
+
+Gets the configuration information with reference to the language downgrade path, with
+ELangNone as default language, in case there is no match is found.
+
+@param aFieldId Field Id values for short caption, caption, icon count, icon file name.
+@return A pointer to the corresponding integer value.
+*/
+const TInt* TApaIconCaptionOverrideReader::GetInt(TUint32 aFieldId) const
+	{
+	TInt count = iLanguageDowngradePath.Count();
+	for (TInt ii=0; ii<count; ii++)
+		{
+		TLanguage language = iLanguageDowngradePath[ii];
+		TUint32 key = (aFieldId << 16) | language;
+		const TInt* pInt = iStore.Int(key);
+		if (pInt)
+			return pInt;
+		}
+	// default fallback language is ELangNone
+	TUint32 key = (aFieldId << 16) | ELangNone;
+	const TInt* pInt = iStore.Int(key);
+	if (pInt)
+		return pInt;
+	return NULL;
+	}
+
+// Constructor
+CApaIconCaptionOverridesForApp::CApaIconCaptionOverridesForApp()
+	{
+	}
+
+// Destructor
+CApaIconCaptionOverridesForApp::~CApaIconCaptionOverridesForApp()
+	{
+	delete iStore;
+	}
+
+CApaIconCaptionOverridesForApp* CApaIconCaptionOverridesForApp::NewL()
+	{
+	CApaIconCaptionOverridesForApp* self = new (ELeave) CApaIconCaptionOverridesForApp;
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(); // self
+	return self;
+	}
+
+/** 2nd phase constructor that creates an object to store the Central Repository configuration
+details (integer & string values) into separate Hash tables.
+*/
+void CApaIconCaptionOverridesForApp::ConstructL()
+	{
+	iStore = new(ELeave) CApaIconCaptionOverrideStore;
+	}
+
+/**
+Finds all the settings that exist and match the specification given by partial key (aAppKey) and
+application mask key (KAppBits) from the Central Repository.
+
+All the 32-bit field keys have been retrieved from the Central Repository and stored into an array.
+It performs a bitwise NOT operation on application mask key (KAppBits) and its value is bitwise AND
+with each of the value retrieved from the array. If the new value does not match with the UID mask key,
+it tries to read each field setting value and stores the information into a store (Hash tables).
+
+@param aRepository The object provides access to Central Repository.
+@param aAppKey partial key.
+*/
+void CApaIconCaptionOverridesForApp::LoadFromCenRepL(CRepository* aRepository, TUint32 aAppKey)
+	{
+	TApaIconCaptionOverrideWriter writer(*iStore);
+	RArray<TUint32> appKeys;
+	CleanupClosePushL(appKeys);
+	User::LeaveIfError(aRepository->FindL(aAppKey, KAppBits, appKeys));
+	TInt count = appKeys.Count();
+	for (TInt ii=0; ii<count; ii++)
+		{
+		TUint32 key = appKeys[ii];
+		if ((key & ~KAppBits) == KUidKey)
+			continue;
+		writer.LoadFieldFromCenRepL(aRepository, key);
+		}
+	CleanupStack::PopAndDestroy(&appKeys);	
+	}
+
+/**
+Creates an object to read the configuration information with reference to the language downgrade path,
+with ELangNone used as the default language, if no better match is found.
+*/
+TApaIconCaptionOverrideReader CApaIconCaptionOverridesForApp::Reader(const RArray<TLanguage>& aLanguageDowngradePath) const
+	{
+	TApaIconCaptionOverrideReader reader(*iStore, aLanguageDowngradePath);
+	return reader;
+	}
+
+// Constructor
+CApaIconCaptionOverrides::CApaIconCaptionOverrides()
+	{
+	}
+
+// Destructor
+CApaIconCaptionOverrides::~CApaIconCaptionOverrides()
+	{
+	DeleteOverrides();
+	}
+
+/**
+Finds all the settings that exist and match the specification given by partial and mask keys, from the
+Central Repository. If the settings are found, it reads the values and stores icon, caption details
+into the store.
+*/
+void CApaIconCaptionOverrides::LoadFromCenRepL(CRepository* aRepository)
+	{
+	DeleteOverrides();
+
+	RArray<TUint32> appKeys;
+	CleanupClosePushL(appKeys);
+	aRepository->FindL(KUidKey, ~KAppBits, appKeys);	// ignore return. if no overrides found, array will be empty
+	TInt count = appKeys.Count();
+	for (TInt ii=0; ii<count; ii++)
+		{
+		TUint32 key = appKeys[ii];
+		TInt appUidVal;
+		User::LeaveIfError(aRepository->Get(key, appUidVal));
+		TUid appUid = { appUidVal };
+		CApaIconCaptionOverridesForApp* app = CApaIconCaptionOverridesForApp::NewL();
+		CleanupStack::PushL(app);
+		app->LoadFromCenRepL(aRepository, key);
+		SetOverrideForAppL(appUid, app);
+		CleanupStack::Pop(app);
+		}
+	CleanupStack::PopAndDestroy(&appKeys);
+	}
+
+/**
+Searches Hash table that keeps a map of app UIDs to configuration information for supplied application
+and returns a pointer to an object that keeps information of icon caption overrides for an application, if
+any suitable entry is found; otherwise NULL.
+*/
+CApaIconCaptionOverridesForApp* CApaIconCaptionOverrides::OverrideForApp(TUid aAppUid) const
+	{
+	CApaIconCaptionOverridesForApp* const* override = iMap.Find(aAppUid.iUid);
+	if (override)
+		return *override;
+	else
+		return NULL;
+	}
+
+/**
+Inserts key-value pair into an array (Hash table), if found, updates it.
+*/
+void CApaIconCaptionOverrides::SetOverrideForAppL(TUid aAppUid, CApaIconCaptionOverridesForApp* aOverrides)
+	{
+	//Searches the Hash table with the app UID, if it's found, it returns the corresponding entry;
+	CApaIconCaptionOverridesForApp* prev = OverrideForApp(aAppUid);
+	if (aOverrides)
+		{
+		iMap.InsertL(aAppUid.iUid, aOverrides);
+		}
+	else
+		{
+		iMap.Remove(aAppUid.iUid);
+		}
+	delete prev; // delete the found entry as InsertL() replaces it.
+	}
+
+/**
+Removes all the mapping done with app UIDs in Hash table for the icon caption overrides.
+*/
+void CApaIconCaptionOverrides::DeleteOverrides()
+	{
+	RAppOverrideMap::TIter pOverride(iMap);
+	for (CApaIconCaptionOverridesForApp* const* override = pOverride.NextValue();
+		 override;
+		 override = pOverride.NextValue())
+		delete *override;
+	iMap.Close();
+	}
+
+CApaIconCaptionCenrepObserver::CApaIconCaptionCenrepObserver(CApaIconCaptionOverrides& aOverrides)
+: CActive(EPriorityStandard), iOverrides(aOverrides)
+	{
+	CActiveScheduler::Add(this);
+	}
+	
+// Creates a Central Repository observer
+CApaIconCaptionCenrepObserver* CApaIconCaptionCenrepObserver::NewL(CApaIconCaptionOverrides& aOverrides)
+	{
+	CApaIconCaptionCenrepObserver* self = new (ELeave) CApaIconCaptionCenrepObserver(aOverrides);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	return self;
+	}
+
+// Destructor
+CApaIconCaptionCenrepObserver::~CApaIconCaptionCenrepObserver()
+	{
+	Cancel();
+	delete iRepository;
+	}
+
+/** 2nd phase constructor that creates a Central Repository object to access the repository with the
+specified UID and starts notification.
+*/
+void CApaIconCaptionCenrepObserver::ConstructL()
+	{
+	TRAP_IGNORE(iRepository = CRepository::NewL(KUidIconCaptionRepository));
+	Start();
+	}
+
+/**
+Finds all the settings that exist and match the specification given by partial and mask keys, from the
+Central Repository, if it exists.
+*/
+void CApaIconCaptionCenrepObserver::LoadOverridesL()
+	{
+	if (iRepository)
+		{
+		iOverrides.LoadFromCenRepL(iRepository);
+		}
+	}
+
+/**
+Requests a notification on any change in the Central Repository. Only one notification can be
+received per call to NotifyRequest().
+*/
+void CApaIconCaptionCenrepObserver::Start()
+	{
+	if (iRepository)
+		{
+		iRepository->NotifyRequest(0, 0, iStatus);	// notify on all key changes
+		SetActive();
+		}
+	}
+
+/**
+Handles an active object's request completion event.
+*/
+void CApaIconCaptionCenrepObserver::RunL()
+	{
+		Start();
+		LoadOverridesL();
+	}
+
+/**
+Cancels a notification previously requested from NotifyRequest
+*/
+void CApaIconCaptionCenrepObserver::DoCancel()
+	{
+	iRepository->NotifyCancel(0, 0);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/apsiconcaptionoverride.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,129 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apsiconcaptionoverride.h
+//
+
+#ifndef __APSICONCAPTIONOVERRIDE_H__
+#define __APSICONCAPTIONOVERRIDE_H__
+
+#include <e32base.h>
+#include <e32hashtab.h>
+
+
+class CRepository;
+class CApaIconCaptionOverrideStore;
+
+/**
+Exposes access to an application's configuration information to the Apparc Server.
+
+Retrieves the caption, icon information from the store (CApaIconCaptionOverrideStore).
+
+Reads the configuration information with reference to the language downgrade path, with
+ELangNone used as the default language, if no better match is found.
+
+@internalComponent
+@see CApaIconCaptionOverrideStore
+*/
+NONSHARABLE_CLASS(TApaIconCaptionOverrideReader)
+	{
+public:
+	TApaIconCaptionOverrideReader(const CApaIconCaptionOverrideStore& aStore, const RArray<TLanguage>& aLanguageDowngradePath);
+	const TDesC* ShortCaption() const;
+	const TDesC* Caption() const;
+	TBool NumIconsSet() const;
+	TInt NumIcons() const;
+	const TDesC* IconFileName() const;
+
+private:
+	const TDesC* GetString(TUint32 aFieldId) const;
+	const TInt* GetInt(TUint32 aFieldId) const;
+	
+private:
+	const CApaIconCaptionOverrideStore& iStore;
+	const RArray<TLanguage>& iLanguageDowngradePath;
+	};
+
+/**
+Stores the icon and caption overrides for an application.
+
+@internalComponent
+*/
+NONSHARABLE_CLASS(CApaIconCaptionOverridesForApp) : public CBase
+	{
+public:
+	static CApaIconCaptionOverridesForApp* NewL();
+	~CApaIconCaptionOverridesForApp();
+	CApaIconCaptionOverridesForApp();
+	void ConstructL();
+	
+	void LoadFromCenRepL(CRepository* aRepository, TUint32 aAppKey);
+	TApaIconCaptionOverrideReader Reader(const RArray<TLanguage>& aLanguageDowngradePath) const;
+	
+private:
+	CApaIconCaptionOverrideStore* iStore;
+	};
+
+/**
+Stores the icon and caption override data indexed by application UID.
+Keeps a map of app UIDs to configuration information for that application.
+
+@internalComponent
+*/
+NONSHARABLE_CLASS(CApaIconCaptionOverrides) : public CBase
+	{
+public:
+	CApaIconCaptionOverrides();
+	~CApaIconCaptionOverrides();
+
+	void LoadFromCenRepL();
+	void LoadFromCenRepL(CRepository* aRepository);
+
+	CApaIconCaptionOverridesForApp* OverrideForApp(TUid aAppUid) const;
+	void SetOverrideForAppL(TUid aAppUid, CApaIconCaptionOverridesForApp* aOverrides);	// takes ownership aOverrides
+
+private:
+	void DeleteOverrides();
+
+private:
+	typedef RHashMap<TInt, CApaIconCaptionOverridesForApp*> RAppOverrideMap;
+	RAppOverrideMap iMap;
+	};
+	
+/**
+Watches for changes in the Central Repositiory and update the overrides when they occur.
+
+@internalComponent   
+*/
+NONSHARABLE_CLASS(CApaIconCaptionCenrepObserver) : public CActive
+	{
+public:
+	static CApaIconCaptionCenrepObserver* NewL(CApaIconCaptionOverrides& aOverrides);
+	CApaIconCaptionCenrepObserver(CApaIconCaptionOverrides& aOverrides);
+	~CApaIconCaptionCenrepObserver();
+	void ConstructL();
+	
+	void LoadOverridesL();
+	
+private:
+	void Start();
+	// from CActive
+	void RunL();
+	void DoCancel();
+	
+private:
+	CApaIconCaptionOverrides& iOverrides;
+	CRepository* iRepository;	// owned
+	};
+
+#endif // __APSICONCAPTIONOVERRIDE_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/aplist/apsidchecker.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,103 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apsidchecker.cpp
+//
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "apsidcheckermap.h"
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apsidchecker.h>
+#include <ecom/ecom.h>
+
+//const TUid KAppSidCheckerInterfaceUid = {0x10281FBB}; //old interface used when checking based only on SID
+const TUid KAppSidCheckerInterfaceUid = {0x20007D8C}; // current interface used when checking based on SID and drive number
+
+
+CAppSidChecker* CAppSidChecker::CheckerForAppType(TUid aAppTypeUid)
+	{
+	TEComResolverParams resolverParams;
+	TBuf8<KMaxUidName> sidName;
+	sidName.Copy(aAppTypeUid.Name());
+	resolverParams.SetDataType(sidName);
+	TAny* ptr = NULL;
+	TRAP_IGNORE( ptr = REComSession::CreateImplementationL(
+			KAppSidCheckerInterfaceUid,
+			_FOFF(CAppSidChecker, iDtor_ID_Key),
+			NULL, resolverParams) );
+
+	return reinterpret_cast<CAppSidChecker*>(ptr);
+	}
+
+/** The destruction of the interface implementation */
+EXPORT_C CAppSidChecker::~CAppSidChecker()
+	{
+	REComSession::DestroyedImplementation(iDtor_ID_Key);
+	}
+
+EXPORT_C void CAppSidChecker::SetRescanCallBackL(const TCallBack&)
+	{
+	}
+
+EXPORT_C void CAppSidChecker::reserved1()
+	{
+	}
+
+EXPORT_C void CAppSidChecker::reserved2()
+	{
+	}
+
+EXPORT_C void CAppSidChecker::reserved3()
+	{
+	}
+
+RSidCheckerMap::RSidCheckerMap( TCallBack aRescanCallBack ) :
+		iRescanCallBack( aRescanCallBack )
+	{
+	}
+
+CAppSidChecker& RSidCheckerMap::FindSidCheckerL(TUid aAppType)
+	{
+	CAppSidChecker* checker = NULL;
+	CAppSidChecker** checkerPtr = Find(aAppType.iUid);
+	if(checkerPtr)
+		checker = *checkerPtr;
+	else
+		{
+		// No CAppSidChecker instance loaded, try to find one
+		checker = CAppSidChecker::CheckerForAppType(aAppType);
+		if(checker)
+			{
+			CleanupStack::PushL(checker);
+			InsertL(aAppType.iUid, checker);
+			CleanupStack::Pop(checker);
+			checker->SetRescanCallBackL(iRescanCallBack);
+			}
+		else
+			User::Leave(KErrNotFound);
+		}
+
+	return *checker;
+	}
+
+void RSidCheckerMap::Close()
+	{
+	TIter iter(*this);
+	while(iter.NextValue())
+		{
+		delete *(iter.CurrentValue());
+		iter.RemoveCurrent();
+		}
+
+	RHashMap<TUint,CAppSidChecker*>::Close();
+	}
--- a/localisation/apparchitecture/apparc/APACMDLN.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/APACMDLN.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,14 +11,30 @@
 // Contributors:
 //
 // Description:
+// apacmdln.cpp
 //
 
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+
 #include <apacmdln.h>
 #include "APASTD.H" // Panics etc.
 #include <s32mem.h>
 
 #include <e32svr.h>
 
+// comand line tokens
+const TUint KApaCommandLetterOpen='O';
+const TUint KApaCommandLetterCreate='C';
+const TUint KApaCommandLetterRun='R';
+const TUint KApaCommandLetterBackground='B';
+const TUint KApaCommandLetterViewActivate='V';
+const TUint KApaCommandLetterRunWithoutViews='W';
+const TUint KApaCommandLetterBackgroundAndWithoutViews='A';
+
 _LIT(KLitTokenServerDifferentiator, "-srvDfr=");
 _LIT(KLitTokenDefaultScreenNumber, "-dsc=");
 _LIT(KLitTokenParentWindowGroupID, "-prntwgid=");
@@ -26,95 +42,62 @@
 _LIT(KLitTokenAppStartupInstrumentationEventIdBase, "-appStartupInstrEvIdBase=");
 _LIT(KLitTokenOpaqueData, "-opaque=");
 
+enum TProcessEnvironmentSots 
+	{
+	EEnvironmentSlotUnused = 0,
+	EEnvironmentSlotMain = 1,
+	EEnvironmentSlotFsSession = 2,
+	EEnvironmentSlotFile = 3,
+	EFirstEnvironmentSlotForPublicUse = 8,
+	ENumberOfEnvironmentSlotsForPublicUse = 4
+	};
+
+enum TIpcMessageSlots
+	{
+	EIpcSlotMain = 0,
+	EIpcSlotFsSession = 1,
+	EIpcSlotFile = 2
+	};
+
+
 // CApaCommandLine
 
+/** Private c'tor - initialize using NewLC()
+@internalTechnology */
 CApaCommandLine::CApaCommandLine() : 
-	iDocumentName( NULL), iExecutableName(NULL), iOpaqueData(NULL),
-	iTailEnd(NULL), iCommand(EApaCommandRun),
-	iServerDifferentiator(0), iDefaultScreenNumber(-1),
+	iCommand(EApaCommandRun), iServerDifferentiator(0), iDefaultScreenNumber(KErrNotFound),
 	iParentWindowGroupID(0), iDebugMemFail(0), iAppStartupInstrumentationEventIdBase(0),
 	iFile(), iParentProcessId(KNullProcessId)
-	//
-	// private c'tor - initialize using NewLC()
-	//
 	{
 	}
 
+/** Destructor.
+Frees resources owned by the object prior to deletion. */
 EXPORT_C CApaCommandLine::~CApaCommandLine()
-/** Destructor.
-
-Frees resources owned by the object prior to deletion. */
 	{
-	delete iDocumentName;
-	delete iExecutableName;
-	delete iOpaqueData;
-	delete iTailEnd;
+	iDocumentName.Close();
+	iExecutableName.Close();
+	iOpaqueData.Close();
+	iTailEnd.Close();
 	iFile.Close();
 	}
 
+/** Creates an empty command line object.
+@return A pointer to the new command line object. */
 EXPORT_C CApaCommandLine* CApaCommandLine::NewL()
-/** Creates an empty command line object.
-
-@return A pointer to the new command line object. */
 	{
-	CApaCommandLine* This=CApaCommandLine::NewLC();
+	CApaCommandLine* self = CApaCommandLine::NewLC();
 	CleanupStack::Pop();
-	return This;
-	}
-
-EXPORT_C void CApaCommandLine::ConstructCmdLineFromMessageL(const RMessage2& aMessage)
-/** Acts as a second constructor and completes a commandline object from 
-	the aMessage object.
-
-@internalTechnology */
-	{
-	const TInt bufLen = aMessage.GetDesLengthL(EIpcSlotMain);
-	HBufC8* const buffer=HBufC8::NewLC(bufLen);
-	{TPtr8 buffer_asWritable(buffer->Des());
-	aMessage.ReadL(EIpcSlotMain, buffer_asWritable);}
-	RDesReadStream stream;
-	stream.Open(*buffer);
-	InternalizeL(stream);
-	CleanupStack::PopAndDestroy(buffer);
-
-	iFile.AdoptFromClient(aMessage, EIpcSlotFsSession, EIpcSlotFile); // ignore the returned error - assume it means that no file has been passed across
+	return self;
 	}
 
-void CApaCommandLine::GetCommandLineFromProcessEnvironmentL()
+/** Creates an empty command line object, and puts a pointer to it onto the cleanup stack.
+@return A pointer to the new command line object. */
+EXPORT_C CApaCommandLine* CApaCommandLine::NewLC()
 	{
-	const TInt bufLen = User::ParameterLength(EEnvironmentSlotMain);
-	if (bufLen==KErrNotFound)
-		{
-		HBufC* const commandLineString=HBufC::NewLC(User::CommandLineLength());
-		{TPtr commandLineString_asWritable(commandLineString->Des());
-		User::CommandLine(commandLineString_asWritable);}
-		User::LeaveIfError(Parse(*commandLineString));
-		CleanupStack::PopAndDestroy(commandLineString);
-		}
-	else
-		{
-		User::LeaveIfError(bufLen); // in case bufLen is some error other than KErrNotFound
-		HBufC8* const buffer=HBufC8::NewLC(bufLen);
-		{TPtr8 buffer_asWritable(buffer->Des());
-		User::LeaveIfError(User::GetDesParameter(EEnvironmentSlotMain, buffer_asWritable));}
-		RDesReadStream stream;
-		stream.Open(*buffer);
-		InternalizeL(stream);
-		CleanupStack::PopAndDestroy(buffer);
-		}
-
-	iFile.AdoptFromCreator(EEnvironmentSlotFsSession, EEnvironmentSlotFile); // ignore the returned error - assume it means that no file has been passed across
-	}
-
-EXPORT_C CApaCommandLine* CApaCommandLine::NewLC()
-/** Creates an empty command line object, and puts a pointer to it onto the cleanup 
-stack.
-
-@return A pointer to the new command line object. */
-	{
-	CApaCommandLine* This=new(ELeave) CApaCommandLine;
-	CleanupStack::PushL(This);
-	return This;
+	CApaCommandLine* self = new(ELeave) CApaCommandLine;
+	CleanupStack::PushL(self);
+	return self;
 	}
 
 EXPORT_C void CApaCommandLine::SetDocumentNameL(const TDesC& aDocName)
@@ -125,88 +108,80 @@
 
 @param aDocName A descriptor containing the document name. */
 	{
-	HBufC* const documentName=aDocName.AllocL();
-	delete iDocumentName; // only done after the AllocL succeeds
-	iDocumentName=documentName;
+	RBuf documentName;
+	documentName.CreateL(aDocName);
+	
+	iDocumentName.Close();	// free any existing memory
+	iDocumentName.Assign(documentName);	
 	}
 
-EXPORT_C TPtrC CApaCommandLine::DocumentName() const
 /** Gets the document name from the launch information.
-
 @return A pointer descriptor representing the document name. The document 
 name is returned without any enclosing quotation marks. If the launch information 
 contains no document name, then the pointer descriptor has zero length. */
+EXPORT_C TPtrC CApaCommandLine::DocumentName() const
 	{
-	if (iDocumentName!=NULL)
-		{
-		return *iDocumentName;
-		}
-	return KNullDesC();
+	return iDocumentName;
 	}
 
-EXPORT_C void CApaCommandLine::SetExecutableNameL(const TDesC& aExecutableName)
 /** Sets the executable name from the specified descriptor.
-
 @param aExecutableName A descriptor containing the executable name. */
+EXPORT_C void CApaCommandLine::SetExecutableNameL(const TDesC& aExecutableName)
 	{
-	HBufC* const executableName=aExecutableName.AllocL();
-	delete iExecutableName; // only done after the AllocL succeeds
-	iExecutableName=executableName;
+	RBuf executableName;
+	executableName.CreateL(aExecutableName);
+	
+	iExecutableName.Close();	// free any existing memory
+	iExecutableName.Assign(executableName);
 	}
 
+/** Gets the executable name from the launch information.
+@return A pointer descriptor representing the executable name. */
 EXPORT_C TPtrC CApaCommandLine::ExecutableName() const
-/** Gets the executable name from the launch information.
-
-@return A pointer descriptor representing the executable name. */
 	{
-	if (iExecutableName!=NULL)
-		{
-		return *iExecutableName;
-		}
-	return KNullDesC();
+	return iExecutableName;
 	}
 
-EXPORT_C void CApaCommandLine::SetOpaqueDataL(const TDesC8& aOpaqueData)
 /** Sets the opaque-data from the specified 8-bit descriptor.
 
 This is called internally and populated from the data in the application's registration resource file, 
 i.e. from the resource indicated by the opaque_data field of the APP_REGISTRATION_INFO resource (if the 
 opaque_data field was non-zero).
 
-@param aOpaqueData An 8-bit descriptor containing the opaque-data. */
+@param aOpaqueData An 8-bit descriptor containing the opaque-data. 
+*/
+EXPORT_C void CApaCommandLine::SetOpaqueDataL(const TDesC8& aOpaqueData)
 	{
-	HBufC8* const opaqueData = aOpaqueData.AllocL();
-	delete iOpaqueData;
-	iOpaqueData = opaqueData;
+	RBuf8 opaqueData;
+	opaqueData.CreateL(aOpaqueData);
+	
+	iOpaqueData.Close();	// free any existing memory
+	iOpaqueData.Assign(opaqueData);
 	}
 
-EXPORT_C TPtrC8 CApaCommandLine::OpaqueData() const
 /** Gets the opaque-data from the launch information.
 
 See the description of SetOpaqueDataL. By default, this attribute is an empty descriptor.
 
 @see SetOpaqueDataL
-@return An 8-bit pointer descriptor representing the opaque-data. */
+@return An 8-bit pointer descriptor representing the opaque-data. 
+*/
+EXPORT_C TPtrC8 CApaCommandLine::OpaqueData() const
 	{
-	if (iOpaqueData != NULL)
-		{
-		return *iOpaqueData;
-		}
-	return KNullDesC8();
+	return iOpaqueData;
 	}
 
-EXPORT_C void CApaCommandLine::SetCommandL(TApaCommand aCommand)
 /** Sets the command code.
 
 The command code is used to indicate how an application is to be launched.
 
 @see TApaCommand
 @param aCommand The command code. */
+EXPORT_C void CApaCommandLine::SetCommandL(TApaCommand aCommand)
 	{
-	iCommand=aCommand;
+	iCommand = aCommand;
 	}
 
-EXPORT_C TApaCommand CApaCommandLine::Command() const
 /** Gets the command code from the launch information.
 
 See the description of SetCommandL.
@@ -214,25 +189,28 @@
 @see SetCommandL
 @see TApaCommand
 @return The command code. */
+EXPORT_C TApaCommand CApaCommandLine::Command() const
 	{
 	return iCommand;
 	}
 
-EXPORT_C void CApaCommandLine::SetTailEndL(const TDesC8& aTailEnd)
 /** Sets the trailing data.
 
 The UI Framework provides a specific set of pre-defined command line 
 options. Additional user defined or pre-defined command line options, 
 may be passed to an application by setting the TailEnd.
 
-@param aTailEnd An 8 bit descriptor containing the trailing data. */
+@param aTailEnd An 8 bit descriptor containing the trailing data. 
+@publishedAll */
+EXPORT_C void CApaCommandLine::SetTailEndL(const TDesC8& aTailEnd)
 	{
-	HBufC8* const newTailEnd=aTailEnd.AllocL();
-	delete iTailEnd; // only done after the AllocL succeeds
-	iTailEnd=newTailEnd;
+	RBuf8 tailEnd;
+	tailEnd.CreateL(aTailEnd);
+	
+	iTailEnd.Close();	// free any existing memory
+	iTailEnd.Assign(tailEnd);
 	}
 
-EXPORT_C TPtrC8 CApaCommandLine::TailEnd() const
 /** Gets the trailing data from the launch information.
 
 See the description of SetTailEndL.
@@ -240,16 +218,13 @@
 @see SetTailEndL
 @return A pointer descriptor representing the trailing data. If the launch 
 information contains no trailing data, then the pointer descriptor has zero 
-length. */
+length. 
+@publishedAll */
+EXPORT_C TPtrC8 CApaCommandLine::TailEnd() const
 	{
-	if (iTailEnd!=NULL)
-		{
-		return *iTailEnd;
-		}
-	return KNullDesC8();
+	return iTailEnd;
 	}
 
-EXPORT_C void CApaCommandLine::SetFileByHandleL(const RFile& aFile)
 /** Sets the file to be passed into the application (by handle). 
 This will then be retrieved by that application-process calling GetFileByHandleL().
 
@@ -257,13 +232,14 @@
 @released
 @param aFile The file object to be passed into the application. No transfer of this 
 object's ownership takes place in this function. */
+EXPORT_C void CApaCommandLine::SetFileByHandleL(const RFile& aFile)
 	{
-	__ASSERT_ALWAYS(aFile.SubSessionHandle()!=KNullHandle, Panic(EPanicInvalidHandle));
-	__ASSERT_ALWAYS(iFile.SubSessionHandle()==KNullHandle, Panic(EPanicHandleAlreadySet));
+	__ASSERT_ALWAYS(aFile.SubSessionHandle() != KNullHandle, Panic(EPanicInvalidHandle));
+	__ASSERT_ALWAYS(iFile.SubSessionHandle() == KNullHandle, Panic(EPanicHandleAlreadySet));
+	
 	User::LeaveIfError(iFile.Duplicate(aFile));
 	}
 
-EXPORT_C void CApaCommandLine::GetFileByHandleL(RFile& aFile) const
 /** Opens (by handle) the file that was passed into SetFileByHandleL by the process launching the local application.
 
 On entering this function, aFile must be non-open. It is recommended that aFile is 
@@ -273,12 +249,12 @@
 @released
 @param aFile The file object to be set up from the handle passed into the application. The 
 caller has the responsibility to Close() this object, even if this function leaves. */
+EXPORT_C void CApaCommandLine::GetFileByHandleL(RFile& aFile) const
 	{
 	__ASSERT_ALWAYS(aFile.SubSessionHandle()==KNullHandle, Panic(EPanicHandleAlreadySet));
-	if (iFile.SubSessionHandle()!=KNullHandle)
-		{
+
+	if (iFile.SubSessionHandle() != KNullHandle)
 		User::LeaveIfError(aFile.Duplicate(iFile));
-		}
 	}
 
 /** Assigns a command line to a process (EKA2 only). 
@@ -304,29 +280,66 @@
 */
 EXPORT_C void CApaCommandLine::SetProcessEnvironmentL(RProcess& aProcess) const
 	{
-	HBufC8* const streamableAttributes=StreamableAttributesLC();
+	HBufC8* const streamableAttributes = StreamableAttributesLC();
 	User::LeaveIfError(aProcess.SetParameter(EEnvironmentSlotMain, *streamableAttributes));
 	CleanupStack::PopAndDestroy(streamableAttributes);
 
-	if (iFile.SubSessionHandle()!=KNullHandle)
-		{
+	if (iFile.SubSessionHandle() != KNullHandle)
 		User::LeaveIfError(iFile.TransferToProcess(aProcess, EEnvironmentSlotFsSession, EEnvironmentSlotFile));
-		}
 	}
 
+/**
+@internalTechnology
+*/
 EXPORT_C void CApaCommandLine::GetIpcArgsLC(TIpcArgs& aIpcArgs) const
+	{
+	aIpcArgs.Set(EIpcSlotMain, StreamableAttributesLC());
+	if (iFile.SubSessionHandle() != KNullHandle)
+		User::LeaveIfError(iFile.TransferToServer(aIpcArgs, EIpcSlotFsSession, EIpcSlotFile));
+	}
+
 /**
 @internalTechnology
 */
+HBufC8* CApaCommandLine::StreamableAttributesLC() const
 	{
-	aIpcArgs.Set(EIpcSlotMain, StreamableAttributesLC());
-	if (iFile.SubSessionHandle()!=KNullHandle)
-		{
-		User::LeaveIfError(iFile.TransferToServer(aIpcArgs, EIpcSlotFsSession, EIpcSlotFile));
-		}
+	CBufFlat* const buffer = CBufFlat::NewL(128);
+	CleanupStack::PushL(buffer);
+	
+	RBufWriteStream writeStream;
+	writeStream.Truncate(*buffer);
+	ExternalizeL(writeStream);
+	writeStream.CommitL();
+	HBufC8* const bufferAsDescriptor = buffer->Ptr(0).AllocL();
+	
+	CleanupStack::PopAndDestroy(buffer);
+	
+	CleanupStack::PushL(bufferAsDescriptor);
+	return bufferAsDescriptor;
 	}
 
-EXPORT_C TInt CApaCommandLine::GetCommandLineFromProcessEnvironment(CApaCommandLine*& aCommandLine)
+/** Acts as a second constructor and completes a commandline object from 
+the aMessage object.
+@internalTechnology */
+EXPORT_C void CApaCommandLine::ConstructCmdLineFromMessageL(const RMessage2& aMessage)
+	{
+	// Create a buffer of the right size and get the data from the RMessage2
+	RBuf8 buffer;
+	buffer.CleanupClosePushL();
+	buffer.CreateL(aMessage.GetDesLengthL(EIpcSlotMain));
+	aMessage.ReadL(EIpcSlotMain, buffer);
+	
+	// Create a stream and use it to read the data from the buffer
+	RDesReadStream stream;
+	CleanupClosePushL(stream);
+	stream.Open(buffer);
+	InternalizeL(stream);
+	CleanupStack::PopAndDestroy();	// stream
+	
+	CleanupStack::PopAndDestroy();	// buffer
+	iFile.AdoptFromClient(aMessage, EIpcSlotFsSession, EIpcSlotFile); // ignore the returned error - assume it means that no file has been passed across
+	}
+
 /** Constructs a command line object.
 
 If command line information is provided in the environment-slots it creates command line object from
@@ -343,6 +356,7 @@
 @param aCommandLine On return, a pointer to a newly constructed command line object.
 @return KErrNone, if successful; otherwise one of the other system-wide error codes.
 @internalTechnology */
+EXPORT_C TInt CApaCommandLine::GetCommandLineFromProcessEnvironment(CApaCommandLine*& aCommandLine)
 	{ // static
 	aCommandLine = NULL;
 	CApaCommandLine* const commandLine = new CApaCommandLine;
@@ -360,35 +374,66 @@
 			}
 		}
 	
-	TRAPD(error, commandLine->GetCommandLineFromProcessEnvironmentL());
+	TRAPD(error, commandLine->DoGetCommandLineFromProcessEnvironmentL());
 	aCommandLine = commandLine;
 	delete trapCleanup;
 	return error;
 	}
 
-EXPORT_C void CApaCommandLine::SetParentProcessId(TProcessId aProcessId)
+void CApaCommandLine::DoGetCommandLineFromProcessEnvironmentL()
+	{
+	const TInt bufLen = User::ParameterLength(EEnvironmentSlotMain);
+	if (bufLen == KErrNotFound)
+		{
+		RBuf commandLineString;
+		commandLineString.CleanupClosePushL();
+		commandLineString.CreateL(User::CommandLineLength());
+		User::CommandLine(commandLineString);
+		User::LeaveIfError(DoGetParametersFromCommandLineString(commandLineString));
+		CleanupStack::PopAndDestroy();	// commandLineString
+		}
+	else
+		{
+		User::LeaveIfError(bufLen); // in case bufLen is some error other than KErrNotFound
+		RBuf8 buffer;
+		buffer.CleanupClosePushL();
+		buffer.CreateL(bufLen);
+		
+		User::LeaveIfError(User::GetDesParameter(EEnvironmentSlotMain, buffer));
+		RDesReadStream stream;
+		CleanupClosePushL(stream);
+		stream.Open(buffer);
+		InternalizeL(stream);
+		CleanupStack::PopAndDestroy();	// stream
+		
+		CleanupStack::PopAndDestroy();	// buffer
+		}
+
+	iFile.AdoptFromCreator(EEnvironmentSlotFsSession, EEnvironmentSlotFile); // ignore the returned error - assume it means that no file has been passed across
+	}
+
 /** Sets the Parent Process ID for the Child Process launched with this command line.
 
 This establishes a Parent-Child relationship which ensures that the child process is
 terminated when the parent terminates.
 
 @param aProcessId The Process ID. */
+EXPORT_C void CApaCommandLine::SetParentProcessId(TProcessId aProcessId)
 	{
-	iParentProcessId=aProcessId;
+	iParentProcessId = aProcessId;
 	}
 
-EXPORT_C TProcessId CApaCommandLine::ParentProcessId() const
 /** Gets the Parent Process ID of the Child Process launched with this command line.
 
 See the description of SetParentProcessId.
 
 @see SetParentProcessId
 @return The Parent Process ID. */
+EXPORT_C TProcessId CApaCommandLine::ParentProcessId() const
 	{
 	return iParentProcessId;
 	}
 
-
 void CApaCommandLine::ExternalizeL(RWriteStream& aStream) const
 	{
 	// iFile is not supported via RReadStream/RWriteStream
@@ -405,39 +450,27 @@
 	aStream.WriteInt32L(iParentProcessId);
 	}
 
-
 void CApaCommandLine::InternalizeL(RReadStream& aStream)
 	{
 	// iFile is not supported via RReadStream/RWriteStream
 	const TInt KMaxBufLength = 4000;
-	iDocumentName = HBufC::NewL(aStream,KMaxBufLength);
-	iExecutableName = HBufC::NewL(aStream,KMaxBufLength);
-	iOpaqueData = HBufC8::NewL(aStream, KMaxBufLength);
-	iTailEnd = HBufC8::NewL(aStream,KMaxBufLength);
+	iDocumentName.Close();	// free any existing memory
+	iDocumentName.CreateL(aStream, KMaxBufLength);
+	iExecutableName.Close();	// free any existing memory
+	iExecutableName.CreateL(aStream, KMaxBufLength);
+	iOpaqueData.Close();	// free any existing memory
+	iOpaqueData.CreateL(aStream, KMaxBufLength);
+	iTailEnd.Close();	// free any existing memory
+	iTailEnd.CreateL(aStream, KMaxBufLength);
 	iCommand = static_cast<TApaCommand>(aStream.ReadInt32L());
 	iServerDifferentiator = aStream.ReadInt32L();
 	iDefaultScreenNumber = aStream.ReadInt32L();
 	iParentWindowGroupID = aStream.ReadInt32L();
 	iDebugMemFail = aStream.ReadInt32L();
 	iAppStartupInstrumentationEventIdBase = aStream.ReadInt32L();
-	iParentProcessId=aStream.ReadInt32L();
+	iParentProcessId = aStream.ReadInt32L();
 	}
 
-HBufC8* CApaCommandLine::StreamableAttributesLC() const
-	{
-	CBufFlat* const buffer = CBufFlat::NewL(128);
-	CleanupStack::PushL(buffer);
-	RBufWriteStream writeStream;
-	writeStream.Truncate(*buffer);
-	ExternalizeL(writeStream);
-	writeStream.CommitL();
-	HBufC8* const bufferAsDescriptor = buffer->Ptr(0).AllocL();
-	CleanupStack::PopAndDestroy(buffer);
-	CleanupStack::PushL(bufferAsDescriptor);
-	return bufferAsDescriptor;
-	}
-
-EXPORT_C void CApaCommandLine::SetServerNotRequiredL()
 /** Sets that no server is required.
 
 The value of server differentiator is set to zero, to indicate that no server
@@ -446,282 +479,291 @@
 See the description of SetServerRequiredL.
 @see SetServerRequiredL
 */
+EXPORT_C void CApaCommandLine::SetServerNotRequiredL()
 	{
 	SetServerDifferentiatorL(0);
 	}
 
-EXPORT_C void CApaCommandLine::SetServerRequiredL(TUint aServerDifferentiator)
 /** Sets the required server.
 
 The server differentiator is a number generated by the client that helps to uniquely 
 identify the server. It is used by an application to indicate whether a server should
 be created and how it should be named.
 
-@param aServerDifferentiator A differentiator for the required server.*/
-
+@param aServerDifferentiator A differentiator for the required server.
+@see REikAppServiceBase::LaunchAppL() 
+*/
+EXPORT_C void CApaCommandLine::SetServerRequiredL(TUint aServerDifferentiator)
 	{
 	SetServerDifferentiatorL(aServerDifferentiator);
 	}
 
+/**
+@see REikAppServiceBase::LaunchAppL()
+@internalTechnology
+*/
 void CApaCommandLine::SetServerDifferentiatorL(TUint aServerDifferentiator)
 	{
-	iServerDifferentiator=aServerDifferentiator;
+	iServerDifferentiator = aServerDifferentiator;
 	}
 	
-EXPORT_C TUint CApaCommandLine::ServerRequired() const
 /** Gets the server differentiator.
 
 See the description of SetServerRequiredL.
 
 @see SetServerRequiredL
 @return The non-zero differentiator for the server, else zero indicating a server 
-is not required.*/
+is not required.
+@see REikAppServiceBase::LaunchAppL() */
+EXPORT_C TUint CApaCommandLine::ServerRequired() const
 	{
 	return iServerDifferentiator;
 	}
 
-EXPORT_C void CApaCommandLine::SetDefaultScreenL(TInt aDefaultScreenNumber)
 /** Provides support for devices with more than one screen.  A number representing the default
 or startup screen may be passed to an application.
 Screen numbers and characteristics are defined in the window server initialisation 
 file (wsini.ini).
 
-@param aDefaultScreenNumber The number of the default (startup) screen. */
+@param aDefaultScreenNumber The number of the default (startup) screen.
+@publishedAll */
+EXPORT_C void CApaCommandLine::SetDefaultScreenL(TInt aDefaultScreenNumber)
 	{
 	__ASSERT_ALWAYS(aDefaultScreenNumber>=0, Panic(EPanicInvalidScreenNumber));
-	iDefaultScreenNumber=aDefaultScreenNumber;
+	iDefaultScreenNumber = aDefaultScreenNumber;
 	}
 
-EXPORT_C TInt CApaCommandLine::DefaultScreen() const
 /** Extracts and returns the default (startup) screen that was specified in the command line.
 
-@return	A number representing the default (startup) screen.  0 (Zero) if nothing present. */
+@return	A number representing the default (startup) screen.  0 (Zero) if nothing present.
+@publishedAll */
+EXPORT_C TInt CApaCommandLine::DefaultScreen() const
 	{
 	return Max(0, iDefaultScreenNumber);
 	}
 	
+/**
+@publishedAll
+*/
 EXPORT_C TBool CApaCommandLine::IsDefaultScreenSet() const
-/**
-@internalTechnology
-*/
 	{
-	return (iDefaultScreenNumber>=0);
+	return (iDefaultScreenNumber != KErrNotFound);
  	}
 
-EXPORT_C void CApaCommandLine::SetParentWindowGroupID(TInt aParentWindowGroupID)
 /** Sets the ID of the parent window-group - the application should create its own 
 window-group as a child off this parent.
 
 @param aParentWindowGroupID The ID of the parent window-group - the application 
 should create its window-group as a child off this parent. */
+EXPORT_C void CApaCommandLine::SetParentWindowGroupID(TInt aParentWindowGroupID)
 	{
-	iParentWindowGroupID=aParentWindowGroupID;
+	iParentWindowGroupID = aParentWindowGroupID;
 	}
 
-EXPORT_C TInt CApaCommandLine::ParentWindowGroupID() const
 /** Returns the ID of the parent window-group - the application should create its own 
 window-group as a child of this parent.
 
 @return The ID of the parent window-group - the application should create its 
 window-group as a child off this . */
+EXPORT_C TInt CApaCommandLine::ParentWindowGroupID() const
 	{
 	return iParentWindowGroupID;
 	}
 
+/** @internalAll */
 EXPORT_C void CApaCommandLine::SetDebugMemFailL(TInt aDebugMemFail)
-/** @internalAll */
 	{
-	iDebugMemFail=aDebugMemFail;
+	iDebugMemFail = aDebugMemFail;
 	}
 
+/** @internalAll */
 EXPORT_C TInt CApaCommandLine::DebugMemFail() const
-/** @internalAll */
 	{
 	return iDebugMemFail;
 	}
 
+/** @internalAll */
 EXPORT_C void CApaCommandLine::SetAppStartupInstrumentationEventIdBaseL(TInt aAppStartupInstrumentationEventIdBase)
-/** @internalAll */
 	{
-	iAppStartupInstrumentationEventIdBase=aAppStartupInstrumentationEventIdBase;
+	iAppStartupInstrumentationEventIdBase = aAppStartupInstrumentationEventIdBase;
 	}
 
+/** @internalAll */
 EXPORT_C TInt CApaCommandLine::AppStartupInstrumentationEventIdBase() const
-/** @internalAll */
 	{
 	return iAppStartupInstrumentationEventIdBase;
 	}
 
-EXPORT_C TInt CApaCommandLine::EnvironmentSlotForPublicUse(TInt aIndex)
 /** Returns the index of a process environment-slot for public use (in other words, 
 one that is not used internally by CApaCommandLine). The number of slots available 
-for public use can be found in the (private) enum value CApaCommandLine::ENumberOfEnvironmentSlotsForPublicUse, 
-(this value may be increased over time). The returned value can then be passed into 
-any of the Open(TInt,...) functions on RSessionBase, RMutex, RChunk, RCondVar, etc, 
-or into User::GetTIntParameter(), User::GetDesParameter(), etc, depending on the type 
+for public use is returned from NumberOfEnvironmentSlotsForPublicUse(), (this value 
+may be increased over time). The returned value can then be passed into any of the 
+Open(TInt,...) functions on RSessionBase, RMutex, RChunk, RCondVar, etc, or into 
+User::GetTIntParameter(), User::GetDesParameter(), etc, depending on the type 
 of the object in that environment slot.
 
 @param aIndex The logical index of the public environment-slot. This must be greater 
-than or equal to zero, and less than CApaCommandLine::ENumberOfEnvironmentSlotsForPublicUse.
-@return The physical index of an environment-slot in the local process. */
+than or equal to zero, and less than the value returned from NumberOfEnvironmentSlotsForPublicUse().
+@return The physical index of an environment-slot in the local process. 
+@publishedAll
+*/
+EXPORT_C TInt CApaCommandLine::EnvironmentSlotForPublicUse(TInt aIndex)
 	{ // static
-	__ASSERT_ALWAYS((aIndex>=0) && (aIndex<ENumberOfEnvironmentSlotsForPublicUse), Panic(EPanicEnvironmentSlotNotForPublicUse));
-	return EFirstEnvironmentSlotForPublicUse+aIndex;
+	__ASSERT_ALWAYS((aIndex>=0) && (aIndex < ENumberOfEnvironmentSlotsForPublicUse), Panic(EPanicEnvironmentSlotNotForPublicUse));
+	return EFirstEnvironmentSlotForPublicUse + aIndex;
 	}
 
-TInt CApaCommandLine::Parse(const TDesC& aCmdLine)
+/**
+The number of process environment-slot available for public use.
+@publishedAll
+*/
+EXPORT_C TInt CApaCommandLine::NumberOfEnvironmentSlotsForPublicUse()
+	{
+	return ENumberOfEnvironmentSlotsForPublicUse;
+	}
+
+// For use in CApaCommandLine::DoGetParametersFromCommandLineString() only.
+struct SOption
+	{
+	const TDesC* iToken;
+	TInt* iResult;
+	TRadix iRadix;
+	HBufC8* iHBufC8Result;
+	};
+
+TInt CApaCommandLine::DoGetParametersFromCommandLineString(const TDesC& aCmdLine)
 // does the opposite of SetCmdLineL, i.e. sets iDocumentName, iExecutableName, iTailEnd, iCommand, iServerDifferentiator, iDefaultScreenNumber, iParentWindowGroupID , iDebugMemFail & iAppStartupInstrumentationEventIdBase from aCmdLine
 // also sets iOpaqueData
 	{
-	const TInt cmdLength=aCmdLine.Length();
+	const TInt cmdLength = aCmdLine.Length();
+	TInt endLibNameOffset = cmdLength-1;
+	TInt endDocNameOffset = cmdLength-1;
 
-	// these variables are all "shadows" of member variables - we'll set the member variables corresponding to these at the end of this function, once all memory-allocation has succeeded, to make this function atomic
-	TInt endLibNameOffset=cmdLength-1;
-	TInt endDocNameOffset=cmdLength-1;
-	HBufC* documentName=NULL;
-	HBufC* executableName=NULL;
-	HBufC8* tailEnd=NULL;
-	HBufC8* opaqueData=NULL;
-	TApaCommand command=EApaCommandRun;
-	TInt serverDifferentiator=0;
-	TInt defaultScreenNumber=-1;
-	TInt parentWindowGroupID=0;
-	TInt debugMemFail=0;
-	TInt appStartupInstrumentationEventIdBase=0;
-	TInt notUsed;
+	// these variables are all "shadows" of member variables - we'll set the member variables corresponding to these at the end of this function, once all memory-allocation has succeeded, to make this function atomic	
+	HBufC* documentName = NULL;
+	HBufC* executableName = NULL;
+	HBufC8* tailEnd = NULL;
+	HBufC8* opaqueData = NULL;
+	
+	TApaCommand command = EApaCommandRun;
+	TInt serverDifferentiator = 0;
+	TInt defaultScreenNumber = KErrNotFound;
+	TInt parentWindowGroupID = 0;
+	TInt debugMemFail = 0;
+	TInt appStartupInstrumentationEventIdBase = 0;
+	TInt notUsed = 0;
 
-	TBool openQuote=EFalse;
-	TBool foundEndLibName=EFalse;
-	for (TInt i=0; i<cmdLength; ++i)
+	// Look for the name of the executable
+	executableName = NameOfExecutable(aCmdLine, endDocNameOffset);
+	if (!executableName)
+	{
+	delete executableName;
+	return KErrNoMemory;	
+	}
+	
+	// Work out the type of command		
+	const TInt offset = endDocNameOffset-endLibNameOffset;
+	if (offset > 1)
 		{
-		TChar current=aCmdLine[i];
-		if (current=='"')
-			{
-			openQuote=!openQuote;
-			continue;
-			};
-		if ((current==' ') && !openQuote)
-			{
-			// space found outside of quotes
-			if (foundEndLibName)
-				{
-				endDocNameOffset=i-1;
-				break; // parse no further
-				}
-			endLibNameOffset=i-1;
-			foundEndLibName=ETrue;
-			}
-		}
-	if (endLibNameOffset>-1)
-		{
-		executableName=StripQuotes(aCmdLine.Left(endLibNameOffset+1)).Alloc();
-		if (executableName==NULL)
-			{
-			delete documentName;
-			delete executableName;
-			delete tailEnd;
-			delete opaqueData;
-			return KErrNoMemory;
-			}
-		}
-	TInt offset=endDocNameOffset-endLibNameOffset;
-	if (offset>1)
-		{
-		TChar commandLetter=aCmdLine[endLibNameOffset+2];
+		const TChar commandLetter = aCmdLine[endLibNameOffset+2];
 		switch (commandLetter)
 			{
 		case KApaCommandLetterOpen:
-			command=EApaCommandOpen;
+			command = EApaCommandOpen;
 			break;
 		case KApaCommandLetterCreate:
-			command=EApaCommandCreate;
+			command = EApaCommandCreate;
 			break;
 		case KApaCommandLetterViewActivate:
-			command=EApaCommandViewActivate;
+			command = EApaCommandViewActivate;
 			break;
 		case KApaCommandLetterRunWithoutViews:
-			command=EApaCommandRunWithoutViews;
+			command = EApaCommandRunWithoutViews;
 			break;
 		case KApaCommandLetterBackgroundAndWithoutViews:
-			command=EApaCommandBackgroundAndWithoutViews;
+			command = EApaCommandBackgroundAndWithoutViews;
 			break;
 		case KApaCommandLetterRun:
 		default:
 			break;
 		case KApaCommandLetterBackground:
-			command=EApaCommandBackground;
+			command = EApaCommandBackground;
 			break;
 			}
 
-		if (offset>2)
+	// Get the name of the document file, if any.
+	if (offset > 2)
+		{
+		const TInt documentNameStartPosition = endLibNameOffset+3;
+		documentName = StripQuotes(aCmdLine.Mid(documentNameStartPosition, (endDocNameOffset+1)-documentNameStartPosition)).Alloc();
+		if (!documentName)
 			{
-			const TInt documentNameStartPosition=endLibNameOffset+3;
-			documentName=StripQuotes(aCmdLine.Mid(documentNameStartPosition, (endDocNameOffset+1)-documentNameStartPosition)).Alloc();
-			if (documentName==NULL)
-				{
-				delete documentName;
-				delete executableName;
-				delete tailEnd;
-				delete opaqueData;
-				return KErrNoMemory;
-				}
+			delete executableName;
+			delete documentName;
+			return KErrNoMemory;			
 			}
 		}
-	const TInt KNumberOfSupportedOptions=6;
+	}
+	
+	// Translate the command line tokens into their corresponing options
+	const TInt KNumberOfSupportedOptions = 6;
 	TFixedArray<SOption, KNumberOfSupportedOptions> optionArray;
-	optionArray[0].iToken=&KLitTokenServerDifferentiator;
-	optionArray[0].iResult=&serverDifferentiator;
-	optionArray[0].iRadix=EDecimal;
-	optionArray[1].iToken=&KLitTokenDefaultScreenNumber;
-	optionArray[1].iResult=&defaultScreenNumber;
-	optionArray[1].iRadix=EDecimal;
-	optionArray[2].iToken=&KLitTokenParentWindowGroupID;
-	optionArray[2].iResult=&parentWindowGroupID;
-	optionArray[2].iRadix=EDecimal;
-	optionArray[3].iToken=&KLitTokenDebugMemFail;
-	optionArray[3].iResult=&debugMemFail;
-	optionArray[3].iRadix=EHex;
-	optionArray[4].iToken=&KLitTokenAppStartupInstrumentationEventIdBase;
-	optionArray[4].iResult=&appStartupInstrumentationEventIdBase;
-	optionArray[4].iRadix=EDecimal;
-	optionArray[5].iToken=&KLitTokenOpaqueData;
-	optionArray[5].iResult=&notUsed;
-	optionArray[5].iRadix=EDecimal; // should not used if the command-line is well-formed
+	optionArray[0].iToken = &KLitTokenServerDifferentiator;
+	optionArray[0].iResult = &serverDifferentiator;
+	optionArray[0].iRadix = EDecimal;
+	optionArray[1].iToken = &KLitTokenDefaultScreenNumber;
+	optionArray[1].iResult = &defaultScreenNumber;
+	optionArray[1].iRadix = EDecimal;
+	optionArray[2].iToken = &KLitTokenParentWindowGroupID;
+	optionArray[2].iResult = &parentWindowGroupID;
+	optionArray[2].iRadix = EDecimal;
+	optionArray[3].iToken = &KLitTokenDebugMemFail;
+	optionArray[3].iResult = &debugMemFail;
+	optionArray[3].iRadix = EHex;
+	optionArray[4].iToken = &KLitTokenAppStartupInstrumentationEventIdBase;
+	optionArray[4].iResult = &appStartupInstrumentationEventIdBase;
+	optionArray[4].iRadix = EDecimal;
+	optionArray[5].iToken = &KLitTokenOpaqueData;
+	optionArray[5].iResult = &notUsed;
+	optionArray[5].iRadix = EDecimal; // should not used if the command-line is well-formed
+	
 	TLex lex(aCmdLine.Mid(endDocNameOffset+1));
 	lex.Mark();
-	for (TInt optionIndex=0; optionIndex<KNumberOfSupportedOptions; ++optionIndex)
+	for (TInt optionIndex = 0; optionIndex < KNumberOfSupportedOptions; ++optionIndex)
 		{
 		lex.SkipSpace();
-		SOption& option=optionArray[optionIndex];
+		const SOption& option = optionArray[optionIndex];
 		const TPtrC remainder(lex.Remainder());
 		__ASSERT_DEBUG(option.iToken, Panic(EDPanicInvalidToken));
-		const TInt tokenLength=option.iToken->Length();
-		if ((remainder.Length()>=tokenLength) && (remainder.Left(tokenLength).CompareF(*option.iToken)==0))
+		const TInt tokenLength = option.iToken->Length();
+		if ((remainder.Length() >= tokenLength) && (remainder.Left(tokenLength).CompareF(*option.iToken) == 0))
 			{
-			if (option.iToken==&KLitTokenOpaqueData)
+			if (option.iToken == &KLitTokenOpaqueData)
 				{
 				TInt endOfOpaqueDataIndex = 0;			
-				for (TInt i=tokenLength; i<remainder.Length(); ++i)
+				for (TInt i = tokenLength; i < remainder.Length(); ++i)
 					{
-					TChar current=remainder[i];
-					if (current==' ')
+					const TChar current = remainder[i];
+					if (current == ' ')
 						{
 						endOfOpaqueDataIndex = i;
 						break; // parse no further
 						}
 					}
+					
 				if(endOfOpaqueDataIndex > tokenLength)
 					{
 					const TInt opaqueDataLength = endOfOpaqueDataIndex - tokenLength;
 					delete opaqueData;
-					opaqueData=TPtrC8(reinterpret_cast<const TUint8*>(remainder.Mid(tokenLength, opaqueDataLength).Ptr()),opaqueDataLength*sizeof(TText)).Alloc();
-					if (opaqueData==NULL)
+					opaqueData = TPtrC8(reinterpret_cast<const TUint8*>(remainder.Mid(tokenLength, opaqueDataLength).Ptr()),opaqueDataLength*sizeof(TText)).Alloc();
+					if (!opaqueData)
 						{
+						delete executableName;
 						delete documentName;
-						delete executableName;
-						delete tailEnd;
-						return KErrNoMemory;
+						delete opaqueData;
+						return KErrNoMemory;						
 						}
+					
 					lex.Inc(tokenLength + opaqueDataLength);
 					lex.Mark();
 					}
@@ -738,78 +780,117 @@
 			else
 				{
 				ASSERT(option.iResult);
-				const TInt originalValue=*option.iResult;
+				const TInt originalValue = *option.iResult;
 				lex.Inc(tokenLength);
 				TUint16 val = static_cast<TUint16> (*option.iResult);
-				if (lex.Val(val, option.iRadix)==KErrNone)
-					{
+				if (lex.Val(val, option.iRadix) == KErrNone)
 					lex.Mark();
-					}
 				else
-					{
-					*option.iResult=originalValue;
-					}
+					*option.iResult = originalValue;
 				}
 			}
 		}
+		
 	lex.UnGetToMark();
 	lex.SkipSpace();
+	
+	// Get the tail end
 	const TPtrC remainder(lex.Remainder());
-	const TInt lengthOfRemainder=remainder.Length();
-	if (lengthOfRemainder>0)
+	const TInt lengthOfRemainder = remainder.Length();
+	if (lengthOfRemainder > 0)
 		{
-		tailEnd=TPtrC8(reinterpret_cast<const TUint8*>(remainder.Ptr()),lengthOfRemainder*sizeof(TText)).Alloc();
-		if (tailEnd==NULL)
+		tailEnd = TPtrC8(reinterpret_cast<const TUint8*>(remainder.Ptr()),lengthOfRemainder*sizeof(TText)).Alloc();
+		if (!tailEnd)
 			{
+			delete executableName;
 			delete documentName;
-			delete executableName;
+			delete opaqueData;
 			delete tailEnd;
-			delete opaqueData;
-			return KErrNoMemory;
+			return KErrNoMemory;		
 			}
 		}
 
-	// we can now set the member variables as all memory-allocation has succeeded
-	delete iDocumentName;
-	iDocumentName=documentName;
-	delete iExecutableName;
-	iExecutableName=executableName;
-	delete iTailEnd;
-	iTailEnd=tailEnd;
-	iCommand=command;
-	iServerDifferentiator=serverDifferentiator;
-	iDefaultScreenNumber=defaultScreenNumber;
-	iParentWindowGroupID=parentWindowGroupID;
-	iDebugMemFail=debugMemFail;
-	iAppStartupInstrumentationEventIdBase=appStartupInstrumentationEventIdBase;
-	delete iOpaqueData;
-	iOpaqueData = opaqueData;
+	// Free any existing memory
+	iDocumentName.Close();
+	iExecutableName.Close();
+	iTailEnd.Close();
+	iOpaqueData.Close();
+	
+	// Set the member variables, as all memory-allocations have succeeded.
+	iDocumentName.Assign(documentName);
+	iExecutableName.Assign(executableName);
+	iTailEnd.Assign(tailEnd);
+	iOpaqueData.Assign(opaqueData);
+	iCommand = command;
+	iServerDifferentiator = serverDifferentiator;
+	iDefaultScreenNumber = defaultScreenNumber;
+	iParentWindowGroupID = parentWindowGroupID;
+	iDebugMemFail = debugMemFail;
+	iAppStartupInstrumentationEventIdBase = appStartupInstrumentationEventIdBase;
+	
 	return KErrNone;
 	}
 
-TPtrC CApaCommandLine::StripQuotes(const TDesC& aDes) const
+/**
+Get the name of the executable from the command line string.
+@internalTechnology
+*/
+HBufC* CApaCommandLine::NameOfExecutable(const TDesC& aCmdLine, TInt& aEndDocNameOffset)
+	{
+	const TInt cmdLength = aCmdLine.Length();
+
+	TBool openQuote = EFalse;
+	TBool foundEndLibName = EFalse;
+	for (TInt i = 0; i < cmdLength; ++i)
+		{
+		const TChar current = aCmdLine[i];
+		if (current=='"')
+			{
+			openQuote = !openQuote;
+			continue;
+			};
+			
+		if ((current==' ') && !openQuote)
+			{
+			// space found outside of quotes
+			if (foundEndLibName)
+				{
+				aEndDocNameOffset = i-1;
+				break; // parse no further
+				}
+				
+			aEndDocNameOffset = i-1;
+			foundEndLibName = ETrue;
+			}
+		}
+		
+	return (aEndDocNameOffset > -1 ? StripQuotes(aCmdLine.Left(aEndDocNameOffset+1)) : KNullDesC()).Alloc();
+	}
+
+/**
+Strip all quates from the string.
+*/
+TPtrC CApaCommandLine::StripQuotes(const TDesC& aDes)
 	//
 	// return aDes stripped of any enclosing quotes 
 	//
 	{
-	TInt start=0;
-	TInt end=aDes.Length()-1;
+	TInt start = 0;
+	TInt end = aDes.Length()-1;
 	TPtrC ret;
-	if (end>=0)
+	if (end >= 0)
 		{
-		if (aDes[0]=='"')
-			{
+		if (aDes[0] == '"')
 			start++;
-			}
-		if (aDes[end]=='"')
-			{
+
+		if (aDes[end] == '"')
 			end--;
-			}
-		TInt length=end-start+1;
-		if (length>0)
-			{
+
+		const TInt length = end-start+1;
+		if (length > 0)
 			ret.Set(aDes.Mid(start, length));
-			}
 		}
+	
 	return ret;
 	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/apparc/APADBASE.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,219 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apadbase.cpp
+//
+
+#include <apadbase.h>
+#include "APASTD.H" // Panics etc.
+
+const TUid KUidApaDoorBaseStream = {0x10003A36};
+
+//
+// CApaDoorBase
+//
+
+EXPORT_C CApaDoorBase::CApaDoorBase()
+	{
+	}
+
+EXPORT_C void CApaDoorBase::ExternalizeBaseStreamL(CStreamStore& aStore,CStreamDictionary& aStreamDict)const
+/** Externalises the information contained in this base class to a stream in the 
+specified store.
+
+The resulting stream ID is associated with an internal UID, and placed in 
+the specified stream dictionary.
+
+@publishedAll
+@released
+@param aStore The store to contain the stream.
+@param aStreamDict The stream dictionary to contain the stream ID (and an associated 
+internal UID). */
+	{
+	RStoreWriteStream stream;
+	TStreamId id=stream.CreateLC(aStore);
+	//
+	// write the format
+	if (iFormat==ETemporarilyIconic)
+		stream.WriteInt8L(EGlassDoor);
+	else
+		stream.WriteInt8L(iFormat);
+	//
+	// write the size
+	TSize size;
+	if (iFormat==ETemporarilyIconic)
+		size = GlassDoorSize();
+	else
+		GetSizeInTwips(size);
+	stream<< size;
+	// 
+	// write the source and close
+	stream<< iSource;
+	stream.CommitL();
+	CleanupStack::PopAndDestroy(); // stream
+	aStreamDict.AssignL(KUidApaDoorBaseStream,id);
+	}
+
+
+
+EXPORT_C TSize CApaDoorBase::InternalizeBaseStreamL(const CStreamStore& aStore,const CStreamDictionary& aStreamDict)
+/** Internalises the information for this base class from a stream in the specified 
+store, and returns the size of the icon or glass door.
+
+The stream ID is extracted from the specified stream dictionary. The UID associated 
+with the stream ID is the same as that used when externalising.
+
+@publishedAll 
+@released
+@param aStore The store containing the stream.
+@param aStreamDict The steam dictionary containing the stream ID.
+@return The size of the icon or glass door, in twips. */
+	{
+	TStreamId id=aStreamDict.At(KUidApaDoorBaseStream);
+	if (id==KNullStreamId)
+		User::Leave(KErrCorrupt); //  there is no base stream - the file is not valid (used to panic EPanicNoBaseDoorStream)
+	RStoreReadStream stream;
+	stream.OpenLC(aStore,id);
+	iFormat = (TFormat)stream.ReadInt8L();
+	__ASSERT_DEBUG(iFormat==EIconic || iFormat==EGlassDoor,Panic(EDPanicIllegalDoorFormat));
+	TSize size;
+	stream>> size;
+	stream>> iSource;
+	CleanupStack::PopAndDestroy(); // stream
+	return size;
+	}
+
+// Virtual functions from CPicture
+
+EXPORT_C TStreamId CApaDoorBase::StoreL(CStreamStore& aStore) const
+/** Stores the Embedded Document to the specified store.
+
+@publishedAll 
+@released
+@param aStore The store containing the stream.
+@return The ID of the (head) stream used to store the Embedded Document */
+	{
+	return CPicture::StoreL(aStore);
+	}
+
+EXPORT_C void CApaDoorBase::SetScaleFactor(TInt aScaleFactorWidth,TInt aScaleFactorHeight)
+/** Sets the Embedded Document's scale factors
+
+@publishedAll 
+@released
+@param aScaleFactorWidth The width scale factor, in percent
+@param aScaleFactorHeight The height scale factor, in percent
+*/
+	{
+	CPicture::SetScaleFactor(aScaleFactorWidth, aScaleFactorHeight);
+	}
+
+EXPORT_C void CApaDoorBase::SetCropInTwips(const TMargins& aMargins)
+/** Sets the cropping margins of a Embedded Document in twips.
+These are relative to the original unscaled size of the Embedded Document.
+
+@publishedAll 
+@released
+@param aMargins The cropping margins of the Embedded Document, in twips
+*/	
+	{
+	CPicture::SetCropInTwips(aMargins);
+	}
+	
+EXPORT_C TPictureCapability CApaDoorBase::Capability() const
+/** Gets the Embedded Document's capabilities.
+These include whether it is scalable and croppable.
+
+@publishedAll 
+@released
+@return The capabilities of the Embedded Document
+*/
+	{
+	return CPicture::Capability();
+	}
+	
+EXPORT_C void CApaDoorBase::GetCropInTwips(TMargins& aMargins) const 
+/** Gets the cropping margins of a Embedded Document in twips.
+These margins are relative to the original unscaled size of the Embedded Document.
+
+@publishedAll 
+@released
+@param aMargins The cropping margins of the Embedded Document, in twips 
+*/
+	{
+	CPicture::GetCropInTwips(aMargins);
+	}
+
+EXPORT_C TInt CApaDoorBase::ScaleFactorWidth() const
+/** Gets the Embedded Document's width scale factor.
+
+@publishedAll 
+@released
+@return The width scale factor, in percent
+*/	
+	{
+	return CPicture::ScaleFactorWidth();
+	}
+
+EXPORT_C TInt CApaDoorBase::ScaleFactorHeight() const
+/** Gets the Embedded Document height scale factor.
+
+@publishedAll 
+@released
+@return The height scale factor, in percent
+*/
+	{
+	return CPicture::ScaleFactorHeight();
+	}
+
+EXPORT_C TBool CApaDoorBase::LineBreakPossible(TUint aClass,TBool aBeforePicture,TBool aHaveSpaces) const
+/** States whether a line break is possible, either before or after an Embedded Document.
+The default implementation returns ETrue, implying that there is a break opportunity both before and after the Embedded Document, whether or not a space is present.
+This may be overridden for special types of Embedded Documents.
+
+@publishedAll 
+@released
+@param aClass The line breaking class of the adjacent character
+@param aBeforePicture ETrue, if the adjacent character is before the Embedded Document; EFalse, if the adjacent character is afterwards
+@param aHaveSpaces ETrue, if spaces occur between the adjacent character and the Embedded Document; EFalse, otherwise
+@return ETrue, if a line break is possible; EFalse, otherwise. 
+*/	
+	{
+	return CPicture::LineBreakPossible(aClass, aBeforePicture, aHaveSpaces);
+	}
+
+EXPORT_C TBool CApaDoorBase::NativePixelSize(TSize& aPixelSize)
+/** Returns the native pixel size of the bitmap. 
+
+Derived classes might be implemented as bitmaps, in that case it might be interesting to know this.
+@publishedAll 
+@released
+@param aPixelSize The pixel size
+@return TBool ETrue, if the derived classes are implemented as bitmaps; EFalse, otherwise.
+*/	
+	{
+	return const_cast<CApaDoorBase*>(this)->CPicture::NativePixelSize(aPixelSize);	// CPicture::NativePixelSize() is logical const
+	}
+
+/** Reserved for future use */
+EXPORT_C void CApaDoorBase::CApaDoorBase_Reserved1()
+	{
+	}
+
+/** Reserved for future use */
+EXPORT_C void CApaDoorBase::CApaDoorBase_Reserved2()
+	{
+	}
+
+
+
--- a/localisation/apparchitecture/apparc/APADLL.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/APADLL.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,60 +11,45 @@
 // Contributors:
 //
 // Description:
+// apadll.h
 //
 
 #ifndef __APADLL_H__
 #define __APADLL_H__
 
-#if !defined(__E32STD_H__)
 #include <e32std.h>
-#endif
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-#if !defined(__APADEF_H__)
 #include <apadef.h>
-#endif
-#if !defined(__APPARC_H__)
 #include <apparc.h>
-#endif
+
+class CApaApplication;
+
+NONSHARABLE_CLASS(RApaApplication)
+	{
+public:
+	RApaApplication();
+	void Close();
+	void CreateApplicationL(TApaApplicationFactory aApplicationFactory); // Uses the factory to create the application
+	
+	TFileName AppFileName() const;
+	TUid AppFileUid() const;
+	CApaApplication* Application();
+	inline const CApaApplication* Application() const;
+	void ScheduleForAsyncDeletion(TBool aDoDelete = ETrue);
+	TBool IsScheduleForAsyncDeletion() const;
+private:
+	~RApaApplication();
+private:
+	CApaApplication* iApplication;
+	RBuf iAppName;
+	TUid iFileUid;
+	TBool iScheduledForDeletion;
+	};
 
 
-// classes referenced
-class CApaApplication;
-class RFs;
-
-NONSHARABLE_CLASS(CApaAppHolder) : public CBase
-/** Provides an interface for obtaining data gathered differently for DLLs and EXEs. Derived
-classes create and own the application object. The equivalent of the old CApaDll derives from this.*/
-{
-public:
-	CApaAppHolder();
-	~CApaAppHolder();
-
-	virtual TFileName FileName() const = 0;
-	virtual TUid Uid() const = 0;
-	virtual CApaApplication* Application() const = 0;
+// inlines
 
-protected:
-	void UpdateAppsRefToThis();
-};
-
-NONSHARABLE_CLASS(CApaExe) : public CApaAppHolder
-	{
-public:
-	CApaExe();
-	~CApaExe();
+const CApaApplication* RApaApplication::Application() const
+	{ return const_cast<RApaApplication*>(this)->Application(); }
 
-	TFileName FileName() const;
-	TUid Uid() const;
-	CApaApplication* Application() const;
-
-	void CreateApplicationL(TApaApplicationFactory aApplicationFactory); // Uses the factory to create the application
-private:
-	CApaApplication* iApplication;
-	HBufC* iAppName;
-	TUid iFileUid;
-	};
-
-#endif
+#endif	// __APADLL_H__
--- a/localisation/apparchitecture/apparc/APAFLREC.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/APAFLREC.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,6 +11,7 @@
 // Contributors:
 //
 // Description:
+// apaflrec.cpp
 //
 
 #include <f32file.h>
@@ -19,306 +20,7 @@
 #include <apacmdln.h>
 #include "APASTD.H"
 #include "APGCLI.H"
-
-#ifdef USING_ECOM_RECOGS
 #include <ecom/ecom.h>
-#endif
-
-//
-//CFileRecognizerExtension Class
-//
-//stores the destructor key to track the instance of ecom implementation class
-class CFileRecognizerExtension : public CBase
- 	{
-public:
-	static CFileRecognizerExtension* NewL(TUid aDtorKey);
- 	~CFileRecognizerExtension();
-	//returns the destructor key
- 	TUid DestructorUid()const;
-private:
-	CFileRecognizerExtension(TUid aDtorKey);
-private:
- 	//destructor key to track the instance of ecom implementation class
-	TUid iDtorKey;
-	};
-
-//
-// Class CApaFileRecognizer
-//
-
-EXPORT_C CApaFileRecognizer::CApaFileRecognizer(RFs& aFs)
-	:iFs(aFs)
-	{}
-
-
-EXPORT_C CApaFileRecognizer::~CApaFileRecognizer()
-	{
-	DestroyRecognizerList();
-	delete iAppLocator;
-	//lint -esym(1740,CApaFileRecognizer::iFileRecognizerList) not directly freed - see DestroyRecognizerList()
-	}
-
-	
-EXPORT_C void CApaFileRecognizer::DestroyRecognizerList()
-// this method exists to allow subclassers to destroy the list earlier if they wish
-	{
-	CApaFileRecognizerType* rec=iFileRecognizerList;
-	//delete one element after the other in the list
-	while (rec!=NULL )
-		{
-		CApaFileRecognizerType* prev=NULL;
-		prev = rec;
-		rec=rec->iNext;
-		delete prev;
-		}
-	iFileRecognizerList=NULL;
-	}
-
-
-EXPORT_C void CApaFileRecognizer::SetAppLocator(CApaAppLocator* aAppLocator)
-// takes ownership of the locator
-	{
-	iAppLocator = aAppLocator;
-	}
-
-static TUidType UidTypeL(const TDesC& aFullFileName, const RFs& aFs)
-	{	
-	_LIT(KSysBin, "\\sys\\bin\\");
-	if (TParsePtrC(aFullFileName).Path().CompareF(KSysBin)==0)
-		{
-		RLoader loader;
-		User::LeaveIfError(loader.Connect());
-		CleanupClosePushL(loader);
-		TPckgBuf<RLibrary::TInfo> dllInfo;
-		User::LeaveIfError(loader.GetInfo(aFullFileName, dllInfo));
-		CleanupStack::PopAndDestroy(&loader);
-		return dllInfo().iUids;
-		}
-	TEntry entry;
-	User::LeaveIfError(aFs.Entry(aFullFileName,entry));
-	return entry.iType;
-	}
-
-EXPORT_C CApaFileRecognizerType* CApaFileRecognizer::RecognizeFileL(const TDesC& aFullFileName,const TUidType* aUidType)
-// Returns the specific recognizer if the file is recogized as a runnable file. or NULL if not.
-// TUidType is optional, if not supplied it will be read from the file.
-// Leaves, if any files required cannot be found or if OOM.
-// Leaves with KErrNotSupported, if file cannot be recognized.
-	{
-	const TUidType uidType((aUidType!=NULL)? *aUidType: UidTypeL(aFullFileName, iFs));
-	CApaFileRecognizerType* rec=iFileRecognizerList;
-	CApaFileRecognizerType::TRecognizedType type;
-	while (rec!=NULL)
-		{
-		type=rec->RecognizeFileL(iFs,aFullFileName,uidType);
-		if (type==CApaFileRecognizerType::EOtherFile)	
-			{
-			rec=NULL;						// Recognised but not runnable so stop search now
-			break;
-			}
-		if (type!=CApaFileRecognizerType::ENotRecognized)
-			{
- 			break;
-			}
-		rec=rec->iNext;
-		}
-	if (rec==NULL)
-		{
-		User::Leave(KErrNotSupported);
-		}
-	return rec;
-	}
-
-EXPORT_C void CApaFileRecognizer::AddFileRecognizerType(CApaFileRecognizerType* aFileRecognizerType)
-// Add given RecognizerType to the end of the recognizer list.
-// Set's it's iFileRecognizer pointer to "this" - recognizers may call AppDataByUid
-	{
-	aFileRecognizerType->iNext=NULL;
-	aFileRecognizerType->iFileRecognizer=this;
-	CApaFileRecognizerType* rec=iFileRecognizerList;
-	if (rec==NULL)
-		iFileRecognizerList=aFileRecognizerType;
-	else
-		{
-		while (rec->iNext!=NULL)
-			rec=rec->iNext;
-		rec->iNext=aFileRecognizerType;
-		}
-	}
-
-
-EXPORT_C TInt CApaFileRecognizer::RemoveFileRecognizerType(const CApaFileRecognizerType* aFileRecognizerType)
-// remove the given recognizer from the list if it is not locked
-// return an error code if removal failed
-	{
-	CApaFileRecognizerType* rec=iFileRecognizerList;
-	CApaFileRecognizerType* prev=NULL;
-	// find the recognizer in the list
-	while (rec!=NULL && rec!=aFileRecognizerType)
-		{
-		prev = rec;
-		rec=rec->iNext;
-		}
-	// did we find a match
-	if (!rec)
-		return KErrNotFound;
-	// is the matching recognizer locked
-	if (rec->Locked())
-		return KErrLocked;
-	// remove the recognizer from the list, then delete it
-	if (prev)
-		prev->iNext = rec->iNext;
-	else
-		iFileRecognizerList = rec->iNext;
-	rec->iNext = NULL;
-	delete rec;
-	return KErrNone;
-	}
-
-
-EXPORT_C CApaAppLocator* CApaFileRecognizer::AppLocator() const
-	{
-	__ASSERT_ALWAYS(iAppLocator,Panic(EPanicNoAppLocator));
-	//
-	return iAppLocator;
-	}
-
-
-//
-// Class CApaFileRecognizerType
-//
-
-EXPORT_C CApaFileRecognizerType::CApaFileRecognizerType():iFileRecognizerExtn(NULL)
-	{
-	}
-
-
-EXPORT_C CApaFileRecognizerType::~CApaFileRecognizerType()
-	{
-#ifdef USING_ECOM_RECOGS
-	//if ecom plugin is used destroy its implementation
-	if(iFileRecognizerExtn!=NULL)
-		{
-		REComSession::DestroyedImplementation(iFileRecognizerExtn->DestructorUid());
-		delete iFileRecognizerExtn;
-		}
-#else
-	iFileRecognizerExtn = NULL;
-#endif
-	delete iCapabilityBuf;
-	delete iFullFileName;
-	iFileRecognizer = NULL;
-	iAppStarter = NULL;
-	iNext = NULL;
-	}
-
-EXPORT_C TThreadId CApaFileRecognizerType::AppRunL(const CApaCommandLine& aCommandLine) const
-	{
-	__ASSERT_ALWAYS(iAppStarter,Panic(EPanicNoAppStarter));
-	//
-	return iAppStarter->StartAppL(aCommandLine);
-	}
-
-CApaFileRecognizerType::TRecognizedType CApaFileRecognizerType::RecognizeFileL(RFs& aFs,const TDesC& aFullFileName,TUidType aUidType)
-	{
-	// set the UID's and name
-	iFileType = aUidType[1];
-	iAppUid = aUidType[2];
-	delete iFullFileName;
-	iFullFileName = NULL;
-	iFullFileName = aFullFileName.AllocL();
-	//
-	// see if we recognize it
-	iRecognizedType = ENotRecognized;
-	TRecognizedType type=DoRecognizeFileL(aFs,aUidType);
-	if (type==ENotRecognized)
-		{
-		delete iFullFileName;
-		iFullFileName=NULL;
-		}
-	else
-		{
-		if(!iCapabilityBuf)
-			{
-			// Actually, iCapabilityBuf is not needed anymore, but in order not to break BC,
-			// we must still support it (in case someone calls CApaFileRecognizerType::Capability).
-			iCapabilityBuf = new(ELeave) TApaAppCapabilityBuf;
-			iCapabilityBuf->FillZ(iCapabilityBuf->MaxLength());
-			}
-		}
-	return type;
-	}
-
-
-EXPORT_C void CApaFileRecognizerType::Capability(TDes8& aCapabilityBuf)const
-	{
-	__ASSERT_ALWAYS(iCapabilityBuf,Panic(EPanicCapabilityNotSet)); // capability has been called when no file has been recognized
-	//
-	TApaAppCapability::CopyCapability(aCapabilityBuf,*iCapabilityBuf);
-	}
-
-
-EXPORT_C void CApaFileRecognizerType::Lock()
-	{
-	iLock++;
-	}
-
-
-EXPORT_C void CApaFileRecognizerType::Unlock()
-	{
-	if (iLock>0)
-		iLock--;
-	}
-
-
-TBool CApaFileRecognizerType::Locked()const
-	{
-	return (iLock>0);
-	}
-
-EXPORT_C void CApaFileRecognizerType::Reserved_1()
-	{}
-
-#ifdef USING_ECOM_RECOGS
-// instantiate the ecom implementation class 
-EXPORT_C CApaFileRecognizerType* CApaFileRecognizerType::CreateFileRecognizerL(TUid aImplUid)
-	{
-	CApaFileRecognizerType* fileRecType = NULL;
-	TUid tempDtorKey = KNullUid;
-	fileRecType = static_cast<CApaFileRecognizerType*>(REComSession::CreateImplementationL(aImplUid, tempDtorKey));
-	CleanupStack::PushL(fileRecType);
-	fileRecType->iFileRecognizerExtn=CFileRecognizerExtension::NewL(tempDtorKey);
-	CleanupStack::Pop(fileRecType);
-	return fileRecType;
-	}
-#else
-EXPORT_C CApaFileRecognizerType* CApaFileRecognizerType::CreateFileRecognizerL(TUid)
-	{
-	return NULL;
-	}
-#endif
-
-CFileRecognizerExtension::CFileRecognizerExtension(TUid aDtorKey)
- 	:iDtorKey(aDtorKey)
- 	{
-	}
-
-CFileRecognizerExtension* CFileRecognizerExtension::NewL(TUid aDtorKey)
-	{
-	//instantiate CFileRecognizerExtension with the destructor key of the ecom implentation instance
-	CFileRecognizerExtension* self=new(ELeave) CFileRecognizerExtension(aDtorKey);
-	return self;
-	}
-
-CFileRecognizerExtension::~CFileRecognizerExtension()
- 	{
- 	}
-
-//returns the destructor key of the ecom implentation instance
-TUid CFileRecognizerExtension::DestructorUid()const
- 	{
- 	return iDtorKey;
- 	}
 
 //
 // MApaAppStarter
--- a/localisation/apparchitecture/apparc/APAID.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/APAID.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,136 +11,84 @@
 // Contributors:
 //
 // Description:
+// apaid.cpp
 //
-
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APAID_PARTNER_H__)
+#include "apaidpartner.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apaid.h>
 #include <s32strm.h>
 #include "APASTD.H"
 
+const TInt KMaxOpaqueDataLength = 0x1000; // maximum length of opaque data that can be passed between client and apparc server via a TApaAppServiceInfo object - this can be increased in future if needed
 
-/////////////////////////////
+//
 // TApaAppIdentifier
-/////////////////////////////
+//
 
-EXPORT_C TApaAppIdentifier::TApaAppIdentifier()
 /** Constructs an empty application identifier.
 
 The data is not initialised. */
+EXPORT_C TApaAppIdentifier::TApaAppIdentifier()
 	{}
 
-EXPORT_C TApaAppIdentifier::TApaAppIdentifier(TUid aAppUid,const TFileName& aDllName)
-	: iAppUid(aAppUid),
-	iFullName(aDllName)
 /** Constructs an application identifier from the specified application 
 DLL file name and extension, and the specified application UID.
 @param aAppUid The application specific UID.
 @param aDllName The filename and extension of the application DLL. */
+EXPORT_C TApaAppIdentifier::TApaAppIdentifier(TUid aAppUid,const TFileName& aDllName)
+	: iAppUid(aAppUid),
+	iFullName(aDllName)
 	{}
 
-EXPORT_C void TApaAppIdentifier::ExternalizeL(RWriteStream& aStream)const
 /** Externalises the application identifier to a write stream.
 
 @param aStream The write stream. */
+EXPORT_C void TApaAppIdentifier::ExternalizeL(RWriteStream& aStream)const
 	{
 	aStream<< iAppUid;
 	aStream<< iFullName;
 	}
 
-EXPORT_C void TApaAppIdentifier::InternalizeL(RReadStream& aStream)
 /** Internalises the application identifier from a read stream.
 
 @param aStream The read stream. */
+EXPORT_C void TApaAppIdentifier::InternalizeL(RReadStream& aStream)
 	{
 	aStream>> iAppUid;
 	aStream>> iFullName;
 	}
 
-/////////////////////////////
-// TApaAppEntry
-/////////////////////////////
-
-EXPORT_C TApaAppEntry::TApaAppEntry()
-	: iUidType(TUidType()),
-	iFullName(KNullDesC)
-/** Constructs an empty application entry object.
-
-The full path name is empty, and the triplet of UIDs forming the UID type 
-are set to null UIDs. */
-	{}
-
-
-EXPORT_C TApaAppEntry::TApaAppEntry(const TUidType& aAppUidType,const TFileName& aDllName)
-	: iUidType(aAppUidType),
-	iFullName(aDllName)
-/** Constructs an application entry object from the specified application 
-DLL full path name and UID type. 
-@param aAppUidType UID type.
-@param aDllName Application DLL full path name. */
-	{}
-
-
-EXPORT_C void TApaAppEntry::ExternalizeL(RWriteStream& aStream)const
-/** Externalises the application entry to a write stream.
+//
+// TApaAppInfo
+//
 
-@param aStream The write stream. */
-	{
-	aStream<< iUidType[0];
-	aStream<< iUidType[1];
-	aStream<< iUidType[2];
-	aStream<< iFullName;
-	}
-
-
-EXPORT_C void TApaAppEntry::InternalizeL(RReadStream& aStream)
-/** Internalises the application entry from a read stream.
+/** Constructs an empty application information object.
 
-@param aStream The read stream. */
-	{
-	TUid uid1;
-	TUid uid2;
-	TUid uid3;
-	aStream>> uid1;
-	aStream>> uid2;
-	aStream>> uid3;
-	iUidType = TUidType(uid1,uid2,uid3);
-	aStream>> iFullName;
-	}
-
-
-/////////////////////////////
-// TApaAppInfo
-/////////////////////////////
-
+The full path name is empty, the captions are empty and the application specific 
+UID is set to the null UID. */
 EXPORT_C TApaAppInfo::TApaAppInfo()
 	: iUid(TUid()),
 	iFullName(KNullDesC),
 	iCaption(KNullDesC),
 	iShortCaption(KNullDesC)
-/** Constructs an empty application information object.
-
-The full path name is empty, the captions are empty and the application specific 
-UID is set to the null UID. */
 	{}
 
-
-EXPORT_C TApaAppInfo::TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption)
-	: iUid(aAppUid),
-	iFullName(aDllName),
-	iCaption(aCaption),
-	iShortCaption(aCaption)
 /** Constructs an application information object from the specified full DLL path 
 name, UID and full length caption.
 
 @param aAppUid The application specific UID. 
 @param aDllName The full path name of the application DLL. 
 @param aCaption The application caption. */
-	{}
-
-EXPORT_C TApaAppInfo::TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption,const TApaAppCaption& aShortCaption)
+EXPORT_C TApaAppInfo::TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption)
 	: iUid(aAppUid),
 	iFullName(aDllName),
 	iCaption(aCaption),
-	iShortCaption(aShortCaption)
+	iShortCaption(aCaption)
+	{}
+
 /** Constructs an application information object from the specified full DLL path 
 name, UID, caption and short caption.
 
@@ -148,12 +96,17 @@
 @param aDllName The full path name of the application DLL. 
 @param aCaption The application caption. 
 @param aShortCaption The application short caption. */
+EXPORT_C TApaAppInfo::TApaAppInfo(TUid aAppUid,const TFileName& aDllName,const TApaAppCaption& aCaption,const TApaAppCaption& aShortCaption)
+	: iUid(aAppUid),
+	iFullName(aDllName),
+	iCaption(aCaption),
+	iShortCaption(aShortCaption)
 	{}
 
-EXPORT_C void TApaAppInfo::ExternalizeL(RWriteStream& aStream)const
 /** Externalises the application information to a write stream.
 
 @param aStream The write stream. */
+EXPORT_C void TApaAppInfo::ExternalizeL(RWriteStream& aStream)const
 	{
 	aStream<< iUid;
 	aStream<< iFullName;
@@ -161,10 +114,10 @@
 	aStream<< iShortCaption;
 	}
 
-EXPORT_C void TApaAppInfo::InternalizeL(RReadStream& aStream)
 /** Internalises the application information from a read stream.
 
 @param aStream The read stream. */
+EXPORT_C void TApaAppInfo::InternalizeL(RReadStream& aStream)
 	{
 	aStream>> iUid;
 	aStream>> iFullName;
@@ -173,17 +126,17 @@
 	}
 
 
-/////////////////////////////
+//
 // TApaAppViewInfo
-/////////////////////////////
+//
 
-EXPORT_C TApaAppViewInfo::TApaAppViewInfo()
-	: iUid(KNullUid),
-	iViewCaption(KNullDesC)
 /** Constructs an empty object.
 
 Specifically, it sets the view UID to KNullUid and empties the application 
 caption, i.e. sets it to KNullDesC. */
+EXPORT_C TApaAppViewInfo::TApaAppViewInfo()
+	: iUid(KNullUid),
+	iViewCaption(KNullDesC)
 	{}
 
 
@@ -194,10 +147,10 @@
 	{}
 
 
-EXPORT_C void TApaAppViewInfo::ExternalizeL(RWriteStream& aStream)const
 /** Externalises the application view information to a write stream.
 
 @param aStream The write stream. */
+EXPORT_C void TApaAppViewInfo::ExternalizeL(RWriteStream& aStream)const
 	{
 	aStream<< iUid;
 	aStream<< iViewCaption;
@@ -205,10 +158,10 @@
 	}
 
 
-EXPORT_C void TApaAppViewInfo::InternalizeL(RReadStream& aStream)
 /** Internalises the application view information from a read stream.
 
 @param aStream The read stream. */
+EXPORT_C void TApaAppViewInfo::InternalizeL(RReadStream& aStream)
 	{
 	aStream>> iUid;
 	aStream>> iViewCaption;
@@ -216,29 +169,20 @@
 	}
 
 
-///////////////////////////////////////
+//
 // class TApaAppCapability
-///////////////////////////////////////
+//
 
 EXPORT_C void TApaAppCapability::InternalizeL(RReadStream& aStream)
 	{
 	DoInternalizeL(aStream, iLaunchInBackground, iGroupName);
 	}
 	
-EXPORT_C void TApaAppCapability::Internalize7_0L(RReadStream& aStream)
-/**
-@deprecated
-*/
-	{
-	TBool dummyBool;
-	TApaAppGroupName dummyGroupName;
-	DoInternalizeL(aStream,dummyBool,dummyGroupName);
-	}
-
-void TApaAppCapability::DoInternalizeL(RReadStream& aStream, TBool& aLaunchInBackground, TApaAppGroupName& aGroupName)
 /** Internalises the application capabilities from a read stream.
 
-@param aStream The read stream. */
+@param aStream The read stream.
+*/
+void TApaAppCapability::DoInternalizeL(RReadStream& aStream, TBool& aLaunchInBackground, TApaAppGroupName& aGroupName)
 	{
 	TInt version = aStream.ReadInt32L();
 	iEmbeddability = TEmbeddability(aStream.ReadInt32L());
@@ -268,10 +212,11 @@
 	Panic(EDPanicInvalidVersionNumber);
 	}
 
-EXPORT_C void TApaAppCapability::ExternalizeL(RWriteStream& aStream) const
 /** Externalises the application capabilities to a write stream.
 
-@param aStream The write stream. */
+@param aStream The write stream. 
+*/
+EXPORT_C void TApaAppCapability::ExternalizeL(RWriteStream& aStream) const
 	{
 	aStream.WriteInt32L(EVersion);
 	aStream.WriteInt32L(iEmbeddability);
@@ -281,27 +226,14 @@
 	aStream << iGroupName;
 	aStream.WriteUint32L(iAttributes);
 	}
-	
-const TInt KOldVersion=1;
-	
-EXPORT_C void TApaAppCapability::Externalize7_0L(RWriteStream& aStream) const
-/** Externalises the application capabilities to a write stream.
-
-@param aStream The write stream. 
-@deprecated*/
-	{
-	aStream.WriteInt32L(KOldVersion);
-	aStream.WriteInt32L(iEmbeddability);
-	aStream.WriteInt32L(iSupportsNewFile);
-	aStream.WriteInt32L(iAppIsHidden);
-	}
-	
-EXPORT_C void TApaAppCapability::CopyCapability(TDes8& aDest,const TDesC8& aSource)
+			
 /** A utility function that can copy capability information from one descriptor 
 to another.
 
 @param aDest Target descriptor.
-@param aSource Source descriptor. */
+@param aSource Source descriptor. 
+*/
+EXPORT_C void TApaAppCapability::CopyCapability(TDes8& aDest,const TDesC8& aSource)
 	{
 	TInt maxLen=aDest.MaxLength();
 	aDest.FillZ(maxLen); // zero fill in case aSource is shorter
@@ -310,60 +242,138 @@
 	}
 
 
-///////////////////////////////////////
+//
 // class TApaEmbeddabilityFilter
-///////////////////////////////////////
+//
+
+/** Constructs an empty embeddability filter. */
 EXPORT_C TApaEmbeddabilityFilter::TApaEmbeddabilityFilter()
 	: iEmbeddabilityFlags(0)
-/** Constructs an empty embeddability filter. */
 	{
 	}
 
-EXPORT_C void TApaEmbeddabilityFilter::AddEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability)
 /** Adds aEmbeddability to the filter.
 
 @param aEmbeddability TEmbeddability value to add to the filter. */
+EXPORT_C void TApaEmbeddabilityFilter::AddEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability)
 	{
 	__ASSERT_ALWAYS(aEmbeddability >= 0 && static_cast<TUint>(aEmbeddability) < (sizeof(TUint)*8), Panic(EPanicEmbeddabilityOutOfRange));
 	iEmbeddabilityFlags |= (1 << aEmbeddability);
 	}
 
-EXPORT_C TBool TApaEmbeddabilityFilter::MatchesEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability) const
 /** Compares aEmbeddability with the filter.
 
 @param aEmbeddability TEmbeddability value to compare.
 @return True, if aEmbeddability is included in the filter; false, otherwise. */
+EXPORT_C TBool TApaEmbeddabilityFilter::MatchesEmbeddability(TApaAppCapability::TEmbeddability aEmbeddability) const
 	{
 	__ASSERT_ALWAYS(aEmbeddability >= 0 && static_cast<TUint>(aEmbeddability) < (sizeof(TUint)*8), Panic(EPanicEmbeddabilityOutOfRange));
 	TUint embeddabilityFlag = (1 << aEmbeddability);
-	if (embeddabilityFlag & iEmbeddabilityFlags)
-		{
-		return ETrue;
-		}
-	return EFalse;
+	return (embeddabilityFlag & iEmbeddabilityFlags);
 	}
 
+
 //
-// CApaAppFinder
+// class TApaAppServiceInfo
 //
 
-/** Constructor for CApaAppFinder */
-EXPORT_C CApaAppFinder::CApaAppFinder()
+EXPORT_C TApaAppServiceInfo::TApaAppServiceInfo()
+	: iUid(KNullUid),
+	  iDataTypes(0),
+	  iOpaqueData(NULL)
 	{
 	}
 
-/* Reserved for future use */
-EXPORT_C void CApaAppFinder::CApaAppFinder_Reserved1()
+EXPORT_C TApaAppServiceInfo::TApaAppServiceInfo(TUid aUid, 
+	CArrayFixFlat<TDataTypeWithPriority>* aDataTypes, HBufC8* aOpaqueData)
+	: iUid(aUid),
+	  iDataTypes(aDataTypes),
+	  iOpaqueData(aOpaqueData)
+	{
+	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));
+	__ASSERT_DEBUG(iOpaqueData, Panic(EPanicNullPointer));
+	}
+
+EXPORT_C void TApaAppServiceInfo::ExternalizeL(RWriteStream& aStream) const
 	{
+	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));
+	__ASSERT_DEBUG(iOpaqueData, Panic(EPanicNullPointer));
+	aStream << iUid;
+	aStream << *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above
+	aStream << *iOpaqueData;//lint !e613 Possible use of null pointer - Asserted above
+	}
+
+EXPORT_C void TApaAppServiceInfo::InternalizeL(RReadStream& aStream)
+	{
+	aStream >> iUid;
+	iDataTypes = new(ELeave) CArrayFixFlat<TDataTypeWithPriority>(1);
+	aStream >> *iDataTypes;
+	iOpaqueData = HBufC8::NewL(aStream, KMaxOpaqueDataLength);
+	}
+
+EXPORT_C void TApaAppServiceInfo::Release()
+	{
+	if (iDataTypes)
+		{
+		iDataTypes->Reset();
+		delete iDataTypes;		
+		}
+	if (iOpaqueData)
+		{
+		delete iOpaqueData;
+		iOpaqueData = NULL;
+		}
 	}
 
-/* Reserved for future use */
-EXPORT_C void CApaAppFinder::CApaAppFinder_Reserved2()
+EXPORT_C CArrayFixFlat<TDataTypeWithPriority>& TApaAppServiceInfo::DataTypes()
 	{
+	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));
+	return *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above
+	}
+
+/** Returns the service UID.
+
+Note that some APIs may store a UID other than a service UID
+in a TApaAppServiceInfo object. Such APIs clearly state what
+the UID represents.
+
+@return the service UID.
+*/
+EXPORT_C TUid TApaAppServiceInfo::Uid() const
+	{
+	return iUid;
 	}
 	
+EXPORT_C const CArrayFixFlat<TDataTypeWithPriority>& TApaAppServiceInfo::DataTypes() const
+	{
+	__ASSERT_DEBUG(iDataTypes, Panic(EPanicNullPointer));	
+	return *iDataTypes; //lint !e613 Possible use of null pointer - Asserted above
+	}
+
+/** Returns the service implementation's opaque data.
+
+For each service UID registered by an application, the associated
+opaque data indicates how the service is implemented by that application.
+
+The meaning of the opaque data is not known to the framework, it will vary
+according to the service.
+
+For some services the opaque data may be a name intended for user display,
+for others it may be structured data that the service's client-side code can interpret.
+
+@return the service implementation's opaque data.
+*/
+EXPORT_C const TDesC8& TApaAppServiceInfo::OpaqueData() const
+	{
+	if (iOpaqueData)
+		return *iOpaqueData;
+
+	return KNullDesC8;
+	}
+
+	
 //
-// CApaAppServiceInfoArray
+// class CApaAppServiceInfoArray
 //
 
 EXPORT_C CApaAppServiceInfoArray::CApaAppServiceInfoArray()
--- a/localisation/apparchitecture/apparc/APAMDR.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/APAMDR.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,35 +11,26 @@
 // Contributors:
 //
 // Description:
+// apamdr.cpp
 //
 
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "APASTD.H" // Panics etc.
-#include <apadbase.h>
+
 #include <apamdr.h>
-#include <apparc.h>
-#include <apgdoor.h>
-
-#include <s32stor.h>
-#include <s32file.h>
-#include <s32std.h>
-#include <s32mem.h>
 
-#ifdef _UNICODE
-#define KUidApaDoorBaseStream KUidApaDoorBaseStream16
-#else
-#define KUidApaDoorBaseStream KUidApaDoorBaseStream8
-#endif
+#include <apgdoor.h>
+#include <s32mem.h>		// class TBufBuf
 
-#ifdef _UNICODE
-const TUid KUidApaDoorBaseStream16={0x10003A36};
-#else
-const TUid KUidApaDoorBaseStream8={0x10000146};
-#endif
-const TInt KHugeGranularity=4096; // 4k granularity for the door's host buffer
+const TInt KHugeGranularity = 4096; // 4k granularity for the door's host buffer
 
-////////////////////////////////////
+//
 // HBufBuf
-////////////////////////////////////
+//
 
 class HBufBuf : public TBufBuf
 	{
@@ -49,7 +40,6 @@
 	void DoRelease();
 	};
 
-
 HBufBuf* HBufBuf::NewL(CBufBase& aBuf,TInt aPos,TInt aMode)
 //
 // Create a pre-set buffer stream buffer.
@@ -60,7 +50,6 @@
 	return buf;
 	}
 
-
 void HBufBuf::DoRelease()
 //
 // Finished with this stream buffer.
@@ -69,206 +58,9 @@
 	delete this;
 	}
 
-
-////////////////////////////////////
-// CApaDoorBase
-////////////////////////////////////
-
-EXPORT_C CApaDoorBase::CApaDoorBase()
-	{
-	}
-
-EXPORT_C void CApaDoorBase::ExternalizeBaseStreamL(CStreamStore& aStore,CStreamDictionary& aStreamDict)const
-/** Externalises the information contained in this base class to a stream in the 
-specified store.
-
-The resulting stream ID is associated with an internal UID, and placed in 
-the specified stream dictionary.
-
-@publishedAll
-@released
-@param aStore The store to contain the stream.
-@param aStreamDict The stream dictionary to contain the stream ID (and an associated 
-internal UID). */
-	{
-	RStoreWriteStream stream;
-	TStreamId id=stream.CreateLC(aStore);
-	//
-	// write the format
-	if (iFormat==ETemporarilyIconic)
-		stream.WriteInt8L(EGlassDoor);
-	else
-		stream.WriteInt8L(iFormat);
-	//
-	// write the size
-	TSize size;
-	if (iFormat==ETemporarilyIconic)
-		size = GlassDoorSize();
-	else
-		GetSizeInTwips(size);
-	stream<< size;
-	// 
-	// write the source and close
-	stream<< iSource;
-	stream.CommitL();
-	CleanupStack::PopAndDestroy(); // stream
-	aStreamDict.AssignL(KUidApaDoorBaseStream,id);
-	}
-
-
-
-EXPORT_C TSize CApaDoorBase::InternalizeBaseStreamL(const CStreamStore& aStore,const CStreamDictionary& aStreamDict)
-/** Internalises the information for this base class from a stream in the specified 
-store, and returns the size of the icon or glass door.
-
-The stream ID is extracted from the specified stream dictionary. The UID associated 
-with the stream ID is the same as that used when externalising.
-
-@publishedAll 
-@released
-@param aStore The store containing the stream.
-@param aStreamDict The steam dictionary containing the stream ID.
-@return The size of the icon or glass door, in twips. */
-	{
-	TStreamId id=aStreamDict.At(KUidApaDoorBaseStream);
-	if (id==KNullStreamId)
-		User::Leave(KErrCorrupt); //  there is no base stream - the file is not valid (used to panic EPanicNoBaseDoorStream)
-	RStoreReadStream stream;
-	stream.OpenLC(aStore,id);
-	iFormat = (TFormat)stream.ReadInt8L();
-	__ASSERT_DEBUG(iFormat==EIconic || iFormat==EGlassDoor,Panic(EDPanicIllegalDoorFormat));
-	TSize size;
-	stream>> size;
-	stream>> iSource;
-	CleanupStack::PopAndDestroy(); // stream
-	return size;
-	}
-
-// Virtual functions from CPicture
-
-EXPORT_C TStreamId CApaDoorBase::StoreL(CStreamStore& aStore) const
-/** Stores the Embedded Document to the specified store.
-
-@publishedAll 
-@released
-@param aStore The store containing the stream.
-@return The ID of the (head) stream used to store the Embedded Document */
-	{
-	return CPicture::StoreL(aStore);
-	}
-
-EXPORT_C void CApaDoorBase::SetScaleFactor(TInt aScaleFactorWidth,TInt aScaleFactorHeight)
-/** Sets the Embedded Document's scale factors
-
-@publishedAll 
-@released
-@param aScaleFactorWidth The width scale factor, in percent
-@param aScaleFactorHeight The height scale factor, in percent
-*/
-	{
-	CPicture::SetScaleFactor(aScaleFactorWidth, aScaleFactorHeight);
-	}
-
-EXPORT_C void CApaDoorBase::SetCropInTwips(const TMargins& aMargins)
-/** Sets the cropping margins of a Embedded Document in twips.
-These are relative to the original unscaled size of the Embedded Document.
-
-@publishedAll 
-@released
-@param aMargins The cropping margins of the Embedded Document, in twips
-*/	
-	{
-	CPicture::SetCropInTwips(aMargins);
-	}
-	
-EXPORT_C TPictureCapability CApaDoorBase::Capability() const
-/** Gets the Embedded Document's capabilities.
-These include whether it is scalable and croppable.
-
-@publishedAll 
-@released
-@return The capabilities of the Embedded Document
-*/
-	{
-	return CPicture::Capability();
-	}
-	
-EXPORT_C void CApaDoorBase::GetCropInTwips(TMargins& aMargins) const 
-/** Gets the cropping margins of a Embedded Document in twips.
-These margins are relative to the original unscaled size of the Embedded Document.
-
-@publishedAll 
-@released
-@param aMargins The cropping margins of the Embedded Document, in twips 
-*/
-	{
-	CPicture::GetCropInTwips(aMargins);
-	}
-
-EXPORT_C TInt CApaDoorBase::ScaleFactorWidth() const
-/** Gets the Embedded Document's width scale factor.
-
-@publishedAll 
-@released
-@return The width scale factor, in percent
-*/	
-	{
-	return CPicture::ScaleFactorWidth();
-	}
-
-EXPORT_C TInt CApaDoorBase::ScaleFactorHeight() const
-/** Gets the Embedded Document height scale factor.
-
-@publishedAll 
-@released
-@return The height scale factor, in percent
-*/
-	{
-	return CPicture::ScaleFactorHeight();
-	}
-
-EXPORT_C TBool CApaDoorBase::LineBreakPossible(TUint aClass,TBool aBeforePicture,TBool aHaveSpaces) const
-/** States whether a line break is possible, either before or after an Embedded Document.
-The default implementation returns ETrue, implying that there is a break opportunity both before and after the Embedded Document, whether or not a space is present.
-This may be overridden for special types of Embedded Documents.
-
-@publishedAll 
-@released
-@param aClass The line breaking class of the adjacent character
-@param aBeforePicture ETrue, if the adjacent character is before the Embedded Document; EFalse, if the adjacent character is afterwards
-@param aHaveSpaces ETrue, if spaces occur between the adjacent character and the Embedded Document; EFalse, otherwise
-@return ETrue, if a line break is possible; EFalse, otherwise. 
-*/	
-	{
-	return CPicture::LineBreakPossible(aClass, aBeforePicture, aHaveSpaces);
-	}
-
-EXPORT_C TBool CApaDoorBase::NativePixelSize(TSize& aPixelSize)
-/** Returns the native pixel size of the bitmap. 
-
-Derived classes might be implemented as bitmaps, in that case it might be interesting to know this.
-@publishedAll 
-@released
-@param aPixelSize The pixel size
-@return TBool ETrue, if the derived classes are implemented as bitmaps; EFalse, otherwise.
-*/	
-	{
-	return CPicture::NativePixelSize(aPixelSize);
-	}
-
-/** Reserved for future use */
-EXPORT_C void CApaDoorBase::CApaDoorBase_Reserved1()
-	{
-	}
-
-/** Reserved for future use */
-EXPORT_C void CApaDoorBase::CApaDoorBase_Reserved2()
-	{
-	}
-
-///////////////////////////////////
+//
 // TApaModelDoorFactory
-///////////////////////////////////
+//
 
 EXPORT_C TApaModelDoorFactory::TApaModelDoorFactory(const MApaModelHeaderFactory* aFactory)
 	:iHeaderFactory(aFactory)
@@ -310,9 +102,9 @@
 	}
 
 
-///////////////////////////////////
+//
 // CApaModelDoor
-///////////////////////////////////
+//
 
 
 EXPORT_C CApaModelDoor* CApaModelDoor::NewL(CApaModelHeader* aHeader)
@@ -364,7 +156,7 @@
 
 
 CApaModelDoor::CApaModelDoor()
-	{__DECLARE_NAME(_S("CApaModelDoor"));}
+	{}
 
 
 CApaModelDoor::CApaModelDoor(CApaModelHeader* aHeader)
--- a/localisation/apparchitecture/apparc/APASTD.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/APASTD.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -24,3 +24,4 @@
 	_LIT(KAppArcPanic,"APPARC");
 	User::Panic(KAppArcPanic,aPanic);
 	}
+
--- a/localisation/apparchitecture/apparc/APASTD.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/APASTD.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/apparc/APPARC.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/APPARC.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,1377 +11,67 @@
 // Contributors:
 //
 // Description:
+// apparc.cpp
 //
 
 #include <apparc.h> // stuff everyone will want ie most things
-#include <apacln.h> // CleanupStack protection for CApaDocument
-#include "APADLL.H" // CApaDll CApaExe CApaAppHolder
+#include "APADLL.H" // RApaApplication
 #include "APASTD.H" // Panics etc.
-#include <e32uid.h> // KExecutableImageUid
-
-#include <s32stor.h>
-#include <s32file.h>
-#include <s32std.h>
-
-#ifdef USING_ECOM_RECOGS
-#include <ecom/ecom.h>
-#include <ecom/implementationinformation.h>
-#endif
 
-#include "../apparc/TRACE.H"
-
-const TInt KAppProcessArrayGranularity(1);
+  
+//
+// RApaApplication
+//
 
-_LIT(KApplicationLocation,"\\sys\\bin\\");
-  
-/////////////////////////////
-// Doc cleanup method
-/////////////////////////////
+RApaApplication::RApaApplication() : iApplication(NULL), iScheduledForDeletion(EFalse)
+	{}
 
-EXPORT_C void TApaDocCleanupItem::DoCleanup(TAny* aPtr)
+void RApaApplication::Close()
 	{
-	__ASSERT_ALWAYS(aPtr,Panic(EPanicNoCleanupItem));
-	TApaDocCleanupItem* cleanup = reinterpret_cast<TApaDocCleanupItem*>(aPtr);
-	__ASSERT_ALWAYS(cleanup->iApaProcess,Panic(EPanicNoCleanupItem));//lint !e613 Possible use of null pointer - Asserted above
-	cleanup->iApaProcess->DestroyDocument(cleanup->iApaDoc); //lint !e613 Possible use of null pointer - Asserted above
+	delete this;
 	}
 
-
-/////////////////////////////
-// CApaAppHolder
-/////////////////////////////
-
-CApaAppHolder::CApaAppHolder()
-	{}
-
-
-CApaAppHolder::~CApaAppHolder()
-	{
-	}
-
-void CApaAppHolder::UpdateAppsRefToThis()
+RApaApplication::~RApaApplication()
 	{
-	CApaApplication* app = Application();
-	__ASSERT_ALWAYS(app,Panic(EPanicNoApplication));
-	app->iAppHolder = this;	//lint !e613 Possible use of null pointer - Asserted above
-	}
-
-#ifdef USING_ECOM_RECOGS
-/////////////////////////////
-// CApaExe
-/////////////////////////////
-
-CApaExe::CApaExe()
-	{}
-
-CApaExe::~CApaExe()
-	{
-	delete iAppName;
+	iAppName.Close();
 	delete iApplication;
 	}
 
-TFileName CApaExe::FileName()const
+void RApaApplication::CreateApplicationL(TApaApplicationFactory aApplicationFactory)
 	{
-	if (iAppName)
-		{
-		return *iAppName;
-		}
-	else
-		{
-		return KNullDesC();
-		}
+	__ASSERT_ALWAYS(!iApplication, Panic(EPanicApplicationAlreadyExists));
+	iApplication = aApplicationFactory.CreateApplicationL();
+	User::LeaveIfNull(iApplication);
+	
+	iFileUid = aApplicationFactory.AppFileUid();
+	iAppName.Assign(aApplicationFactory.AppFileNameL());
+	
+	iApplication->SetAppFileNameRef(iAppName);
 	}
 
-TUid CApaExe::Uid()const
+TFileName RApaApplication::AppFileName() const
+	{
+	return iAppName;
+	}
+
+TUid RApaApplication::AppFileUid()const
 	{
 	return iFileUid;
 	}
 
-CApaApplication* CApaExe::Application() const
+CApaApplication* RApaApplication::Application()
 	{
 	return iApplication;
 	}
 
-void CApaExe::CreateApplicationL(TApaApplicationFactory aApplicationFactory)
-	{
-	__ASSERT_ALWAYS(!iApplication,Panic(EPanicApplicationAlreadyExists));
-	iApplication = aApplicationFactory.CreateApplicationL();
-	iFileUid = aApplicationFactory.AppFileUid();
-	User::LeaveIfNull(iApplication);
-	iAppName = aApplicationFactory.AppFileNameL();
-	UpdateAppsRefToThis();
-	}
-
-#endif // USING_ECOM_RECOGS
-
-EXPORT_C void CApaDocument::OpenFileL(CFileStore*&, RFile&)
-	{
-	}
-
-EXPORT_C void CApaDocument::Reserved_2()
-	{}
-
-
-/////////////////////
-// CApaApplication
-/////////////////////
-
-/** Constructor for CApaApplication */
-EXPORT_C CApaApplication::CApaApplication()
-	{
-	}
-
-EXPORT_C TFileName CApaApplication::AppFullName()const
-/** Returns the full name and path of the application.
-
-The default implementation returns the full path name of the application DLL.
-
-An application can provide its own implementation. 
-
-@return Full path name of the application.
-@see CApaApplication::DllName() */
-	{
-	return DllName();
-	}
-
-
-EXPORT_C TFileName CApaApplication::DllName()const
-/** Returns the full name and path of the loaded application DLL.
-
-@return Full path name of the application DLL. */
-	{
-	__ASSERT_DEBUG(iAppHolder, Panic(EDPanicNoAppHolder));
-	return iAppHolder->FileName();
-	}
-
-
-EXPORT_C TInt CApaApplication::GenerateFileName(RFs& aFs,TFileName& aRootName)
-/** Generates a unique filename based on the file name contained within the specified 
-full path name.
-
-If necessary, the function creates the directory structure that is defined 
-in the specified full path name.
-
-If the file name does not yet exist, then this is the file name chosen. If 
-this file name already exists, then a file name of the form: name(nn) is generated, 
-where nn are decimal digits. The value of nn is incremented until a name is 
-generated that is unique within the directory structure. A minimum of two 
-decimal digits is generated.
-
-The function is used by the UI framework.
-
-@param aFs Handle to a file server session. 
-@param aRootName The full path name.
-@return KErrNone if successful, otherwise one of the other system-wide error 
-codes. Specifically: KErrBadName if the file name portion of the specified 
-full path name has invalid format; KErrArgument if the drive, path or file 
-name parts are missing from the specified full path name; KErrOverflow if 
-the generated filename becomes too long; KErrNoMemory if there is insufficient 
-memory to perform the operation.
-@see CEikAppUi */
-	{
-	// check that filename is valid
-	if (!aFs.IsValidName(aRootName))
-		return KErrBadName;
-	//
-	// check that a drive, path and root filename have been specified
-	TParsePtr parsePtr(aRootName);
-	if (!parsePtr.DrivePresent() || !parsePtr.PathPresent() || !parsePtr.NamePresent())
-		return KErrArgument;
-	//
-	// create the path if necessary
-	TInt ret=aFs.MkDirAll(parsePtr.DriveAndPath());
-	if (ret!=KErrNone && ret!=KErrAlreadyExists)
-		return ret;
-	//
-	// Create the Rbuf object to hold a filename (return if no mem available)
-	RBuf newName;
-	ret = newName.Create(aRootName, KMaxFileName+8);
-	if (ret!=KErrNone)
-		return KErrNoMemory;
-	//	
-	// generate a valid filename that doesn't already exist...
-	TEntry entry;
-	TInt i=1;
-	_LIT(KFormatStringOne,"%S%S(%02d)%S");
-	TBuf<16> format;
-	format=KFormatStringOne;
-	while (aFs.Entry(newName,entry)==KErrNone)		// Continue until DoesNotExist or PathDoesNotExist, etc
-		{
-		if (i>=100)
-			{
-			_LIT(KFormatStringTwo,"%S%S(%d)%S");
-			format=KFormatStringTwo;
-			}
-		TPtrC driveAndPath=parsePtr.DriveAndPath();
-		TPtrC name=parsePtr.Name();
-		TPtrC ext=parsePtr.Ext();
-		newName.Format(format,&driveAndPath,&name,i++,&ext);
-		if (newName.Length()>KMaxFileName)
-			{
-			newName.Close();
-			return KErrOverflow;
-			}
-		}
-	//
-	// set the new filename and return
-	aRootName = newName;
-	newName.Close();
-	return KErrNone;
-	}
-
-
-EXPORT_C CDictionaryStore* CApaApplication::OpenIniFileL(RFs& aFs)const
-/** Opens the .ini file associated with the application, constructs the dictionary 
-store object and returns a pointer to it.
-
-The implementation of this function is provided by the OpenIniFileLC() function. 
-The function pops the pointer returned by OpenIniFileLC() from the cleanup 
-stack.
-
-@param aFs Handle to a file server session. 
-@return A pointer to the dictionary store object representing the application's 
-.ini file. 
-@see CApaApplication::OpenIniFileLC() */
-	{
-	CDictionaryStore* store=OpenIniFileLC(aFs);
-	CleanupStack::Pop(); // store
-	return store;
-	}
-
-EXPORT_C CApaApplication::~CApaApplication()
-	{
-#ifdef USING_ECOM_RECOGS
-	if (iDtorKey!=TUid::Null()) // only some CApaApplication objects are ECom objects (i.e. only those corresponding to embedded applications, not top-level applications)
-		{
-		REComSession::DestroyedImplementation(iDtorKey);
-		}
-#endif // USING_ECOM_RECOGS
-	iAppHolder = NULL;
-	}
-
-EXPORT_C void CApaApplication::NewAppServerL(CApaAppServer*& /*aAppServer*/)
-/** Virtual function called by the framework when the application
-has been launched as a server application.
-Applications that wish to be used as server applications must
-override this function to return their implemetation of the server.
-@param aAppServer The server pointer to be set. */
-	{
-	User::Leave(KErrNotSupported);
-	}
-
-/** Reserved for future use */
-EXPORT_C void CApaApplication::CApaApplication_Reserved1()
-	{
-	}
-
-/** Reserved for future use */
-EXPORT_C void CApaApplication::CApaApplication_Reserved2()
-	{
-	}
-
-/////////////////////////////
-// CApaDocument
-/////////////////////////////
-
-/** Constructor for CApaDocument */
-EXPORT_C CApaDocument::CApaDocument()
-	{
-	}
-
-EXPORT_C CApaDocument::CApaDocument(CApaApplication& aApp,CApaProcess& aProcess)
-	: iApplication(&aApp),
-	iApaProcess(&aProcess)
-/** Constructs the document object with the specified application and process.
-
-Derived classes must define and implement a constructor through which both 
-the associated application and process can be specified. A typical implementation 
-calls this constructor through a constructor initialization list.
-
-@param aApp The application.
-@param aProcess The process.
-@see CEikDocument */
-	{}
-
-
-EXPORT_C CApaDocument::~CApaDocument()
-/** Destructor.
-
-The implementation is empty. */
-	{
-	iContainer = NULL;
-	iApplication = NULL;
-	iApaProcess = NULL;
-	}
-
-
-EXPORT_C CApaDocument::TCapability CApaDocument::Capability() const
-/** Gets the document's capabilities.
-
-Capabilities are encapsulated by an instance of a TCapability class, a public 
-class defined inside this class.
-
-The default implementation returns a default TCapability object, indicating 
-that the document does not support any of the defined capabilities.
-
-If a document does support one or more of the capabilities, it should override 
-this function to return a suitably initialised object.
-
-@return The document's capabilities */
-	{
-	return TCapability();
-	}
-
-
-EXPORT_C void CApaDocument::ValidatePasswordL() const
-/** Checks the document password.
-
-The default implementation is empty.
-
-If a document is intended to be password protected, the UI application should 
-provide an implementation that forces the user to enter the password and validate 
-the input.
-
-If the document is protected by a password and the password entered by the 
-user is incorrect, the function should leave with KErrLocked, otherwise it 
-should just return. */
-	{}
-
-
-EXPORT_C CPicture* CApaDocument::GlassPictureL()
-// Return handle to glass picture, creating one if not already created.
-// returns NULL as glass pictures are not supported by default
-/** Gets an object that can draw a representation of the document's content.
-
-If the document supports being embedded as a glass door, then the UI application 
-must provide an implementation for this function.
-
-The default implementation raises an APPARC 8 panic.
-
-@return A pointer to a glass door. */
-	{
-	Panic(EPanicNoGlassDoorMethodSupplied);
-	//
-	return NULL;
-	}
-
-
-EXPORT_C void CApaDocument::ExternalizeL(RWriteStream& /*aStream*/)const
-	{}
-
-EXPORT_C CApaDocument::TCapability::TCapability()
-	:iCapability(0),TCapability_Reserved1(0)
-/** Constructs a default capability object.
-
-All capabilities are marked as "not supported". */
-	{}
-
-/////////////////////////////
-// TApaAppHolderInfo
-/////////////////////////////
-
-class TApaAppHolderInfo
-	{
-public:
-	TApaAppHolderInfo(CApaAppHolder* aAppHolder);
-public:
-	CApaAppHolder* iAppHolder;
-	TBool iToBeRemoved;
-	};
-
-TApaAppHolderInfo::TApaAppHolderInfo(CApaAppHolder* aAppHolder)
-	:iAppHolder(aAppHolder), iToBeRemoved(EFalse)
-	{
-	}
-
-/////////////////////////////
-// CApaParentProcessMonitor
-/////////////////////////////
-
-class CApaParentProcessMonitor : public CActive
-	{
-public: // Construction / destruction
-	static CApaParentProcessMonitor* NewL(TProcessId aProcessId);
-	~CApaParentProcessMonitor();
-	void ConstructL();
-private:
-	CApaParentProcessMonitor(TProcessId aProcessId);
-public: // From CActive
-	void RunL();
-	void DoCancel();
-private:
-	TProcessId iProcessId;
-	RProcess iProcess;
-	};
-
-CApaParentProcessMonitor* CApaParentProcessMonitor::NewL(TProcessId aProcessId)
+void RApaApplication::ScheduleForAsyncDeletion(TBool aDoDelete)
 	{
-	CApaParentProcessMonitor* self=new (ELeave) CApaParentProcessMonitor(aProcessId);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CApaParentProcessMonitor::CApaParentProcessMonitor(TProcessId aProcessId)
-	: CActive(EPriorityLow)
-	{
-	iProcessId=aProcessId;
-	}
-
-CApaParentProcessMonitor::~CApaParentProcessMonitor()
-	{
-	Cancel();
-	}
-
-void CApaParentProcessMonitor::ConstructL()
-	{
-	User::LeaveIfError(iProcess.Open(iProcessId));
-	iProcess.Logon(iStatus);
-	if(iStatus==KErrNoMemory)
-		{
-		User::WaitForRequest(iStatus);
-		User::Leave(KErrNoMemory);
-		}
-	CActiveScheduler::Add(this);
-	SetActive();
-	}
-
-void CApaParentProcessMonitor::RunL()
-	{
-	// Do something that will kill the child when the parent process terminates
-	if(iStatus==KErrNone)
-		{
-		RProcess proc;
-		proc.Terminate(KErrNone);
-		}
-	}
-
-void CApaParentProcessMonitor::DoCancel()
-	{
-	iProcess.LogonCancel(iStatus);
-	}
-
-/////////////////////////////
-// CApaProcess
-/////////////////////////////
-
-/** Constructor for CApaProcess */
-EXPORT_C CApaProcess::CApaProcess()
-	{
-	}
-
-EXPORT_C CApaProcess* CApaProcess::NewL(const RFs& aFs)
-/** Creates and returns a pointer to a new application process.
-
-This function is not used by UI applications.
-
-@param aFs Handle to a file server session.
-@return Pointer to the new application process. */
-	{
-	CApaProcess* self=new(ELeave) CApaProcess(aFs);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop();
-	return self;
-	}
-
-EXPORT_C CApaProcess::CApaProcess(const RFs& aFs)
-	:iFsSession(aFs)
-/** Constructs the application process object with the specified file session handle.
-
-Derived classes must define and implement a constructor through which 
-the file session handle can be specified. A 
-typical implementation calls this constructor through a constructor initialization 
-list.
-
-This constructor is used by the UI framework.
-
-@deprecated
-@param aFs Handle to a file server session */
-	{}
-
-const TInt KPriorityGreaterThanShutter=102;
-
-EXPORT_C void CApaProcess::ConstructL()
-/** Completes construction of the application process object.
-
-Implementers of derived classes must call this function as part of the second 
-stage construction of an object. Typically, derived classes implement their 
-own NewL() function and call ConstructL() as part of that implementation. */
-	{
-	//
-	iAppList = new(ELeave) CArrayFixFlat<TApaAppHolderInfo>(KAppProcessArrayGranularity);
-	iDocList = new(ELeave) CArrayFixFlat<CApaDocument*>(KAppProcessArrayGranularity);
-	iMainDocFileName = HBufC::NewL(KMaxFileName);
-	iApplicationRemover=CIdle::NewL(KPriorityGreaterThanShutter);	// Use an idle object so that app has chance to clear its call stack
-	}
-
-EXPORT_C void CApaProcess::ConstructL(TProcessId aParentProcessId)
-/** Completes construction of the application process object, passing in a Parent Process Identifier.
-
-Implementers of derived classes must call this function as part of the second 
-stage construction of an object. Typically, derived classes implement their 
-own NewL() function and call ConstructL() as part of that implementation.
-
-@param aParentProcessId Id of the parent process. This process will terminate when the parent does. */
-	{
-	ConstructL();
-	if(KNullProcessId!=aParentProcessId)
-		{
-		iMonitor=CApaParentProcessMonitor::NewL(aParentProcessId);
-		}
-	}
-
-EXPORT_C CApaProcess::~CApaProcess()
-// If this is called without calling ResetL() or CApaDocument::SaveL() first, data may be lost
-//
-/** Frees resources prior to destruction.
-
-Documents must be saved before the application process is deleted, otherwise 
-data may be lost.
-
-In debug mode, the destructor raises an APPARC 6 panic if documents still 
-exist, and an APPARC 5 panic if applications still exist. */
-	{
-	if (iMainDoc)
-		{
-		DestroyDocument(iMainDoc);
-		iMainDoc = NULL;
-		}
-	if (iDocList)
-		{
-		__ASSERT_DEBUG(iDocList->Count()==0,Panic(EPanicDocListNotEmpty));
-		for (TInt i=iDocList->Count()-1 ; i>=0 ; i--)
-			{
-			delete (*iDocList)[i]; // delete stray doc's in release mode, just to be tidy
-			}
-		}
-	if (iAppList)
-		{
-		for (TInt i=iAppList->Count()-1 ; i>=0 ; i--)
-			{
-			delete ((*iAppList)[i]).iAppHolder;
-			}
-		}
-	delete iAppList;
-	delete iDocList;
-	delete iMainDocFileName;
-	delete iApplicationRemover;
-	delete iMonitor;
+	iScheduledForDeletion = aDoDelete;
 	}
-
-
-EXPORT_C void CApaProcess::ResetL()
-/** Resets the the application process to its initial state.
-
-Specifically, it saves the main document, deletes the main and all embedded 
-documents from memory, resets the main document filename and deletes all applications 
-except the main application.
-
-The function can leave if saving the main document fails. */
-	{
-	if (iMainDoc)
-		{
-		iMainDoc->SaveL();
-		DeleteAllDocs(); // sets iMainDoc to NULL, deletes all apps except main
-		}
-	__ASSERT_DEBUG(iMainDocFileName, Panic(EPanicNoDocument));
-	*iMainDocFileName=KNullDesC;
-	}
-
-
-void CApaProcess::DeleteAllDocs()
-// deletes all docs
-// deletes all apps except main app
-// sets iMainDoc* to NULL
-//
-	{
-	CApaAppHolder* mainAppHolder=NULL;
-	if (iMainDoc)
-		{
-		__ASSERT_DEBUG(iMainDoc->Application(), Panic(EDPanicNoApp));
-		mainAppHolder = iMainDoc->Application()->iAppHolder;
-		for (TInt i=iDocList->Count()-1 ; i>=0 ; i--)
-			if ((*iDocList)[i]==iMainDoc)
-				{
-				iDocList->Delete(i); // removes from array, but doesnt destroy
-				delete iMainDoc;
-				iMainDoc = NULL;
-				}
-		}
-	__ASSERT_ALWAYS(iDocList->Count()==0,Panic(EPanicDocListNotEmpty));
-	iDocList->Reset();
-	if (iAppList)
-		{
-		for (TInt ii=iAppList->Count()-1 ; ii>=0 ; ii--) // need to iterate backwards as the array changes size during the loop
-			{
-			if ((*iAppList)[ii].iAppHolder!=mainAppHolder)
-				{
-				delete (*iAppList)[ii].iAppHolder;
-				iAppList->Delete(ii);
-				}
-			}
-		iAppList->Compress();
-		}
-	}
-
-
-EXPORT_C void CApaProcess::SetMainDocFileName(const TDesC& aMainDocFileName)
-/** Sets the filename of the main document.
-
-@param aMainDocFileName The filename to be set.
-@panic APPARC 7 If the length of aMainDocFileName is greater than KMaxFileName or the
-length of the last filename set by SetMainDocFileNameL if greater
-@see KMaxFileName */
-	{
-	__ASSERT_DEBUG( iMainDocFileName, Panic(EPanicNullPointer));
-	__ASSERT_ALWAYS( aMainDocFileName.Length()<=iMainDocFileName->Des().MaxLength() ,Panic(EPanicFileNameTooLong));
-	*iMainDocFileName = aMainDocFileName;
-	}
-
-EXPORT_C void CApaProcess::SetMainDocFileNameL(const TDesC& aMainDocFileName)
-/** Sets the filename of the main document.
-
-@param aMainDocFileName The filename to be set. There is no restriction on the
-length of this descriptor. */
+	
+TBool RApaApplication::IsScheduleForAsyncDeletion() const
 	{
-	__ASSERT_ALWAYS( iMainDocFileName, Panic(EPanicNullPointer));
-	const TInt newLength = aMainDocFileName.Length() < KMaxFileName ? KMaxFileName : aMainDocFileName.Length();
-	if (newLength != iMainDocFileName->Des().MaxLength())
-		{
-		HBufC* const newMainDocFileName = HBufC::NewL(newLength);
-		delete iMainDocFileName;
-		iMainDocFileName = newMainDocFileName;
-		}
-	SetMainDocFileName(aMainDocFileName);
-	}
-
-EXPORT_C void CApaProcess::SetMainDocument(CApaDocument* aDocument)
-/** Sets the main document.
-
-@param aDocument A pointer to the document to be set as the main document 
-of the application process. This must be a an object created by the AddNewDocumentL() 
-or OpenNewDocumentL() functions 
-@see CApaProcess::AddNewDocumentL()
-@see CApaProcess::OpenNewDocumentL() */
-	{
-	__ASSERT_ALWAYS( iDocList, Panic(EPanicNullPointer));
-	// check that the prospective main doc has actually been added to the array
-	for (TInt i=iDocList->Count()-1 ; i>=0 ; i--)
-		{
-		if ((*iDocList)[i]==aDocument)
-			break;
-		if (i==0)
-			Panic(EPanicNoDocument);
-		}
-	// assign it once it has checked out
-	iMainDoc = aDocument;
-	}
-
-EXPORT_C CApaDocument* CApaProcess::AddNewDocumentL(TApaApplicationFactory aApplicationFactory)
-/** Creates and adds a new document using the specified application factory.
-
-The document may be a main document or an embedded document.
-
-Any document created with this function must be destroyed using DestroyDocument().
-
-@param aApplicationFactory Should be created implicitly by passing a pointer to
-a factory function, an ECOM plugin UID, or a CImplementationInformation reference.
-@return A pointer to the new document.
-@see CApaProcess::DestroyDocument()
-@see CApaApplication */
-	{
-#ifdef USING_ECOM_RECOGS
-	__SHOW_TRACE(_L("Starting CApaProcess::AddNewDocumentL"));
-	__APA_PROFILE_START(0);
-
-	CApaAppHolder* appHolder = AddAppExeL(aApplicationFactory);	
-
-	// use the app to create a doc
-	CApaDocument* doc=NULL;
-	TRAPD(ret,doc=CreateDocL(appHolder->Application()));
-	if (ret!=KErrNone)
-		// remove app as it has been orphaned
-		RemoveApp(appHolder);
-	User::LeaveIfError(ret);
-	__PROFILE_END(0);
-	return doc;
-#else // USING_ECOM_RECOGS
-	(void)aApplicationFactory;
-	return NULL;
-#endif // USING_ECOM_RECOGS
-	} //lint !e1762 Member function could be made const - Not true
-
-
-
-void CApaProcess::RemoveApp(CApaAppHolder* aAppHolder)
-// removes app holder from the list if it exists, panics otherwise
-	{
-	__ASSERT_ALWAYS(iAppList, Panic(EPanicNullPointer));
-	TInt i = 0;
-	for (i=iAppList->Count()-1 ; i>=0 ; i--)
-		{
-		if ((*iAppList)[i].iAppHolder==aAppHolder) // the main app may be alive on its own if Reset() has just been called
-			{
-			delete aAppHolder; // the main app may be alive on its own if Reset() has just been called
-			iAppList->Delete(i);
-			break;
-			}
-		}
-	if (i<0)
-		Panic(EPanicAppNotInList);
+	return iScheduledForDeletion;
 	}
 
 
-EXPORT_C CApaDocument* CApaProcess::OpenNewDocumentL(CFileStore*& aStore,CStreamDictionary*& aStreamDic,const TDesC& aDocFullFileName,TUint aFileMode)
-/** Opens the specified file and restores the content as a document.
-
-The created document can be merged into or embedded in another document.
-
-Any document created with this function must be destroyed using DestroyDocument().
-
-@param aStore On return, this contains a pointer to the store object created 
-during the restore.
-@param aStreamDic On return, this contains a pointer to the stream dictionary 
-object created during the restore. 
-@param aDocFullFileName The name of the file containing the document. 
-@param aFileMode The mode in which to open the file. 
-@return A pointer to the restored document.
-@see TFileMode
-@see CApaProcess::DestroyDocument() */
-	{
-	__SHOW_TRACE(_L("Starting CApaProcess::OpenNewDocumentL"));
-	__APA_PROFILE_START(1);
-	TParse parser;
-	User::LeaveIfError(iFsSession.Parse(aDocFullFileName,parser)); 
-	// open doc as a file store & read in the header
-	CFileStore* docStore;
-	CStreamDictionary* streamDic = ReadRootStreamLC(FsSession(),docStore,parser.FullName(),aFileMode);
-	CleanupStack::PushL(docStore);
-	// read in the app id info
-	TApaAppIdentifier appId=ReadAppIdentifierL(*docStore,*streamDic);
-	// create the doc
-	CApaDocument* importedDoc =	AddNewDocumentL(appId.iAppUid);
-	// restore the document
-	TApaDocCleanupItem cleanup(this,importedDoc);
-	CleanupStack::PushL(cleanup);
-	importedDoc->RestoreL(*docStore,*streamDic);
-	CleanupStack::Pop(3); //docStore,importedDoc,streamDic
-	aStore = docStore;
-	aStreamDic = streamDic;
-	__PROFILE_END(1);
-	return importedDoc;
-	}
-
-EXPORT_C TApaAppIdentifier CApaProcess::ReadAppIdentifierL(const CStreamStore& aStore,const CStreamDictionary& aStreamDic)
-// this is a static method
-/** Reads the application identifier from its stream in the specified store and 
-returns it.
-
-The location of the stream is found in the specified stream dictionary.
-
-@param aStore The store from which the application identifier should be read. 
-@param aStreamDic The stream dictionary containing the stream ID of the application 
-identifier stream. The stream dictionary can be found in the root stream of 
-the store.
-@return The application identifier. */
-	{
-	__SHOW_TRACE(_L("Starting CApaProcess::ReadAppIdentifierL"));
-	TStreamId infoStreamId=aStreamDic.At(KUidAppIdentifierStream);
-	TApaAppIdentifier appId;
-	// create a stream and read in the data
-	RStoreReadStream stream;
-	stream.OpenLC(aStore,infoStreamId);
-	stream>> appId;
-	stream.Close();
-	CleanupStack::PopAndDestroy(); // stream
-	return appId;	
-	}
-
-
-EXPORT_C void CApaProcess::WriteAppIdentifierL(CStreamStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId)
-// this is a static method
-/** Writes the application identifier to a new stream in the specified store and 
-records the location of this stream in the specified stream dictionary.
-
-@param aStore The store to which the application identifier should be written. 
-
-@param aStreamDic The stream dictionary. 
-@param aAppId The application identifier to be externalised to a stream. */
-	{
-	__SHOW_TRACE(_L("Starting CApaProcess::WriteAppIdentifierL"));
-	// create a stream
-	RStoreWriteStream stream;
-	TStreamId streamId=stream.CreateLC(aStore);
-	// stream the header
-	stream<< aAppId;
-	stream.CommitL();
-	CleanupStack::PopAndDestroy(); // id stream
-	// enter the stream in the dictionary
-	aStreamDic.AssignL(KUidAppIdentifierStream,streamId);
-	}
-
-
-EXPORT_C CStreamDictionary* CApaProcess::ReadRootStreamLC(RFs& aFs,CFileStore*& aStore,const TDesC& aDocFullFileName,TUint aFileMode)
-/** Reads the stream dictionary contained as the root stream in the specified document 
-file.
-
-The function constructs, and returns a pointer to the stream dictionary object 
-and puts the pointer to the stream dictionary object onto the cleanup stack. 
-It also returns a pointer to the created file store object through an argument 
-reference. 
-
-The file must be a valid document file; otherwise the function leaves with one of 
-the system-wide error codes.
-
-@param aFs Handle to a file server session.
-@param aStore On return, a pointer to the newly created file store object. 
-@param aDocFullFileName The full path name of the document file. 
-@param aFileMode The mode in which to open the file.
-@return A pointer to the stream dictionary object read from the root stream 
-of the store. 
-@see TFileMode */
-	{ // static
-	__SHOW_TRACE(_L("Starting CApaProcess::ReadRootStreamLC (file-name overload)"));
-	CStreamDictionary* const streamDictionary=CStreamDictionary::NewLC();
-	CFileStore* const store=CFileStore::OpenLC(aFs,aDocFullFileName,aFileMode);
-	DoReadRootStreamL(*streamDictionary, *store);
-	aStore=store; // delay assignment until nothing can go wrong to avoid destroying the store twice if a leave occurs
-	CleanupStack::Pop(store);
-	return streamDictionary;
-	}
-
-
-EXPORT_C CStreamDictionary* CApaProcess::ReadRootStreamLC(CFileStore*& aStore, const RFile& aFile)
-/**
-@internalTechnology
-*/
-	{ // static
-	__SHOW_TRACE(_L("Starting CApaProcess::ReadRootStreamLC (file-handle overload)"));
-	CStreamDictionary* const streamDictionary=CStreamDictionary::NewLC();
-	RFile duplicateFile;
-	CleanupClosePushL(duplicateFile);
-	User::LeaveIfError(duplicateFile.Duplicate(aFile)); // this is because CFileStore::FromLC closes the file its passed (and stores its own duplicate)
-	CFileStore* const store=CFileStore::FromL(duplicateFile);
-	CleanupStack::PopAndDestroy(&duplicateFile);
-	CleanupStack::PushL(store);
-	DoReadRootStreamL(*streamDictionary, *store);
-	aStore=store; // delay assignment until nothing can go wrong to avoid destroying the store twice if a leave occurs
-	CleanupStack::Pop(store);
-	return streamDictionary;
-	}
-
-
-void CApaProcess::DoReadRootStreamL(CStreamDictionary& aStreamDictionary, const CFileStore& aStore)
-	{ // static
-	const TStreamId rootStreamId=aStore.Root();
-	if ((aStore.Type()[1]!=KUidAppDllDoc) || (rootStreamId==KNullStreamId))
-		{
-		User::Leave(KErrCorrupt);
-		}
-	RStoreReadStream rootStream;
-	rootStream.OpenLC(aStore, rootStreamId);
-	rootStream>>aStreamDictionary;
-	CleanupStack::PopAndDestroy(&rootStream);
-	}
-
-
-EXPORT_C void CApaProcess::WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const CApaApplication& aApp)
-// this is a static method
-/** Writes the application identifier (derived from the application object CApaApplication) 
-followed by the stream dictionary to the store and makes the stream dictionary the root stream of the
-store.
-
-Typically, the function is called by the application when it 
-implements a file create or file save type operation. It is called after all 
-model and UI data has been persisted. The IDs of the streams containing the 
-model and UI data should have been lodged in the stream dictionary.
-
-In effect, the function finishes off the file save or file
-create type operation, leaving the file containing the store in a valid state
-with the standard interface.
-
-@param aStore  The store to which the root stream is to be written. Before
-calling this function, a reference to the store must be saved by putting a
-pointer onto the cleanup stack or by making it member data of a class. This
-ensures that it is not orphaned in the event of this function leaving.
-@param aStreamDic The stream dictionary containing the locations and associated 
-UIDs of other streams in the store.
-@param aApp  The application used to create the main document in the file
-being written. The application identifier to be written is constructed from
-this application object. */
-	{
-	__SHOW_TRACE(_L("Starting CApaProcess::WriteRootStreamL(app)"));
-	// get the app dll name
-	TParse dllPath;
-	dllPath.SetNoWild(aApp.DllName(),NULL,NULL);
-	// set up an app identifier
-	TApaAppIdentifier appId(aApp.AppDllUid(),dllPath.NameAndExt());
-	// Write the root stream
-	WriteRootStreamL(aStore,aStreamDic,appId);
-	}
-
-
-EXPORT_C void CApaProcess::WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId)
-// this is a static method
-/** Writes the application identifier followed by the stream dictionary 
-to the store and makes the stream dictionary the root stream of the store.
-
-Typically, the function is called by the application when it 
-implements a file create or file save type operation. It is called after all 
-model and UI data has been persisted. The IDs of the streams containing the 
-model and UI data should have been lodged in the stream dictionary.
-
-In effect, the function finishes off the file save or file
-create type operation, leaving the file containing the store in a valid state
-with the standard interface.
-
-@param aStore  The store to which the root stream is to be written. Before
-calling this function, a reference to the store must be saved by putting a
-pointer onto the cleanup stack or by making it member data of a class. This
-ensures that it is not orphaned in the event of this function leaving.
-@param aStreamDic The stream dictionary containing the locations and associated 
-UIDs of other streams in the store.
-@param aAppId  The application identifier to be written into the application
-identifier stream. */
-	{
-	__SHOW_TRACE(_L("Starting CApaProcess::WriteRootStreamL(id)"));
-	// create a stream
-	WriteAppIdentifierL(aStore,aStreamDic,aAppId);
-	// externalize the dictionary
-	RStoreWriteStream stream;
-	TStreamId streamId=stream.CreateLC(aStore);
-	stream<< aStreamDic;
-	stream.CommitL();
-	CleanupStack::PopAndDestroy(); // dictionary stream
-	// set the dictionary stream as the root stream
-	aStore.SetRootL(streamId);
-	}
-
-
-EXPORT_C void CApaProcess::DestroyDocument(CApaDocument* aDoc)
-/** Destroys the specified document.
-
-All references to the document are removed, and associated resources are freed. 
-Specifically, the function deletes any associated application and unloads 
-the application DLL, provided that no other documents of that application 
-type are still open.
-
-All document objects created through CApaProcess must be deleted using this 
-function.
-
-@param aDoc A pointer to the document to be destroyed. 
-@see CApaApplication
-@see CApaProcess */
-	{
-	__SHOW_TRACE(_L("Starting CApaProcess::DestroyDocument(app)"));
-	//
-	if (aDoc)
-		{
-		// delete the doc, keeping a handle to its app
-		CApaApplication* app=aDoc->Application();
-		__ASSERT_DEBUG(app!=NULL,Panic(EDPanicDocWithNoApp));
-		// remove the doc from the list, keeping a handle to the doc
-		TBool appStillRequired=EFalse;
-		__ASSERT_ALWAYS(iDocList, Panic(EPanicNullPointer));
-		for (TInt i=iDocList->Count()-1 ; i>=0 ; i--)
-			{//check through the list, remove the right doc, and see if the app is used by any other docs
-			if ((*iDocList)[i]==aDoc)
-				{
-				iDocList->Delete(i); // removes from array, but doesnt destroy
-				iDocList->Compress();
-				}
-			else if ((*iDocList)[i]->Application()==app)
-				appStillRequired = ETrue;
-			}
-		// null the main doc handle if we delete the main doc
-		if (aDoc==iMainDoc)
-			iMainDoc = NULL;
-		
-		delete aDoc; // del
-		
-		// remove app if no other doc's use it and it's not the main app
-		if ((!appStillRequired)&&(iMainDoc)&&(app!=iMainDoc->Application()))
-			{
-			MarkApplicationForRemoval(app);
-			__ASSERT_DEBUG(iApplicationRemover, Panic(EDPanicNoAppRemover));
-			if (!iApplicationRemover->IsActive())
-				{
-				iApplicationRemover->Start(TCallBack(CApaProcess::IdleRemoveApplications,this));
-				}
-			}
-		}
-	}
-
-
-TInt CApaProcess::IdleRemoveApplications(TAny* aThis)
-// Remove applications on callback of idle object. Using an idle object gives an embedded application a chance to clear
-// its call stack before its dll is closed
-//
-	{
-	CApaProcess* process=reinterpret_cast<CApaProcess*>(aThis);
-	__ASSERT_DEBUG(process, Panic(EDPanicNoProcess));
-	process->RemoveMarkedApplications();
-	return 0;
-	}
-
-
-void CApaProcess::RemoveMarkedApplications()
-// Remove any applications that have been marked for removal, closing their dlls also
-//
-	{
-	__ASSERT_DEBUG(iAppList, Panic(EPanicNullPointer));
-	for (TInt i=iAppList->Count()-1 ; i>=0 ; i--)
-		if ((*iAppList)[i].iToBeRemoved)
-			{
-			delete (*iAppList)[i].iAppHolder;
-			iAppList->Delete(i); // remove from array
-			iAppList->Compress();
-			}
-	}
-
-
-void CApaProcess::MarkApplicationForRemoval(const CApaApplication* aApp)
-// Mark the application in the app list for removal by idle object
-//
-	{
-	__ASSERT_DEBUG(aApp!=NULL,Panic(EDPanicRemovingNullApp));
-	__ASSERT_DEBUG(iAppList, Panic(EPanicNullPointer));
-	// remove the app from the list, keeping a handle to it
-	for (TInt i=iAppList->Count()-1 ; i>=0 ; i--)
-		{
-		__ASSERT_DEBUG((*iAppList)[i].iAppHolder, Panic(EDPanicNoAppHolder));
-		if ((*iAppList)[i].iAppHolder->Application()==aApp)
-			{
-			(*iAppList)[i].iToBeRemoved=ETrue;
-			}
-	}
-
-	}
-
-
-CApaDocument* CApaProcess::CreateDocL(CApaApplication* aApp)
-// creates a new doc with aApp and adds it to the list before returning a handle to it
-//
-	{
-	__SHOW_TRACE(_L("Starting CApaProcess::CreateDocL"));
-	__ASSERT_DEBUG(aApp,Panic(EDPanicNoApp));
-	//
-	// create a new doc with the app
-	CApaDocument* doc=aApp->CreateDocumentL(this); //lint !e613 Possible use of null pointer - Asserted above
-	__ASSERT_ALWAYS(doc!=NULL,Panic(EPanicDocumentNotCreated));
-	// add the doc to the list
-	CleanupStack::PushL(doc);
-	iDocList->AppendL(doc);
-	CleanupStack::Pop(); // doc
-	// return a	handle to the doc
-	return doc;
-	}
-
-
-CApaAppHolder* CApaProcess::FindAppInListL(const TDesC& aAppFileName,TUid aUid)const
-// returns pointer to a matching app, or NULL if not in list
-//
-	{
-	__ASSERT_DEBUG(iAppList, Panic(EPanicNullPointer));
-	TInt index=iAppList->Count();
-	if (aUid!=KNullUid)
-		{// search by UID
-		while (--index>=0)
-			{
-			__ASSERT_DEBUG((*iAppList)[index].iAppHolder, Panic(EDPanicNoAppHolder));
-			if ((*iAppList)[index].iAppHolder->Uid()==aUid)
-				{
-				(*iAppList)[index].iToBeRemoved = FALSE;
-				return (*iAppList)[index].iAppHolder; // match found
-				}
-			}
-		}
-	else
-		{// search by name as no UID has been supplied
-		TParse app; TParse suspect;
-		User::LeaveIfError(app.Set(aAppFileName,NULL,NULL));
-		while (--index>=0)
-			{
-			__ASSERT_DEBUG((*iAppList)[index].iAppHolder, Panic(EDPanicNoAppHolder));
-			suspect.SetNoWild((*iAppList)[index].iAppHolder->FileName(),NULL,NULL);
-			if (!app.Name().CompareF(suspect.Name()))
-				{
-				(*iAppList)[index].iToBeRemoved = FALSE;
-				return (*iAppList)[index].iAppHolder; // match found
-				}
-			}
-		}
-	return NULL; // no match found
-	}
-
-#ifdef USING_ECOM_RECOGS
-CApaExe* CApaProcess::AddAppExeL(TApaApplicationFactory aApplicationFactory)
-	{
-	CApaExe* exe = new(ELeave) CApaExe();
-	CleanupStack::PushL(exe);
-	
-	// create the app
-	exe->CreateApplicationL(aApplicationFactory);
-	__ASSERT_DEBUG(exe->Application(), Panic(EPanicNullPointer));
-	exe->Application()->PreDocConstructL();
-	
-	// add the application to the list and return a pointer to it
-	TApaAppHolderInfo info(exe);
-	__ASSERT_DEBUG(iAppList, Panic(EPanicNullPointer));
-	iAppList->AppendL(info);
-	CleanupStack::Pop(exe);
-
-	return exe;
-	}
-#endif // USING_ECOM_RECOGS
-
-
-EXPORT_C TPtrC CApaProcess::MainDocFileName()const
-/** Returns the filename of the main document.
-
-@return A non-modifiable pointer descriptor to the main document filename. 
-For non file-based applications, the length of this descriptor is zero. */
-	{
-	if (iMainDocFileName!=NULL)
-		{
-		return *iMainDocFileName;
-		}
-	return KNullDesC();
-	}
-
-/** Reserved for future use */
-EXPORT_C void CApaProcess::CApaProcess_Reserved1()
-	{
-	}
-
-/** Reserved for future use */
-EXPORT_C void CApaProcess::CApaProcess_Reserved2()
-	{
-	}
-
-/////////////////////////////
-// TApaApplicationFactory
-/////////////////////////////
-
-/**
-Default constructor
-*/
-
-/** Constructor for TApaApplicationFactory */
-EXPORT_C TApaApplicationFactory::TApaApplicationFactory()
-	:iType(ETypeFunction),
-	 iData(0),
-	 iApplication(NULL)
-	{
-	}
-
-/** 
-Constructor.
-@publishedAll
-@released
-@param aFunction The function from which the application is to be created.
-*/
-EXPORT_C TApaApplicationFactory::TApaApplicationFactory(TFunction aFunction)
-	:iType(ETypeFunction),
-	 iData(reinterpret_cast<TUint>(aFunction)),
-	 iApplication(NULL)
-	{
-	}
-
-/** 
-Constructor. Use this constructor in preference to the constructor taking a "TUid" parameter 
-if at all possible as it is much more efficient.
-@publishedAll
-@released
-@param aEmbeddedApplicationInformation The ECOM implementation-information of the embedded application to be created.
-*/
-EXPORT_C TApaApplicationFactory::TApaApplicationFactory(const CImplementationInformation& aEmbeddedApplicationInformation)
-	:iType(ETypeEmbeddedApplicationInformation),
-	 iData(reinterpret_cast<TUint>(&aEmbeddedApplicationInformation)),
-	 iApplication(NULL)
-	{
-	}
-
-/** 
-Constructor. Use the constructor taking a "const CImplementationInformation&" parameter in preference 
-to this constructor if at all possible as it is much more efficient.
-@publishedAll
-@released
-@param aEmbeddedApplicationUid The ECOM implementation-UID of the embedded application to be created.
-*/
-EXPORT_C TApaApplicationFactory::TApaApplicationFactory(TUid aEmbeddedApplicationUid)
-	:iType(ETypeEmbeddedApplicationUid),
-	 iData(aEmbeddedApplicationUid.iUid),
-	 iApplication(NULL)
-	{
-	}
-
-#ifdef USING_ECOM_RECOGS
-CApaApplication* TApaApplicationFactory::CreateApplicationL() const
-	{
-	CApaApplication* application = NULL;
-
-	switch (iType)
-		{
-		case ETypeFunction:
-			{
-			__ASSERT_DEBUG(iData, Panic(EPanicNullPointer));
-			application=(*reinterpret_cast<TFunction>(iData))();
-			break;
-			}
-		case ETypeEmbeddedApplicationInformation:
-			{
-			__ASSERT_DEBUG(iData, Panic(EPanicNullPointer));
-			const CImplementationInformation& embeddedApplicationInformation=*reinterpret_cast<const CImplementationInformation*>(iData);
-			TUid uid = embeddedApplicationInformation.ImplementationUid();
-			application=CreateEmbeddedApplicationL(uid);
-			break;
-			}
-		case ETypeEmbeddedApplicationUid:
-			{
-			TUid uid = TUid::Uid(iData);
-			application=CreateEmbeddedApplicationL(uid);
-			break;
-			}
-		default:
-			Panic(EPanicBadApplicationFactoryType);
-		}
-
-	return application;
-	}
-
-HBufC* TApaApplicationFactory::AppFileNameL() const
-	{
-	HBufC* appFileName = NULL;
-	switch (iType)
-		{
-		case ETypeFunction:
-			{
-			// Assume that if the type is a function pointer then the app is not embedded (so
-			// the filename is the filename of this process).
-			appFileName = RProcess().FileName().AllocL();
-			break;
-			}
-		case ETypeEmbeddedApplicationInformation:
-			{
-			const CImplementationInformation& embeddedApplicationInformation=*REINTERPRET_CAST(const CImplementationInformation*,iData);
-			appFileName = FullAppFileNameL(embeddedApplicationInformation.DisplayName());
-			break;
-			}
-		case ETypeEmbeddedApplicationUid:
-			{
-			TUid uid = TUid::Uid(iData);
-			HBufC* displayName = EmbeddedApplicationDisplayNameLC(uid);
-			appFileName = FullAppFileNameL(*displayName);
-			CleanupStack::PopAndDestroy(displayName);
-			break;
-			}
-		default:
-			Panic(EPanicBadApplicationFactoryType);
-		}
-
-	return appFileName;
-	}
-
-TUid TApaApplicationFactory::AppFileUid() const
-	{
-	TUid uid=KNullUid;
-	switch (iType)
-		{
-		case ETypeFunction:
-			{
-			uid = RProcess().Type()[2];
-			break;
-			}
-		case ETypeEmbeddedApplicationInformation:
-			{
-			const CImplementationInformation& embeddedApplicationInformation=*REINTERPRET_CAST(const CImplementationInformation*,iData);
-			uid = embeddedApplicationInformation.ImplementationUid();
-			break;
-			}
-		case ETypeEmbeddedApplicationUid:
-			{
-			uid = TUid::Uid(iData);
-			break;
-			}
-		default:
-			Panic(EPanicBadApplicationFactoryType);
-		}
-	return uid;
-	}
-
-HBufC* TApaApplicationFactory::FullAppFileNameL(const TDesC& aAppName)
-	{
-	// This was appropriately changed for data caging (binaries placed in \sys\bin\)
-	TFileName fileName;
-	Dll::FileName(fileName);
-
-	TParse parse;
-	parse.SetNoWild(aAppName, &KApplicationLocation, &fileName);
-	return parse.FullName().AllocL();
-	}
-
-CApaApplication* TApaApplicationFactory::CreateEmbeddedApplicationL(TUid aUid)
-	{ // static
-	CApaApplication* const application=static_cast<CApaApplication*>(REComSession::CreateImplementationL(aUid,_FOFF(CApaApplication,iDtorKey)));
-	const TUid appUid = application->AppDllUid();
-	__ASSERT_ALWAYS(appUid==aUid, Panic(EPanicUidsDoNotMatch));
-	return application;
-	}
-
-
-HBufC* TApaApplicationFactory::EmbeddedApplicationDisplayNameLC(TUid aUid)
-	{ // static
-	HBufC* displayName=NULL;
-
-	RImplInfoPtrArray implementationArray;
-	CleanupStack::PushL(TCleanupItem(CleanupImplementationArray,&implementationArray));
-	REComSession::ListImplementationsL(KUidFileEmbeddedApplicationInterfaceUid,implementationArray);
-	for (TInt i=implementationArray.Count()-1; i>=0; --i)
-		{
-		const CImplementationInformation& implementationInformation=*implementationArray[i];
-		if (implementationInformation.ImplementationUid().iUid==aUid.iUid)
-			{
-			displayName=implementationInformation.DisplayName().AllocL();
-			break;
-			}
-		}
-	CleanupStack::PopAndDestroy(&implementationArray);
-	if (displayName==NULL)
-		{
-		User::Leave(KErrNotFound);
-		}
-	CleanupStack::PushL(displayName);
-
-	return displayName;
-	}
-
-void TApaApplicationFactory::CleanupImplementationArray(TAny* aImplementationArray)
-	{ // static
-	__ASSERT_DEBUG(aImplementationArray, Panic(EPanicNullPointer));
-	RImplInfoPtrArray& implementationArray=*static_cast<RImplInfoPtrArray*>(aImplementationArray);
-	implementationArray.ResetAndDestroy();
-	implementationArray.Close();
-	}
-	
-//
-// MApaEmbeddedDocObserver
-//
-
-/** Constructor for MApaEmbeddedDocObserver */
-EXPORT_C MApaEmbeddedDocObserver::MApaEmbeddedDocObserver()
-	{
-	}
-
-/** Reserved for future use */
-EXPORT_C void MApaEmbeddedDocObserver::MApaEmbeddedDocObserver_Reserved1()
-	{
-	}
-
-/** Reserved for future use */
-EXPORT_C void MApaEmbeddedDocObserver::MApaEmbeddedDocObserver_Reserved2()
-	{
-	}
-#endif // USING_ECOM_RECOGS
--- a/localisation/apparchitecture/apparc/APPARC.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-//
-// APPARC.MMP for component APPARC
-//
-
-/**
-@file
-
-@SYMPurpose apparc.dll Application apparc base classes
-*/
-
-
-target          apparc.dll
-CAPABILITY All -Tcb
-targettype      DLL
-UID		0x1000008D 0x10003A3D
-VENDORID 0x70000001
-
-SOURCEPATH	../apparc
-userinclude		../inc
-systeminclude   /epoc32/include
-
-source          APACMDLN.CPP APAFLREC.CPP APAID.CPP APAMDR.CPP
-source          APASTD.CPP APPARC.CPP
-source          ApaAppServer.cpp
-source          ApaAppClient.cpp
-
-library         euser.lib efsrv.lib gdi.lib estor.lib 
-
-
-#if !defined(WINC)
-macro			USING_ECOM_RECOGS
-library         ecom.lib
-#endif
-
-deffile			APPARC_9_REMOVE_UI_FRAMEWORKS_V1.DEF
-
-START WINS
-	baseaddress	0x40000000
-END
-
-START MARM
-END
--- a/localisation/apparchitecture/apparc/ApaAppClient.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/ApaAppClient.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,6 +13,11 @@
 // Description:
 //
 
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "ApaServerAppPriv.h"
 
 void AppServerPanic(TApaAppServerPanic aReason)
--- a/localisation/apparchitecture/apparc/ApaAppServer.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/ApaAppServer.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,6 +13,11 @@
 // Description:
 //
 
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "ApaServerAppPriv.h"
 
 //
@@ -333,3 +338,5 @@
 	_LIT(KPanic,"ApaAppServer");
 	aMessage.Panic(KPanic,aPanic);
 	}
+
+
--- a/localisation/apparchitecture/apparc/ApaServerAppPriv.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/ApaServerAppPriv.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/apparc/TRACE.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apparc/TRACE.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,8 +17,6 @@
 // #define __SHOW_TRACE(aString) RDebug::Print(aString)
 //
 
-
-
 #define __SHOW_TRACE(aString)
 
 /*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/apparc/apaapp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,390 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apaapp.cpp
+//
+
+#include <apaapp.h> // stuff everyone will want ie most things
+#include <apacln.h> // CleanupStack protection for CApaDocument
+#include "APASTD.H" // Panics etc.
+#include <ecom/ecom.h>
+#include <ecom/implementationinformation.h>
+
+#include "../apparc/TRACE.H"
+
+_LIT(KApplicationLocation,"\\sys\\bin\\");
+
+//
+// CApaApplication
+//
+
+/** Constructor for CApaApplication */
+EXPORT_C CApaApplication::CApaApplication()
+	{
+	}
+
+/** Returns the full name and path of the application.
+
+The default implementation returns the full path name of the application DLL.
+
+An application can provide its own implementation. 
+
+@return Full path name of the application.
+@see CApaApplication::DllName() */
+EXPORT_C TFileName CApaApplication::AppFullName()const
+	{
+	return DllName();
+	}
+
+
+/** Returns the full name and path of the loaded application DLL.
+
+@return Full path name of the application DLL. */
+EXPORT_C TFileName CApaApplication::DllName()const
+	{
+	ASSERT(iAppFileNameRef);
+	return *iAppFileNameRef;
+	}
+
+
+/** Generates a unique filename based on the file name contained within the specified 
+full path name.
+
+If necessary, the function creates the directory structure that is defined 
+in the specified full path name.
+
+If the file name does not yet exist, then this is the file name chosen. If 
+this file name already exists, then a file name of the form: name(nn) is generated, 
+where nn are decimal digits. The value of nn is incremented until a name is 
+generated that is unique within the directory structure. A minimum of two 
+decimal digits is generated.
+
+The function is used by the UI framework.
+
+@param aFs Handle to a file server session. 
+@param aRootName The full path name.
+@return KErrNone if successful, otherwise one of the other system-wide error 
+codes. Specifically: KErrBadName if the file name portion of the specified 
+full path name has invalid format; KErrArgument if the drive, path or file 
+name parts are missing from the specified full path name; KErrOverflow if 
+the generated filename becomes too long; KErrNoMemory if there is insufficient 
+memory to perform the operation.
+@see CEikAppUi */
+EXPORT_C TInt CApaApplication::GenerateFileName(RFs& aFs, TFileName& aRootName)
+	{
+	// check that filename is valid
+	if (!aFs.IsValidName(aRootName))
+		return KErrBadName;
+	//
+	// check that a drive, path and root filename have been specified
+	TParsePtr parsePtr(aRootName);
+	if (!parsePtr.DrivePresent() || !parsePtr.PathPresent() || !parsePtr.NamePresent())
+		return KErrArgument;
+	//
+	// create the path if necessary
+	TInt ret=aFs.MkDirAll(parsePtr.DriveAndPath());
+	if (ret!=KErrNone && ret!=KErrAlreadyExists)
+		return ret;
+	//
+	// Create the Rbuf object to hold a filename (return if no mem available)
+	RBuf newName;
+	ret = newName.Create(aRootName, KMaxFileName+8);
+	if (ret!=KErrNone)
+		return KErrNoMemory;
+	//	
+	// generate a valid filename that doesn't already exist...
+	TEntry entry;
+	TInt i = 1;
+	_LIT(KFormatStringOne,"%S%S(%02d)%S");
+	_LIT(KFormatStringTwo,"%S%S(%d)%S");
+	TBuf<16> format(KFormatStringOne);
+	while (aFs.Entry(newName, entry) == KErrNone)		// Continue until DoesNotExist or PathDoesNotExist, etc
+		{ 
+		// If the file does already exist...
+		// ... then create a "/path/filename(nn)" sting and try again.
+		if (i == 100)
+			format = KFormatStringTwo;
+			
+		TPtrC driveAndPath = parsePtr.DriveAndPath();
+		TPtrC name = parsePtr.Name();
+		TPtrC ext = parsePtr.Ext();
+		newName.Format(format, &driveAndPath, &name, i++, &ext);
+		if (newName.Length() > KMaxFileName)
+			{
+			newName.Close();
+			return KErrOverflow;
+			}
+		}
+	
+	// Set the new filename and return
+	aRootName = newName;
+	newName.Close();
+	return KErrNone;
+	}
+
+
+/** Opens the .ini file associated with the application, constructs the dictionary 
+store object and returns a pointer to it.
+
+The implementation of this function is provided by the OpenIniFileLC() function. 
+The function pops the pointer returned by OpenIniFileLC() from the cleanup 
+stack.
+
+@param aFs Handle to a file server session. 
+@return A pointer to the dictionary store object representing the application's 
+.ini file. 
+@see CApaApplication::OpenIniFileLC() */
+EXPORT_C CDictionaryStore* CApaApplication::OpenIniFileL(RFs& aFs)const
+	{
+	CDictionaryStore* store = OpenIniFileLC(aFs);
+	CleanupStack::Pop(); // store
+	return store;
+	}
+
+EXPORT_C CApaApplication::~CApaApplication()
+	{
+	if (iEComDtorKey != TUid::Null()) 
+		REComSession::DestroyedImplementation(iEComDtorKey);
+
+	iAppFileNameRef = NULL;
+	}
+
+/** Virtual function called by the framework when the application
+has been launched as a server application.
+Applications that wish to be used as server applications must
+override this function to return their implemetation of the server.
+@param aAppServer The server pointer to be set. */
+EXPORT_C void CApaApplication::NewAppServerL(CApaAppServer*& /*aAppServer*/)
+	{
+	User::Leave(KErrNotSupported);
+	}
+
+/** Reserved for future use */
+EXPORT_C void CApaApplication::CApaApplication_Reserved1()
+	{
+	}
+
+/** Reserved for future use */
+EXPORT_C void CApaApplication::CApaApplication_Reserved2()
+	{
+	}
+
+void CApaApplication::SetAppFileNameRef(const RBuf& aFileName)
+	{
+	iAppFileNameRef = &aFileName;
+	}
+
+
+
+//
+// TApaApplicationFactory
+//
+
+/**
+Default constructor
+*/
+
+/** Constructor for TApaApplicationFactory */
+EXPORT_C TApaApplicationFactory::TApaApplicationFactory()
+	: iType(ETypeFunction), iData(0), iApplication(NULL)
+	{
+	}
+
+/** 
+Constructor.
+@publishedAll
+@released
+@param aFunction The function from which the application is to be created.
+*/
+EXPORT_C TApaApplicationFactory::TApaApplicationFactory(TFunction aFunction)
+	: iType(ETypeFunction), iData(reinterpret_cast<TUint>(aFunction)), iApplication(NULL)
+	{
+	}
+
+/** 
+Constructor. Use this constructor in preference to the constructor taking a "TUid" parameter 
+if at all possible as it is much more efficient.
+@publishedAll
+@released
+@param aEmbeddedApplicationInformation The ECOM implementation-information of the embedded application to be created.
+*/
+EXPORT_C TApaApplicationFactory::TApaApplicationFactory(const CImplementationInformation& aEmbeddedApplicationInformation)
+	: iType(ETypeEmbeddedApplicationInformation),
+	 iData(reinterpret_cast<TUint>(&aEmbeddedApplicationInformation)),
+	 iApplication(NULL)
+	{
+	}
+
+/** 
+Constructor. Use the constructor taking a "const CImplementationInformation&" parameter in preference 
+to this constructor if at all possible as it is much more efficient.
+@publishedAll
+@released
+@param aEmbeddedApplicationUid The ECOM implementation-UID of the embedded application to be created.
+*/
+EXPORT_C TApaApplicationFactory::TApaApplicationFactory(TUid aEmbeddedApplicationUid)
+	: iType(ETypeEmbeddedApplicationUid), iData(aEmbeddedApplicationUid.iUid), iApplication(NULL)
+	{
+	}
+
+CApaApplication* TApaApplicationFactory::CreateApplicationL() const
+	{
+	CApaApplication* application = NULL;
+
+	switch (iType)
+		{
+		case ETypeFunction:
+			{
+			__ASSERT_DEBUG(iData, Panic(EPanicNullPointer));
+			application = (*reinterpret_cast<TFunction>(iData))();
+			break;
+			}
+		case ETypeEmbeddedApplicationInformation:
+			{
+			__ASSERT_DEBUG(iData, Panic(EPanicNullPointer));
+			const CImplementationInformation& embeddedApplicationInformation = *reinterpret_cast<const CImplementationInformation*>(iData);
+			TUid uid = embeddedApplicationInformation.ImplementationUid();
+			application = CreateEmbeddedApplicationL(uid);
+			break;
+			}
+		case ETypeEmbeddedApplicationUid:
+			{
+			TUid uid = TUid::Uid(iData);
+			application = CreateEmbeddedApplicationL(uid);
+			break;
+			}
+		default:
+			Panic(EPanicBadApplicationFactoryType);
+		}
+
+	return application;
+	}
+
+HBufC* TApaApplicationFactory::AppFileNameL() const
+	{
+	HBufC* appFileName = NULL;
+	switch (iType)
+		{
+		case ETypeFunction:
+			{
+			// Assume that if the type is a function pointer then the app is not embedded (so
+			// the filename is the filename of this process).
+			appFileName = RProcess().FileName().AllocL();
+			break;
+			}
+		case ETypeEmbeddedApplicationInformation:
+			{
+			const CImplementationInformation& embeddedApplicationInformation = *reinterpret_cast<const CImplementationInformation*>(iData);
+			appFileName = FullAppFileNameL(embeddedApplicationInformation.DisplayName());
+			break;
+			}
+		case ETypeEmbeddedApplicationUid:
+			{
+			const TUid uid = TUid::Uid(iData);
+			HBufC* displayName = EmbeddedApplicationDisplayNameLC(uid);
+			appFileName = FullAppFileNameL(*displayName);
+			CleanupStack::PopAndDestroy(displayName);
+			break;
+			}
+		default:
+			Panic(EPanicBadApplicationFactoryType);
+		}
+
+	return appFileName;
+	}
+
+TUid TApaApplicationFactory::AppFileUid() const
+	{
+	TUid uid=KNullUid;
+	switch (iType)
+		{
+		case ETypeFunction:
+			{
+			uid = RProcess().Type()[2];
+			break;
+			}
+		case ETypeEmbeddedApplicationInformation:
+			{
+			const CImplementationInformation& embeddedApplicationInformation=*REINTERPRET_CAST(const CImplementationInformation*,iData);
+			uid = embeddedApplicationInformation.ImplementationUid();
+			break;
+			}
+		case ETypeEmbeddedApplicationUid:
+			{
+			uid = TUid::Uid(iData);
+			break;
+			}
+		default:
+			Panic(EPanicBadApplicationFactoryType);
+		}
+		
+	return uid;
+	}
+
+HBufC* TApaApplicationFactory::FullAppFileNameL(const TDesC& aAppName)
+	{
+	// This was appropriately changed for data caging (binaries placed in \sys\bin\)
+	TFileName fileName;
+	Dll::FileName(fileName);
+
+	TParse parse;
+	parse.SetNoWild(aAppName, &KApplicationLocation, &fileName);
+	return parse.FullName().AllocL();
+	}
+
+CApaApplication* TApaApplicationFactory::CreateEmbeddedApplicationL(TUid aUid)
+	{ // static
+	CApaApplication* const application=static_cast<CApaApplication*>(REComSession::CreateImplementationL(aUid,_FOFF(CApaApplication,iEComDtorKey)));
+	const TUid appUid = application->AppDllUid();
+	__ASSERT_ALWAYS(appUid==aUid, Panic(EPanicUidsDoNotMatch));
+	return application;
+	}
+
+
+HBufC* TApaApplicationFactory::EmbeddedApplicationDisplayNameLC(TUid aUid)
+	{ // static
+	HBufC* displayName = NULL;
+
+	RImplInfoPtrArray implementationArray;
+	CleanupStack::PushL(TCleanupItem(CleanupImplementationArray,&implementationArray));
+	REComSession::ListImplementationsL(KUidFileEmbeddedApplicationInterfaceUid,implementationArray);
+	
+	for (TInt i = implementationArray.Count()-1; i >= 0; --i)
+		{
+		const CImplementationInformation& implementationInformation=*implementationArray[i];
+		if (implementationInformation.ImplementationUid().iUid==aUid.iUid)
+			{
+			displayName=implementationInformation.DisplayName().AllocL();
+			break;
+			}
+		}
+		
+	CleanupStack::PopAndDestroy(&implementationArray);
+	if (!displayName)
+		User::Leave(KErrNotFound);
+
+	CleanupStack::PushL(displayName);
+
+	return displayName;
+	}
+
+void TApaApplicationFactory::CleanupImplementationArray(TAny* aImplementationArray)
+	{ // static
+	__ASSERT_DEBUG(aImplementationArray, Panic(EPanicNullPointer));
+	RImplInfoPtrArray& implementationArray=*static_cast<RImplInfoPtrArray*>(aImplementationArray);
+	implementationArray.ResetAndDestroy();
+	implementationArray.Close();
+	}
+	
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/apparc/apadoc.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,162 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apadoc.cpp
+//
+
+#include <apadoc.h> // class CApaDocument and MApaEmbeddedDocObserver
+#include <apacln.h> // CleanupStack protection for CApaDocument
+#include "APASTD.H" // Panics etc.
+
+
+//
+// Doc cleanup method
+//
+
+EXPORT_C void TApaDocCleanupItem::DoCleanup(TAny* aPtr)
+	{
+	__ASSERT_ALWAYS(aPtr,Panic(EPanicNoCleanupItem));
+	TApaDocCleanupItem* cleanup = reinterpret_cast<TApaDocCleanupItem*>(aPtr);
+	__ASSERT_ALWAYS(cleanup->iApaProcess,Panic(EPanicNoCleanupItem));//lint !e613 Possible use of null pointer - Asserted above
+	cleanup->iApaProcess->DestroyDocument(cleanup->iApaDoc); //lint !e613 Possible use of null pointer - Asserted above
+	}
+
+
+//
+// CApaDocument
+//
+
+/** Constructor for CApaDocument */
+EXPORT_C CApaDocument::CApaDocument()
+	{
+	}
+
+EXPORT_C CApaDocument::CApaDocument(CApaApplication& aApp,CApaProcess& aProcess)
+	: iApplication(&aApp),
+	iApaProcess(&aProcess)
+/** Constructs the document object with the specified application and process.
+
+Derived classes must define and implement a constructor through which both 
+the associated application and process can be specified. A typical implementation 
+calls this constructor through a constructor initialization list.
+
+@param aApp The application.
+@param aProcess The process.
+@see CEikDocument */
+	{}
+
+
+EXPORT_C CApaDocument::~CApaDocument()
+/** Destructor.
+
+The implementation is empty. */
+	{
+	iContainer = NULL;
+	iApplication = NULL;
+	iApaProcess = NULL;
+	}
+
+
+EXPORT_C CApaDocument::TCapability CApaDocument::Capability() const
+/** Gets the document's capabilities.
+
+Capabilities are encapsulated by an instance of a TCapability class, a public 
+class defined inside this class.
+
+The default implementation returns a default TCapability object, indicating 
+that the document does not support any of the defined capabilities.
+
+If a document does support one or more of the capabilities, it should override 
+this function to return a suitably initialised object.
+
+@return The document's capabilities */
+	{
+	return TCapability();
+	}
+
+
+EXPORT_C void CApaDocument::ValidatePasswordL() const
+/** Checks the document password.
+
+The default implementation is empty.
+
+If a document is intended to be password protected, the UI application should 
+provide an implementation that forces the user to enter the password and validate 
+the input.
+
+If the document is protected by a password and the password entered by the 
+user is incorrect, the function should leave with KErrLocked, otherwise it 
+should just return. */
+	{}
+
+
+EXPORT_C CPicture* CApaDocument::GlassPictureL()
+// Return handle to glass picture, creating one if not already created.
+// returns NULL as glass pictures are not supported by default
+/** Gets an object that can draw a representation of the document's content.
+
+If the document supports being embedded as a glass door, then the UI application 
+must provide an implementation for this function.
+
+The default implementation raises an APPARC 8 panic.
+
+@return A pointer to a glass door. */
+	{
+	Panic(EPanicNoGlassDoorMethodSupplied);
+	//
+	return NULL;
+	}
+
+
+EXPORT_C void CApaDocument::ExternalizeL(RWriteStream& /*aStream*/)const
+	{}
+
+
+EXPORT_C void CApaDocument::OpenFileL(CFileStore*&, RFile&)
+	{
+	}
+
+EXPORT_C void CApaDocument::Reserved_2()
+	{}
+
+
+EXPORT_C CApaDocument::TCapability::TCapability()
+	:iCapability(0),TCapability_Reserved1(0)
+/** Constructs a default capability object.
+
+All capabilities are marked as "not supported". */
+	{}
+
+	
+//
+// MApaEmbeddedDocObserver
+//
+
+/** Constructor for MApaEmbeddedDocObserver */
+EXPORT_C MApaEmbeddedDocObserver::MApaEmbeddedDocObserver()
+	{
+	}
+
+/** Reserved for future use */
+EXPORT_C void MApaEmbeddedDocObserver::MApaEmbeddedDocObserver_Reserved1()
+	{
+	}
+
+/** Reserved for future use */
+EXPORT_C void MApaEmbeddedDocObserver::MApaEmbeddedDocObserver_Reserved2()
+	{
+	}
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/apparc/apaproc.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,824 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apaproc.cpp
+//
+
+#include <apaproc.h> // stuff everyone will want ie most things
+#include <apacln.h> // CleanupStack protection for CApaDocument
+#include "APADLL.H" // class RApaApplication
+#include "APASTD.H" // Panics etc.
+#include <s32file.h>
+#include "../apparc/TRACE.H"
+#include <e32def_private.h> // MattR addition for __PROFILE_END error
+
+const TInt KAppProcessArrayGranularity(1);
+
+
+//
+// CApaParentProcessMonitor
+//
+
+class CApaParentProcessMonitor : public CActive
+	{
+public: // Construction / destruction
+	static CApaParentProcessMonitor* NewL(TProcessId aProcessId);
+	~CApaParentProcessMonitor();
+	void ConstructL();
+private:
+	CApaParentProcessMonitor(TProcessId aProcessId);
+public: // From CActive
+	void RunL();
+	void DoCancel();
+private:
+	TProcessId iProcessId;
+	RProcess iProcess;
+	};
+
+CApaParentProcessMonitor* CApaParentProcessMonitor::NewL(TProcessId aProcessId)
+	{
+	CApaParentProcessMonitor* self=new (ELeave) CApaParentProcessMonitor(aProcessId);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CApaParentProcessMonitor::CApaParentProcessMonitor(TProcessId aProcessId)
+	: CActive(EPriorityLow)
+	{
+	iProcessId=aProcessId;
+	}
+
+CApaParentProcessMonitor::~CApaParentProcessMonitor()
+	{
+	Cancel();
+	}
+
+void CApaParentProcessMonitor::ConstructL()
+	{
+	User::LeaveIfError(iProcess.Open(iProcessId));
+	iProcess.Logon(iStatus);
+	if(iStatus==KErrNoMemory)
+		{
+		User::WaitForRequest(iStatus);
+		User::Leave(KErrNoMemory);
+		}
+	CActiveScheduler::Add(this);
+	SetActive();
+	}
+
+void CApaParentProcessMonitor::RunL()
+	{
+	// Do something that will kill the child when the parent process terminates
+	if(iStatus==KErrNone)
+		{
+		RProcess proc;
+		proc.Terminate(KErrNone);
+		}
+	}
+
+void CApaParentProcessMonitor::DoCancel()
+	{
+	iProcess.LogonCancel(iStatus);
+	}
+
+//
+// CApaProcess
+//
+
+/** Constructor for CApaProcess */
+EXPORT_C CApaProcess::CApaProcess()
+	{
+	}
+
+EXPORT_C CApaProcess* CApaProcess::NewL(const RFs& aFs)
+/** Creates and returns a pointer to a new application process.
+
+This function is not used by UI applications.
+
+@param aFs Handle to a file server session.
+@return Pointer to the new application process. */
+	{
+	CApaProcess* self=new(ELeave) CApaProcess(aFs);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	return self;
+	}
+
+EXPORT_C CApaProcess::CApaProcess(const RFs& aFs)
+	:iFsSession(aFs)
+/** Constructs the application process object with the specified file session handle.
+
+Derived classes must define and implement a constructor through which 
+the file session handle can be specified. A 
+typical implementation calls this constructor through a constructor initialization 
+list.
+
+This constructor is used by the UI framework.
+
+@deprecated
+@param aFs Handle to a file server session */
+	{}
+
+const TInt KPriorityGreaterThanShutter=102;
+
+EXPORT_C void CApaProcess::ConstructL()
+/** Completes construction of the application process object.
+
+Implementers of derived classes must call this function as part of the second 
+stage construction of an object. Typically, derived classes implement their 
+own NewL() function and call ConstructL() as part of that implementation. */
+	{
+	//
+	iAppList = new(ELeave) CArrayPtrFlat<RApaApplication>(KAppProcessArrayGranularity);
+	iDocList = new(ELeave) CArrayPtrFlat<CApaDocument>(KAppProcessArrayGranularity);
+	iMainDocFileName = HBufC::NewL(KMaxFileName);
+	iAsyncAppRemover = CIdle::NewL(KPriorityGreaterThanShutter);	// Use an idle object so that app has chance to clear its call stack
+	}
+
+EXPORT_C void CApaProcess::ConstructL(TProcessId aParentProcessId)
+/** Completes construction of the application process object, passing in a Parent Process Identifier.
+
+Implementers of derived classes must call this function as part of the second 
+stage construction of an object. Typically, derived classes implement their 
+own NewL() function and call ConstructL() as part of that implementation.
+
+@param aParentProcessId Id of the parent process. This process will terminate when the parent does. */
+	{
+	ConstructL();
+	if(KNullProcessId!=aParentProcessId)
+		{
+		iMonitor=CApaParentProcessMonitor::NewL(aParentProcessId);
+		}
+	}
+
+/** Frees resources prior to destruction.
+
+Documents must be saved before the application process is deleted, otherwise 
+data may be lost.
+
+In debug mode, the destructor raises an APPARC 6 panic if documents still 
+exist, and an APPARC 5 panic if applications still exist. */
+EXPORT_C CApaProcess::~CApaProcess()
+// If this is called without calling ResetL() or CApaDocument::SaveL() first, data may be lost
+//
+	{
+	if (iMainDoc)
+		{
+		DestroyDocument(iMainDoc);
+		iMainDoc = NULL;
+		}
+
+	if (iDocList)
+		{
+		__ASSERT_DEBUG(iDocList->Count()==0,Panic(EPanicDocListNotEmpty));
+		for (TInt i=iDocList->Count()-1 ; i>=0 ; i--)
+			delete (*iDocList)[i]; // delete stray doc's in release mode, just to be tidy
+		}
+
+	if (iAppList)
+		{
+		for (TInt i = iAppList->Count()-1 ; i >= 0 ; i--)
+			(*iAppList)[i]->Close();
+		}
+
+	delete iAppList;
+	delete iDocList;
+	delete iMainDocFileName;
+	delete iAsyncAppRemover;
+	delete iMonitor;
+	}
+
+
+/** Resets the the application process to its initial state.
+
+Specifically, it saves the main document, deletes the main and all embedded 
+documents from memory, resets the main document filename and deletes all applications 
+except the main application.
+
+The function can leave if saving the main document fails. */
+EXPORT_C void CApaProcess::ResetL()
+	{
+	if (iMainDoc)
+		{
+		iMainDoc->SaveL();
+		DeleteAllDocs(); // sets iMainDoc to NULL, deletes all apps except main
+		}
+		
+	__ASSERT_DEBUG(iMainDocFileName, Panic(EPanicNoDocument));
+	*iMainDocFileName = KNullDesC;
+	}
+
+
+void CApaProcess::DeleteAllDocs()
+// deletes all docs
+// deletes all apps except main app
+// sets iMainDoc* to NULL
+//
+	{
+	CApaApplication* mainApp = NULL;
+	
+	// If the main document has been constructed...
+	if (iMainDoc) // then iDocList must also exist
+		{
+		__ASSERT_DEBUG(iMainDoc->Application(), Panic(EDPanicNoApp));
+		mainApp = iMainDoc->Application();
+		
+		// ...find the main document in the list of documents and delete it.
+		for (TInt i = iDocList->Count()-1; i >= 0; i--)
+			{
+			if ((*iDocList)[i] == iMainDoc)
+				{
+				iDocList->Delete(i); // removes from array, but doesnt destroy
+				delete iMainDoc;
+				iMainDoc = NULL;
+				break;
+				}
+			}
+		}
+	
+	// Remove all documents from the list of documents, without deleting them.
+	if(iDocList)	
+		{
+		__ASSERT_ALWAYS(iDocList->Count()==0, Panic(EPanicDocListNotEmpty));
+		iDocList->Reset();
+		}
+
+	// Delete all applications except the main one.
+	if(iAppList)
+		{
+		for (TInt ii = iAppList->Count()-1; ii >= 0; ii--) // need to iterate backwards as the array changes size during the loop
+			{
+			if ((*iAppList)[ii]->Application() != mainApp)
+				{
+				(*iAppList)[ii]->Close();
+				iAppList->Delete(ii);
+				}
+			}
+	
+		iAppList->Compress();
+		}
+	}
+
+
+EXPORT_C void CApaProcess::SetMainDocFileName(const TDesC& aMainDocFileName)
+/** Sets the filename of the main document.
+
+@param aMainDocFileName The filename to be set.
+@panic APPARC 7 If the length of aMainDocFileName is greater than KMaxFileName or the
+length of the last filename set by SetMainDocFileNameL if greater
+@see KMaxFileName */
+	{
+	__ASSERT_DEBUG( iMainDocFileName, Panic(EPanicNullPointer));
+	__ASSERT_ALWAYS( aMainDocFileName.Length()<=iMainDocFileName->Des().MaxLength() ,Panic(EPanicFileNameTooLong));
+	*iMainDocFileName = aMainDocFileName;
+	}
+
+EXPORT_C void CApaProcess::SetMainDocFileNameL(const TDesC& aMainDocFileName)
+/** Sets the filename of the main document.
+
+@param aMainDocFileName The filename to be set. There is no restriction on the
+length of this descriptor. */
+	{
+	__ASSERT_ALWAYS( iMainDocFileName, Panic(EPanicNullPointer));
+	const TInt newLength = aMainDocFileName.Length() < KMaxFileName ? KMaxFileName : aMainDocFileName.Length();
+	if (newLength != iMainDocFileName->Des().MaxLength())
+		{
+		HBufC* const newMainDocFileName = HBufC::NewL(newLength);
+		delete iMainDocFileName;
+		iMainDocFileName = newMainDocFileName;
+		}
+	SetMainDocFileName(aMainDocFileName);
+	}
+
+/** Sets the main document.
+
+@param aDocument A pointer to the document to be set as the main document 
+of the application process. This must be a an object created by the AddNewDocumentL() 
+or OpenNewDocumentL() functions 
+@see CApaProcess::AddNewDocumentL()
+@see CApaProcess::OpenNewDocumentL() */
+EXPORT_C void CApaProcess::SetMainDocument(CApaDocument* aDocument)
+	{
+	__ASSERT_ALWAYS( iDocList, Panic(EPanicNullPointer));
+	// check that the prospective main doc has actually been added to the array
+	for (TInt i = iDocList->Count()-1 ; i >= 0 ; i--)
+		{
+		if ((*iDocList)[i] == aDocument)
+			break;
+		
+		if (i==0)
+			Panic(EPanicNoDocument);
+		}
+	
+	// assign it once it has checked out
+	iMainDoc = aDocument;
+	}
+
+/** Creates and adds a new document using the specified application factory.
+
+The document may be a main document or an embedded document.
+
+Any document created with this function must be destroyed using DestroyDocument().
+
+@param aApplicationFactory Should be created implicitly by passing a pointer to
+a factory function, an ECOM plugin UID, or a CImplementationInformation reference.
+@return A pointer to the new document.
+@see CApaProcess::DestroyDocument()
+@see CApaApplication */
+EXPORT_C CApaDocument* CApaProcess::AddNewDocumentL(TApaApplicationFactory aApplicationFactory)
+	{
+	__SHOW_TRACE(_L("Starting CApaProcess::AddNewDocumentL"));
+	__APA_PROFILE_START(0);
+
+	RApaApplication* app = AddAppL(aApplicationFactory);	
+
+	// use the app to create a doc
+	CApaDocument* doc = NULL;
+	TRAPD(err, doc = CreateDocL(app->Application()));
+	if (err)
+		RemoveApp(app);	// remove app as it has been orphaned
+	
+	User::LeaveIfError(err);
+	__PROFILE_END(0);
+	return doc;
+	} //lint !e1762 Member function could be made const - Not true
+
+
+
+void CApaProcess::RemoveApp(RApaApplication* aApp)
+// removes app exe from the list if it exists, panics otherwise
+	{
+	__ASSERT_ALWAYS(iAppList, Panic(EPanicNullPointer));
+	TInt i = 0;
+	for (i = iAppList->Count()-1; i >= 0; i--)
+		{
+		if ((*iAppList)[i] == aApp) // the main app may be alive on its own if Reset() has just been called
+			{
+			aApp->Close(); // the main app may be alive on its own if Reset() has just been called
+			iAppList->Delete(i);
+			break;
+			}
+		}
+		
+	if (i < 0)
+		Panic(EPanicAppNotInList);
+	}
+
+
+/** Opens the specified file and restores the content as a document.
+
+The created document can be merged into or embedded in another document.
+
+Any document created with this function must be destroyed using DestroyDocument().
+
+@param aStore On return, this contains a pointer to the store object created 
+during the restore.
+@param aStreamDic On return, this contains a pointer to the stream dictionary 
+object created during the restore. 
+@param aDocFullFileName The name of the file containing the document. 
+@param aFileMode The mode in which to open the file. 
+@return A pointer to the restored document.
+@see TFileMode
+@see CApaProcess::DestroyDocument() */
+EXPORT_C CApaDocument* CApaProcess::OpenNewDocumentL(CFileStore*& aStore,CStreamDictionary*& aStreamDic,const TDesC& aDocFullFileName,TUint aFileMode)
+	{
+	__SHOW_TRACE(_L("Starting CApaProcess::OpenNewDocumentL"));
+	__APA_PROFILE_START(1);
+	TParse parser;
+	User::LeaveIfError(iFsSession.Parse(aDocFullFileName,parser)); 
+	// open doc as a file store & read in the header
+	CFileStore* docStore;
+	CStreamDictionary* streamDic = ReadRootStreamLC(FsSession(),docStore,parser.FullName(),aFileMode);
+	CleanupStack::PushL(docStore);
+	// read in the app id info
+	TApaAppIdentifier appId=ReadAppIdentifierL(*docStore,*streamDic);
+	// create the doc
+	CApaDocument* importedDoc =	AddNewDocumentL(appId.iAppUid);
+	// restore the document
+	TApaDocCleanupItem cleanup(this,importedDoc);
+	CleanupStack::PushL(cleanup);
+	importedDoc->RestoreL(*docStore,*streamDic);
+	CleanupStack::Pop(3); //docStore,importedDoc,streamDic
+	aStore = docStore;
+	aStreamDic = streamDic;
+	__PROFILE_END(1);
+	return importedDoc;
+	}
+
+/** Reads the application identifier from its stream in the specified store and 
+returns it.
+
+The location of the stream is found in the specified stream dictionary.
+
+@param aStore The store from which the application identifier should be read. 
+@param aStreamDic The stream dictionary containing the stream ID of the application 
+identifier stream. The stream dictionary can be found in the root stream of 
+the store.
+@return The application identifier. */
+EXPORT_C TApaAppIdentifier CApaProcess::ReadAppIdentifierL(const CStreamStore& aStore,const CStreamDictionary& aStreamDic)
+	{
+	// this is a static method
+	__SHOW_TRACE(_L("Starting CApaProcess::ReadAppIdentifierL"));
+	
+	TStreamId infoStreamId = aStreamDic.At(KUidAppIdentifierStream);
+	TApaAppIdentifier appId;
+	
+	// create a stream and read in the data
+	RStoreReadStream stream;
+	stream.OpenLC(aStore,infoStreamId);
+
+	stream >> appId;
+	stream.Close();
+
+	CleanupStack::PopAndDestroy(); // stream
+	return appId;	
+	}
+
+
+/** Writes the application identifier to a new stream in the specified store and 
+records the location of this stream in the specified stream dictionary.
+
+@param aStore The store to which the application identifier should be written. 
+
+@param aStreamDic The stream dictionary. 
+@param aAppId The application identifier to be externalised to a stream. */
+EXPORT_C void CApaProcess::WriteAppIdentifierL(CStreamStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId)
+	{
+	// this is a static method
+	__SHOW_TRACE(_L("Starting CApaProcess::WriteAppIdentifierL"));
+	
+	// create a stream
+	RStoreWriteStream stream;
+	TStreamId streamId = stream.CreateLC(aStore);
+	
+	// stream the header
+	stream << aAppId;
+	stream.CommitL();
+	
+	CleanupStack::PopAndDestroy(); // id stream
+	// enter the stream in the dictionary
+	aStreamDic.AssignL(KUidAppIdentifierStream, streamId);
+	}
+
+
+/** Reads the stream dictionary contained as the root stream in the specified document 
+file.
+
+The function constructs, and returns a pointer to the stream dictionary object 
+and puts the pointer to the stream dictionary object onto the cleanup stack. 
+It also returns a pointer to the created file store object through an argument 
+reference. 
+
+The file must be a valid document file; otherwise the function leaves with one of 
+the system-wide error codes.
+
+@param aFs Handle to a file server session.
+@param aStore On return, a pointer to the newly created file store object. 
+@param aDocFullFileName The full path name of the document file. 
+@param aFileMode The mode in which to open the file.
+@return A pointer to the stream dictionary object read from the root stream 
+of the store. 
+@see TFileMode */
+EXPORT_C CStreamDictionary* CApaProcess::ReadRootStreamLC(RFs& aFs,CFileStore*& aStore,const TDesC& aDocFullFileName,TUint aFileMode)
+	{ // static
+	__SHOW_TRACE(_L("Starting CApaProcess::ReadRootStreamLC (file-name overload)"));
+	CStreamDictionary* const streamDictionary=CStreamDictionary::NewLC();
+	CFileStore* const store=CFileStore::OpenLC(aFs,aDocFullFileName,aFileMode);
+	DoReadRootStreamL(*streamDictionary, *store);
+	aStore=store; // delay assignment until nothing can go wrong to avoid destroying the store twice if a leave occurs
+	CleanupStack::Pop(store);
+	return streamDictionary;
+	}
+
+
+/**
+@internalTechnology
+*/
+EXPORT_C CStreamDictionary* CApaProcess::ReadRootStreamLC(CFileStore*& aStore, const RFile& aFile)
+	{ // static
+	__SHOW_TRACE(_L("Starting CApaProcess::ReadRootStreamLC (file-handle overload)"));
+
+	CStreamDictionary* const streamDictionary = CStreamDictionary::NewLC();
+	
+	RFile duplicateFile;
+	CleanupClosePushL(duplicateFile);
+	User::LeaveIfError(duplicateFile.Duplicate(aFile)); // this is because CFileStore::FromLC closes the file its passed (and stores its own duplicate)
+	
+	CFileStore* const store = CFileStore::FromL(duplicateFile);
+	CleanupStack::PopAndDestroy(&duplicateFile);
+	
+	CleanupStack::PushL(store);
+	DoReadRootStreamL(*streamDictionary, *store);
+	aStore = store; // delay assignment until nothing can go wrong to avoid destroying the store twice if a leave occurs
+	CleanupStack::Pop(store);
+	
+	return streamDictionary;
+	}
+
+
+void CApaProcess::DoReadRootStreamL(CStreamDictionary& aStreamDictionary, const CFileStore& aStore)
+	{ // static
+	const TStreamId rootStreamId=aStore.Root();
+	if ((aStore.Type()[1] != KUidAppDllDoc) || (rootStreamId == KNullStreamId))
+		User::Leave(KErrCorrupt);
+	
+	RStoreReadStream rootStream;
+	rootStream.OpenLC(aStore, rootStreamId);
+	rootStream >> aStreamDictionary;
+	CleanupStack::PopAndDestroy(&rootStream);
+	}
+
+
+/** Writes the application identifier (derived from the application object CApaApplication) 
+followed by the stream dictionary to the store and makes the stream dictionary the root stream of the
+store.
+
+Typically, the function is called by the application when it 
+implements a file create or file save type operation. It is called after all 
+model and UI data has been persisted. The IDs of the streams containing the 
+model and UI data should have been lodged in the stream dictionary.
+
+In effect, the function finishes off the file save or file
+create type operation, leaving the file containing the store in a valid state
+with the standard interface.
+
+@param aStore  The store to which the root stream is to be written. Before
+calling this function, a reference to the store must be saved by putting a
+pointer onto the cleanup stack or by making it member data of a class. This
+ensures that it is not orphaned in the event of this function leaving.
+@param aStreamDic The stream dictionary containing the locations and associated 
+UIDs of other streams in the store.
+@param aApp  The application used to create the main document in the file
+being written. The application identifier to be written is constructed from
+this application object. */
+EXPORT_C void CApaProcess::WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const CApaApplication& aApp)
+	{ // this is a static method
+	__SHOW_TRACE(_L("Starting CApaProcess::WriteRootStreamL(app)"));
+	// get the app dll name
+	TParse dllPath;
+	dllPath.SetNoWild(aApp.DllName(),NULL,NULL);
+	// set up an app identifier
+	TApaAppIdentifier appId(aApp.AppDllUid(),dllPath.NameAndExt());
+	// Write the root stream
+	WriteRootStreamL(aStore,aStreamDic,appId);
+	}
+
+
+/** Writes the application identifier followed by the stream dictionary 
+to the store and makes the stream dictionary the root stream of the store.
+
+Typically, the function is called by the application when it 
+implements a file create or file save type operation. It is called after all 
+model and UI data has been persisted. The IDs of the streams containing the 
+model and UI data should have been lodged in the stream dictionary.
+
+In effect, the function finishes off the file save or file
+create type operation, leaving the file containing the store in a valid state
+with the standard interface.
+
+@param aStore  The store to which the root stream is to be written. Before
+calling this function, a reference to the store must be saved by putting a
+pointer onto the cleanup stack or by making it member data of a class. This
+ensures that it is not orphaned in the event of this function leaving.
+@param aStreamDic The stream dictionary containing the locations and associated 
+UIDs of other streams in the store.
+@param aAppId  The application identifier to be written into the application
+identifier stream. */
+EXPORT_C void CApaProcess::WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId)
+	{ // this is a static method
+	__SHOW_TRACE(_L("Starting CApaProcess::WriteRootStreamL(id)"));
+	// create a stream
+	WriteAppIdentifierL(aStore,aStreamDic,aAppId);
+	
+	// externalize the dictionary
+	RStoreWriteStream stream;
+	TStreamId streamId = stream.CreateLC(aStore);
+	stream << aStreamDic;
+	stream.CommitL();
+	CleanupStack::PopAndDestroy(); // dictionary stream
+	
+	// set the dictionary stream as the root stream
+	aStore.SetRootL(streamId);
+	}
+
+
+/** Destroys the specified document.
+
+All references to the document are removed, and associated resources are freed. 
+Specifically, the function deletes any associated application and unloads 
+the application DLL, provided that no other documents of that application 
+type are still open.
+
+All document objects created through CApaProcess must be deleted using this 
+function.
+
+@param aDoc A pointer to the document to be destroyed. 
+@see CApaApplication
+@see CApaProcess */
+EXPORT_C void CApaProcess::DestroyDocument(CApaDocument* aDoc)
+	{
+	__SHOW_TRACE(_L("Starting CApaProcess::DestroyDocument(app)"));
+
+	if(!aDoc)
+		return;
+	
+	// delete the doc, keeping a handle to its app
+	CApaApplication* const app = aDoc->Application();
+	__ASSERT_DEBUG(app, Panic(EDPanicDocWithNoApp));
+	
+	// remove the doc from the list, keeping a handle to the doc
+	TBool appStillRequired = EFalse;
+	__ASSERT_ALWAYS(iDocList, Panic(EPanicNullPointer));
+	for (TInt i = iDocList->Count()-1; i >= 0; i--)
+		{ // check through the list, remove the right doc, and see if the app is used by any other docs
+		if((*iDocList)[i] == aDoc)
+			{
+			iDocList->Delete(i); // removes from array, but doesnt destroy
+			iDocList->Compress();
+			}
+		else if ((*iDocList)[i]->Application() == app)
+			appStillRequired = ETrue;
+		}
+	
+	// Null the main doc handle if we are deleting the main doc
+	if (aDoc == iMainDoc)
+		iMainDoc = NULL;
+	
+	// Now delete the document
+	delete aDoc;
+	
+	// Remove app if no other doc's use it and it's not the main app
+	if (!appStillRequired && iMainDoc && app!=iMainDoc->Application())
+		{
+		MarkApplicationForAsyncRemoval(app);
+		__ASSERT_DEBUG(iAsyncAppRemover, Panic(EDPanicNoAppRemover));
+		
+		if (!iAsyncAppRemover->IsActive())
+			iAsyncAppRemover->Start(TCallBack(CApaProcess::IdleRemoveApplications, this));
+		}
+	}
+
+void CApaProcess::MarkApplicationForAsyncRemoval(const CApaApplication* aApp)
+// Mark the application in the app list for removal by idle object
+//
+	{
+	__ASSERT_DEBUG(aApp!=NULL,Panic(EDPanicRemovingNullApp));
+	__ASSERT_DEBUG(iAppList, Panic(EPanicNullPointer));
+	// remove the app from the list, keeping a handle to it
+	for (TInt i = iAppList->Count()-1 ; i >= 0 ; i--)
+		{
+		__ASSERT_DEBUG((*iAppList)[i], Panic(EDPanicNoAppHolder));
+		if ((*iAppList)[i]->Application() == aApp)
+			{
+			(*iAppList)[i]->ScheduleForAsyncDeletion();
+			return;
+			}
+		}
+	}
+
+TInt CApaProcess::IdleRemoveApplications(TAny* aApaProcess)
+// Remove applications on callback of idle object. Using an idle object gives an embedded application a chance to clear
+// its call stack before its dll is closed
+//
+	{
+	CApaProcess* process = reinterpret_cast<CApaProcess*>(aApaProcess);
+	__ASSERT_DEBUG(process, Panic(EDPanicNoProcess));
+	process->RemoveMarkedApplications();
+	
+	return KErrNone;
+	}
+
+
+void CApaProcess::RemoveMarkedApplications()
+// Remove any applications that have been marked for removal, closing their dlls also
+//
+	{
+	__ASSERT_DEBUG(iAppList, Panic(EPanicNullPointer));
+	for (TInt i = iAppList->Count()-1; i >= 0; i--)
+		{
+		if ((*iAppList)[i]->IsScheduleForAsyncDeletion())
+			{
+			(*iAppList)[i]->Close();
+			iAppList->Delete(i); // remove from array
+			}
+		}
+	
+	iAppList->Compress();
+	}
+
+
+CApaDocument* CApaProcess::CreateDocL(CApaApplication* aApp)
+// creates a new doc with aApp and adds it to the list before returning a handle to it
+//
+	{
+	__SHOW_TRACE(_L("Starting CApaProcess::CreateDocL"));
+	__ASSERT_DEBUG(aApp, Panic(EDPanicNoApp));
+
+	// create a new doc with the app
+	CApaDocument* doc = aApp->CreateDocumentL(this); //lint !e613 Possible use of null pointer - Asserted above
+	__ASSERT_ALWAYS(doc, Panic(EPanicDocumentNotCreated));
+
+	// add the doc to the list
+	CleanupStack::PushL(doc);
+	iDocList->AppendL(doc);
+	CleanupStack::Pop(); // doc
+
+	// return a	handle to the doc
+	return doc;
+	}
+
+
+RApaApplication* CApaProcess::FindAppInListL(const TDesC& aAppFileName, TUid aUid) const
+// returns pointer to a matching app, or NULL if not in list
+//
+	{
+	__ASSERT_DEBUG(iAppList, Panic(EPanicNullPointer));
+
+	TInt index = iAppList->Count();
+	if (aUid!=KNullUid)
+		{// search by UID
+		while(--index >= 0)
+			{
+			__ASSERT_DEBUG((*iAppList)[index], Panic(EDPanicNoAppHolder));
+			if ((*iAppList)[index]->AppFileUid() == aUid)
+				{
+				(*iAppList)[index]->ScheduleForAsyncDeletion(EFalse);
+				return (*iAppList)[index]; // match found
+				}
+			}
+		}
+	else
+		{// search by name as no UID has been supplied
+		TParse app; 
+		TParse suspect;
+		User::LeaveIfError(app.Set(aAppFileName,NULL,NULL));
+		while (--index>=0)
+			{
+			__ASSERT_DEBUG((*iAppList)[index], Panic(EDPanicNoAppHolder));
+			suspect.SetNoWild((*iAppList)[index]->AppFileName(), NULL, NULL);
+			if (!app.Name().CompareF(suspect.Name()))
+				{
+				(*iAppList)[index]->ScheduleForAsyncDeletion(EFalse);
+				return (*iAppList)[index]; // match found
+				}
+			}
+		}
+		
+	return NULL; // no match found
+	}
+
+RApaApplication* CApaProcess::AddAppL(TApaApplicationFactory aApplicationFactory)
+	{
+	RApaApplication* app = new (ELeave) RApaApplication;
+	CleanupClosePushL(*app);
+	
+	// create the app
+	app->CreateApplicationL(aApplicationFactory);
+	__ASSERT_DEBUG(app->Application(), Panic(EPanicNullPointer));
+	app->Application()->PreDocConstructL();
+	
+	// add the application to the list and return a pointer to it
+	__ASSERT_DEBUG(iAppList, Panic(EPanicNullPointer));
+	iAppList->AppendL(app);
+	
+	CleanupStack::Pop(app);
+	return app;
+	}
+
+EXPORT_C TPtrC CApaProcess::MainDocFileName()const
+/** Returns the filename of the main document.
+
+@return A non-modifiable pointer descriptor to the main document filename. 
+For non file-based applications, the length of this descriptor is zero. */
+	{
+	if (iMainDocFileName)
+		return *iMainDocFileName;
+	
+	return KNullDesC();
+	}
+
+/** Reserved for future use */
+EXPORT_C void CApaProcess::CApaProcess_Reserved1()
+	{
+	}
+
+/** Reserved for future use */
+EXPORT_C void CApaProcess::CApaProcess_Reserved2()
+	{
+	}
+
+
+
--- a/localisation/apparchitecture/apserv/APSCLSV.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSCLSV.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,20 +11,15 @@
 // Contributors:
 //
 // Description:
+// apsclsv.h
 //
 
-#if !defined(__APGCLSV_H__)
+#ifndef __APGCLSV_H__
 #define __APGCLSV_H__
 
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-#if !defined(__APAID_H__)
 #include <apaid.h>
-#endif
-#if !defined(__APMSTD_H__)
 #include <apmstd.h>
-#endif
 
 // A version must be specifyed when creating a session with the server
 const TUint KAppListServMajorVersionNumber=7;
@@ -41,7 +36,7 @@
 enum TCountServRqst
 	{
 	//No Capability requirement
-	EAppListServFirst = EFirstUnrestrictedOpcodeInAppListServ,
+	EAppListServFirst = EFirstUnrestrictedOpcodeInAppListServ,	// = 0
 	EAppListServInitFullList,
 	EAppListServInitEmbedList,
 	EAppListServGetNextApp,
@@ -49,19 +44,19 @@
 	EAppListServAppCount,
 	EAppListServGetAppInfo,
 	EAppListServGetAppCapability,
-	EAppListServStartAppWithoutReturningThreadId,
-	EAppListServStartAppReturningThreadId,
-	EAppListServRecognizeData,
+	EAppListServStartAppWithoutReturningThreadId,	// deprecated
+	EAppListServStartAppReturningThreadId,			// deprecated
+	EAppListServRecognizeData,	// = 10
 	EAppListServRecognizeDataPassedByFileHandle,
 	EAppListServRecognizeSpecificData,
 	EAppListServRecognizeSpecificDataPassedByFileHandle,
 	EAppListServAppForDataType,
-	EAppListServStartDocument,
-	EAppListServStartDocumentByDataType,
-	EAppListServStartDocumentByUid,
-	EAppListServCreateDocumentByUid,
+	EAppListServStartDocument,						// deprecated
+	EAppListServStartDocumentByDataType,			// deprecated
+	EAppListServStartDocumentByUid,					// deprecated
+	EAppListServCreateDocumentByUid,				// deprecated
 	EAppListServGetExecutableNameGivenDocument,
-	EAppListServGetExecutableNameGivenDocumentPassedByFileHandle,
+	EAppListServGetExecutableNameGivenDocumentPassedByFileHandle,	// = 20
 	EAppListServGetExecutableNameGivenDataType,
 	EAppListServGetExecutableNameGivenAppUid,
 	EAppListServGetOpaqueData,
@@ -71,7 +66,7 @@
 	EAppListServAppForDocumentPassedByFileHandle,
 	EAppListServGetConfidence,
 	EAppListServGetBufSize,
-	EAppListServSetBufSize,
+	EAppListServSetBufSize,	// = 30
 	EAppListServGetDataTypesPhase1,
 	EAppListServGetDataTypesPhase2,
 	ESetNotify,
@@ -81,7 +76,7 @@
 	EAppListServGetAppIconSizes,
 	EAppListServGetAppViews,
 	EAppListServViewIconByUidAndSize,
-	EAppListServGetFileOwnershipInfo,
+	EAppListServGetFileOwnershipInfo,	// = 40
 	EAppListServNumberOfOwnDefinedIcons,
 	EAppListServInitFilteredEmbedList,
 	EAppListServInitAttrFilteredList,
@@ -91,7 +86,7 @@
 	EAppListServGetAppServices,
 	EAppListServGetServiceImplementations,
 	EAppListServGetServiceImplementationsDataType,
-	EAppListServGetAppServiceUids,
+	EAppListServGetAppServiceUids,	// = 50
 	EAppListServGetAppServiceOpaqueData,
 	EAppListServAppForDataTypeAndService,
 	EAppListServAppForDocumentAndService,
@@ -101,7 +96,7 @@
 	ECancelListPopulationCompleteObserver,
 	EAppListServPreferredBufSize,
 	EAppListServRecognizeFiles,
-	EAppListServRecognizeFilesAsync,
+	EAppListServRecognizeFilesAsync,	// = 60
 	ECancelRecognizeFiles,
 	EAppListServTransferRecognitionResult,
 	EAppListServGetAppByDataType,
@@ -111,7 +106,7 @@
 	EAppListServDeregisterNonNativeApplicationType,
 	EAppListServPrepareNonNativeApplicationsUpdates,
 	EAppListServRegisterNonNativeApplication,
-	EAppListServDeregisterNonNativeApplication,
+	EAppListServDeregisterNonNativeApplication,	// = 70
 	EAppListServCommitNonNativeApplications,
 	EAppListServRollbackNonNativeApplications,
 	EAppListServGetAppType,
@@ -121,7 +116,7 @@
 	EAppListServSetAppShortCaption,
 	EAppListServForceRegistration,
 	EDebugHeapMark,
-	EDebugHeapMarkEnd,
+	EDebugHeapMarkEnd,	// = 80
 	EDebugHeapFailNext,
 	EDebugClearAppInfoArray,
 	EDebugFlushRecognitionCache,
@@ -131,10 +126,10 @@
 	EDebugAddFailingNonNativeApplicationsUpdate,
 	EDebugAddPanicingNonNativeApplicationsUpdate,
 	EDebugAddRollbackPanicingNonNativeApplicationsUpdate, // = 89
-	EAppListServAppInfoProvidedByRegistrationFile = 99,
+	EAppListServAppInfoProvidedByRegistrationFile = 99,	// = 99
 	//WriteDeviceData Capability requirement
 	// ER5
-	EAppListServSetConfidence=EFirstOpcodeNeedingWriteDeviceDataInAppListServ,
+	EAppListServSetConfidence=EFirstOpcodeNeedingWriteDeviceDataInAppListServ,	// = 100
 	// 8.1
 	EAppListInsertDataMapping,
 	EAppListInsertDataMappingIfHigher,
@@ -188,4 +183,4 @@
 	TInt iDrive;
 	};
 
-#endif
+#endif	// __APGCLSV_H__
--- a/localisation/apparchitecture/apserv/APSCONSTDATA.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSCONSTDATA.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/apserv/APSERV.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-//
-// APSERV.MMP for component APSERV
-//
-
-/**
-@file
-
-@SYMPurpose apserv.dll Apparc server
-*/
-
-
-target          apserv.dll
-CAPABILITY All -Tcb
-targettype      DLL
-UID		0x1000008D 0x10003A3E
-VENDORID 0x70000001
-
-SOURCEPATH	../apserv
-
-userinclude		../inc ../apparc
-userinclude		../apgrfx
-systeminclude   /epoc32/include
-
-
-source          APSSERV.CPP APSSES.CPP APSSTD.CPP APSSCAN.CPP
-source          APSSTART.CPP APSRECCACHE.cpp APSRECUTIL.CPP
-source	        APSCONSTDATA.CPP
-source          apsnnapps.cpp apsnnappupdates.cpp
-source			apsiconcaptionoverride.cpp
-
-library         euser.lib efsrv.lib apparc.lib apgrfx.lib apmime.lib fbscli.lib apfile.lib
-library         estor.lib bafl.lib ws32.lib
-library			centralrepository.lib
-
-#if !defined(WINC)
-macro			USING_ECOM_RECOGS
-library         ecom.lib
-#endif
-
-macro UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
-
-deffile 	APSERV.DEF
-
-START WINS
-	baseaddress	0x43700000
-END
-
-START MARM
-END
--- a/localisation/apparchitecture/apserv/APSRECCACHE.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSRECCACHE.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,11 +16,11 @@
 #include "APSRECCACHE.h"
 #include "APSSES.H"
 
-//////////////////////////////////////////////////////////////////////////////
+//
 // Constants
 
 const TUint KMaxNumberOfEntries = 200;
-//////////////////////////////////////////////////////////////////////////////
+//
 
 CRecognitionResultHashMapEntry* CRecognitionResultHashMapEntry::NewL(const TDesC& aFileName, TTime aLastModified, const TDataRecognitionResult& aResult, CRecognitionResultHashMapEntry* aNext)
 	{
@@ -56,9 +56,9 @@
 	iLastModified = aLastModified;
 	}
 
-///////////////////////////////////////////////////////////////////////
+//
 // CRecognitionResultHashMap
-///////////////////////////////////////////////////////////////////////
+//
 
 CRecognitionResultHashMap::CRecognitionResultHashMap()
 	{
@@ -130,9 +130,9 @@
 	}
 	
 
-///////////////////////////////////////////////////////////////////////
+//
 // CCacheDirectoryEntry
-///////////////////////////////////////////////////////////////////////
+//
 
 CCacheDirectoryEntry* CCacheDirectoryEntry::NewL(const TDesC& aDirectory)
 	{
@@ -154,9 +154,9 @@
 
 const TInt CCacheDirectoryEntry::iOffset = _FOFF(CCacheDirectoryEntry,iDlink);
 
-///////////////////////////////////////////////////////////////////////
+//
 // CApsRecognitionCache
-///////////////////////////////////////////////////////////////////////
+//
 
 CApsRecognitionCache::CApsRecognitionCache(RFs& aFs)
 	: iFs(aFs),
--- a/localisation/apparchitecture/apserv/APSRECCACHE.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSRECCACHE.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -155,3 +155,4 @@
 	}
 
 #endif // __APSRECCACHE_H__
+
--- a/localisation/apparchitecture/apserv/APSRECUTIL.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSRECUTIL.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,16 @@
 // Description:
 // Classes for synchronous and asynchronous file recognitions (of a directory)
 // 
+// apsrecutil.cpp
 //
 
 
 #include "APSRECUTIL.H"
 #include "APSRECCACHE.h"
 
-//////////////////////////////
+//
 // CRecognitionResult
-//////////////////////////////
+//
 
 CRecognitionResult* CRecognitionResult::NewL(const TDesC& aFileName, const TDataRecognitionResult& aRecognitionResult)
 	{
@@ -51,14 +52,10 @@
 void CRecognitionResult::Get(TDataRecognitionResult& aRecognitionResult)
 	{
 	if(iUid == KNullUid)
-
-		{
 		aRecognitionResult.iDataType = TDataType(*iDataType);
-		}
 	else
-		{
 		aRecognitionResult.iDataType = TDataType(iUid);
-		}
+	
 	aRecognitionResult.iConfidence = iConfidence;
 	}
 	
@@ -79,9 +76,9 @@
 	aWriteStream.WriteInt32L(iConfidence);
 	}
 	
-///////////////////////////////////
+//
 // CDirectoryRecognitionResult
-///////////////////////////////////
+//
 
 CDirectoryRecognitionResult::CDirectoryRecognitionResult(HBufC* aPath, HBufC8* aDataTypeFilter)
 	: iPath(aPath), iDataTypeFilter(aDataTypeFilter)
@@ -96,9 +93,8 @@
 	
 	const TInt count = iEntries.Count();
 	for(TInt i = 0; i < count; i++)
-		{
 		iEntries[i]->Close();
-		}
+
 	iEntries.Reset();
 	}
 
@@ -121,17 +117,16 @@
 	{
 	aWriteStream.WriteUint32L(iEntries.Count());
 	for (TInt i=0; i < iEntries.Count(); i++)
-		{
 		iEntries[i]->WriteToStreamL(aWriteStream);
-		}
+		
 	aWriteStream.CommitL();
 	}
 
-//////////////////////////////////////////////////////////
+//
 // CFileRecognitionUtility
-//////////////////////////////////////////////////////////
+//
 
-CFileRecognitionUtility::CFileRecognitionUtility(CApaAppListServer& aServer, TInt aMaxBufSize, RFs& aFs)
+CFileRecognitionUtility::CFileRecognitionUtility(CApaAppArcServer& aServer, TInt aMaxBufSize, RFs& aFs)
 	: CActive(0), 
 	  iServer(aServer), 
 	  iMaxBufSize(aMaxBufSize), 
@@ -162,9 +157,7 @@
 
 	// recognize files and calculate size of buffer
 	for(iIndex=0;iIndex<iEntryList->Count();iIndex++)
-		{
 		RecognizeFileL();
-		}
 		
 	delete iEntryList;
 	iEntryList = NULL;
@@ -193,11 +186,10 @@
 TInt CFileRecognitionUtility::BufferSizeL() const
 	{
 	const TInt preferredBufferSize = iServer.DataRecognizerPreferredBufSizeL();
-	TInt bufSize=Min(preferredBufferSize,iMaxBufSize);
-	if (bufSize<1)
-		{
-		bufSize=8; // sensible minimum.
-		}
+	TInt bufSize = Min(preferredBufferSize,iMaxBufSize);
+	if (bufSize < 1)
+		bufSize = 8; // sensible minimum.
+
 	return bufSize;
 	}
 
@@ -273,3 +265,4 @@
 	iIndex = 0;
 	iStep = 0;
 	}
+
--- a/localisation/apparchitecture/apserv/APSRECUTIL.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSRECUTIL.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,18 +11,16 @@
 // Contributors:
 //
 // Description:
+// apsrecutil.h
 //
 
 
-#if !defined(__APSRECUTIL_H__)
+#ifndef __APSRECUTIL_H__
 #define __APSRECUTIL_H__
 
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-
 #include <apmrec.h>
-#include <apsserv.h>
+#include "apsserv.h"
 
 /**
 Reference-counted object which stores a recognition result in a more compact format
@@ -33,7 +31,7 @@
 of them had their own copies unnecessarily much memory would be wasted.
 @internalComponent
 */
-class CRecognitionResult : public CObject
+NONSHARABLE_CLASS(CRecognitionResult) : public CObject
 	{
 public:
 	static CRecognitionResult* NewL(const TDesC& aFileName, const TDataRecognitionResult& aRecognitionResult);
@@ -43,13 +41,12 @@
 	void Get(TDataRecognitionResult& aRecognitionResult);
 	inline const TDesC8& DataType() const { return *iDataType; }
 	inline const TDesC& FileName() const { return *iFileName; }
-	
 private:
 	CRecognitionResult(HBufC* aFileName, HBufC8* aDataType, TUid aUid, TInt aConfidence);
 	~CRecognitionResult();
 private:
-	HBufC* iFileName;
-	HBufC8* iDataType;
+	const HBufC* const iFileName;
+	const HBufC8* const iDataType;
 	TUid iUid;
 	TInt iConfidence;
 	};
@@ -58,11 +55,11 @@
 Holds the recognition results of all files of a directory.
 @internalComponent
 */
-class CDirectoryRecognitionResult : public CBase
+NONSHARABLE_CLASS(CDirectoryRecognitionResult) : public CBase
 	{
 public:
 	CDirectoryRecognitionResult(HBufC* aPath, HBufC8* aDataTypeFilter);
-	virtual ~CDirectoryRecognitionResult();
+	~CDirectoryRecognitionResult();
 	void AppendL(CRecognitionResult* aEntry);
 	void WriteToStreamL(RWriteStream& aWriteStream);
 	inline TInt RequiredBufferSize() const {return iRequiredBufferSize;}
@@ -78,10 +75,10 @@
 Utility class which does synchronous and asynchronous file recognitions of a directory
 @internalComponent
 */
-class CFileRecognitionUtility : public CActive
+NONSHARABLE_CLASS(CFileRecognitionUtility) : public CActive
 	{
 public:
-	CFileRecognitionUtility(CApaAppListServer& aServer, TInt aMaxBufSize, RFs& aFs);
+	CFileRecognitionUtility(CApaAppArcServer& aServer, TInt aMaxBufSize, RFs& aFs);
 	~CFileRecognitionUtility();
 	void RecognizeSynchronouslyL(CDirectoryRecognitionResult& aResult);
 	void RecognizeAsynchronously(CDirectoryRecognitionResult& aResult, const RMessage2& aMessage);
@@ -94,11 +91,10 @@
 	void RunL();
 	void DoCancel();
 	TInt BufferSizeL() const;
-	
 private:
 	HBufC* iPath;
 	CDirectoryRecognitionResult* iResult;
-	CApaAppListServer& iServer;
+	CApaAppArcServer& iServer;
 	TInt iMaxBufSize;
 	RFs& iFs;
 	CDir* iEntryList;
@@ -108,3 +104,4 @@
 	};
 
 #endif	// __APSRECUTIL_H__
+
--- a/localisation/apparchitecture/apserv/APSSCAN.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSSCAN.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,12 +13,16 @@
 // Description:
 // AppArc recognizer and application scanning
 // 
+// apsscan.cpp
 //
 
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "APSSCAN.H"
-#ifdef USING_ECOM_RECOGS
 #include <ecom/ecom.h>
-#endif
 
 class CApaFsMonitor::CApaFsNotifier : public CActive
 	{
@@ -257,8 +261,6 @@
 	return KErrNone;
 	}
 
-
-#ifdef USING_ECOM_RECOGS
 //
 // CApaEComMonitor class
 //
@@ -340,4 +342,4 @@
 		}
 	}
 
-#endif
+
--- a/localisation/apparchitecture/apserv/APSSERV.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSSERV.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,27 +11,32 @@
 // Contributors:
 //
 // Description:
+// apsserv.cpp
 //
 
-
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#include "apaidpartner.h"
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <e32svr.h>
 #include <u32hal.h>
-#include <bautils.h>
-#include "APSSERV.H"
+#include "apsserv.h"
 #include "APFREC.H"
 #include "APSSES.H"
 #include "APSSTD.H"
-#include "../apfile/aprfndr.h"
-#include "APGAPLST.H"
+#include "../aplist/aplappregfinder.h"
+#include "../aplist/aplapplistitem.h"
 #include "APSSCAN.H"
 #include "APSSTD.H"
 #include "APASVST.H"
-#include "datastor.h"
+#include <datastor.h>
 #include "APSRECCACHE.h"
 #include "apsnnapps.h"
-#include "../apfile/apuninstallmonitor.h"
+#include "../apfile/apinstallationmonitor.h"
 #include "../apgrfx/apprivate.h"
-#include "apsiconcaptionoverride.h"
+#include "apgnotif.h"
 
 _LIT(KAppArcServerSemaphore,"AppArcServerSemaphore");
 _LIT(KAppArcServerThread,"AppArcServerThread");
@@ -85,15 +90,16 @@
  	
 
 
-//////////////////////////////
-// CApaAppListServer
-//////////////////////////////
+//
+// CApaAppArcServer
+//
 
 const TInt KAppListServerPriority=CActive::EPriorityStandard;
 /**
 NameApaServStartSemaphore
 
 @internalTechnology
+@released
 */
 EXPORT_C TPtrC NameApaServStartSemaphore()
 	{
@@ -104,7 +110,8 @@
 /**
 NameApaServServerThread
 
-@internalTechnology 
+@internalTechnology
+@released
 */
 EXPORT_C TPtrC NameApaServServerThread()
 	{
@@ -112,30 +119,31 @@
 	return nameApaServServerThread;
 	}
 
-EXPORT_C CApaAppListServer* CApaAppListServer::Self()
+EXPORT_C CApaAppArcServer* CApaAppArcServer::Self()
 	{ // static
-	return static_cast<CApaAppListServer*>(Dll::Tls());
+	return static_cast<CApaAppArcServer*>(Dll::Tls());
 	}
 
-EXPORT_C CApaAppListServer* CApaAppListServer::NewL(MApaAppStarter* aAppStarter)
-// Create a new CApaAppListServer which owns it's own resources
+EXPORT_C CApaAppArcServer* CApaAppArcServer::NewL()
+// Create a new CApaAppArcServer which owns it's own resources
 	{
-	CApaAppListServer* self=new(ELeave) CApaAppListServer(KAppListServerPriority);
+	CApaAppArcServer* self=new(ELeave) CApaAppArcServer(KAppListServerPriority);
 	CleanupStack::PushL(self);
-	self->ConstructL(aAppStarter);
+	self->ConstructL();
 	CleanupStack::Pop();
 	return self;
 	}
 
-CApaAppListServer::CApaAppListServer(TInt aPriority)
+CApaAppArcServer::CApaAppArcServer(TInt aPriority)
 	: CPolicyServer(aPriority,KApaServPolicy),
 	iAppList(0),
 	iTypeStoreModified(0),
 	iLoadRecognizersOnDemand(KApaLoadDataRecognizersOnDemand),
-	iLoadMbmIconsOnDemand(KApaLoadMbmIconsOnDemand)
+	iLoadMbmIconsOnDemand(KApaLoadMbmIconsOnDemand),
+	iForceRegistrationStatus(EForceRegistrationNone)
 	{
 	
-	#ifdef __WINS__
+#ifdef __WINS__
 	// KApaLoadDataRecognizersOnDemand and KApaloadIconsOnDemand are Rom patchable constants,
 	// so need an emulator equivalent
 	// if WINS then read value from epoc.ini
@@ -143,25 +151,18 @@
 
 	TInt halValue = 0;
 	if (UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalIntProperty, (TAny*)"patchdata_apserv_dll_KApaLoadDataRecognizersOnDemand", &halValue) == KErrNone)
-		{
 		iLoadRecognizersOnDemand = halValue;
-		}
+
 	if (UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalIntProperty, (TAny*)"patchdata_apserv_dll_KApaLoadMbmIconsOnDemand", &halValue) == KErrNone)
-		{
 		iLoadMbmIconsOnDemand = halValue;
-		}
-	#endif
-
-	__DECLARE_NAME(_S("CApaAppListServer"));
+#endif
 	}
 
-void CApaAppListServer::ConstructL(MApaAppStarter* aAppStarter)
+void CApaAppArcServer::ConstructL()
 	{
 	StartL(KAppListServerName);
 	User::LeaveIfError(Dll::SetTls(this));
 	User::LeaveIfError(iFs.Connect());
-	
-	iScanningFileRecognizer=CApaScanningFileRecognizer::NewL(iFs,aAppStarter);
 		
 	// Get the idle timeout delay from the commandline if specified. The default is 50000ms
 	const TInt cmdLineLen = User::CommandLineLength();
@@ -223,14 +224,13 @@
 		iRuleBasedPlugIns = CApaScanningRuleBasedPlugIns::NewL();
 		}
 	
-	CApaAppRegFinder* appRegFinder=CApaAppRegFinder::NewL(iFs); //non-standard transfer of ownership, no need for CleanupStack
-	iAppList=CApaAppList::NewL(iFs, appRegFinder, iLoadMbmIconsOnDemand, idlePeriodicDelay); // takes ownership of scanner
+	iAppList=CApaAppList::NewL(iFs, iLoadMbmIconsOnDemand, idlePeriodicDelay); // takes ownership of scanner
 
 	// If the phone rebooted halfway through processing updates, there will be a log file left
 	// look for one and recover if neccessary
 	CApsNonNativeApplicationsManager::RecoverFromUpdateLogL(iFs);
 
-	iDataRecognizer=CApaScanningDataRecognizer::NewL(iFs, !iLoadRecognizersOnDemand);
+	iMimeTypeRecognizer=CApaScanningDataRecognizer::NewL(iFs, !iLoadRecognizersOnDemand);
 
 	ConstructPathsToMonitorL();	
 
@@ -241,22 +241,26 @@
 		}
 	TRAP_IGNORE(iAppList->InitListL(this));
 	
-#ifdef USING_ECOM_RECOGS
+	//
 	iRecEcomMonitor=CApaEComMonitor::NewL(TCallBack(&PlugInNotifyCallBack,this));
 	iRecEcomMonitor->Start();
-#endif
-	iTypeStoreManager=CTypeStoreManager::NewL(iFs);
-	TRAPD(err,iTypeStoreManager->RestoreL());
-	if(err==KErrNone)
-		{
-		User::LeaveIfError(iFs.Modified(iTypeStoreManager->IniFileName(),iTypeStoreModified));
-		}
-	iTypeStoreMonitor=CApaFsMonitor::NewL(iFs,iTypeStoreManager->IniFileName(),TCallBack(&TypeStoreNotifyCallback,this));
+
+	// Create the EMIME type store manager (part of the app-framework_emime component)
+	iMimeTypeToAppMappingsManager=CTypeStoreManager::NewL(iFs);
+	TRAPD(err,iMimeTypeToAppMappingsManager->RestoreL());
+	if(!err)
+		User::LeaveIfError(iFs.Modified(iMimeTypeToAppMappingsManager->IniFileName(),iTypeStoreModified));
+
+	// Create the EMIME type store monitor
+	iTypeStoreMonitor = CApaFsMonitor::NewL(iFs,iMimeTypeToAppMappingsManager->IniFileName(),TCallBack(&TypeStoreNotifyCallback,this));
 	iTypeStoreMonitor->Start(ENotifyWrite); // this presumably needs to be ENotifyWrite rather than ENotifyFile (the latter being used or the other CApaFsMonitor objects) because CTypeStoreManager internally uses CDictionaryFileStore::OpenL, which presumably itself uses RFile::Open, which isn't covered by ENotifyFile according to its documentation
 	TypeStoreNotifyCallback(this);
+
+	//
 	iBaBackupSessionWrapper=CBaBackupSessionWrapper::NewL();
 	iBaBackupSessionWrapper->RegisterBackupOperationObserverL(*((MBackupOperationObserver*)this));
 
+	//
 	TChar sysDrive = RFs::GetSystemDriveChar();
 	TInt maxSizeofFileName = KNonNativeApplicationTypeRegistry().Length() + 1;
 	iNonNativeApplicationTypeRegistry.CreateL(maxSizeofFileName);
@@ -265,18 +269,14 @@
 
 	TRAP_IGNORE(InternalizeNonNativeApplicationTypeArrayL());	// We don't want a corrupt file to prevent from starting
 	if(iLoadRecognizersOnDemand)
-		{
 		iRecognizerUnloadTimer=CPeriodic::NewL(EPriorityNormal);
-		}
-	iAppUnInstallMonitor = CApaAppUnInstallMonitor::NewL(this);
-	iAppUnInstallMonitor->Start();
 
-	iIconCaptionOverrides = new(ELeave) CApaIconCaptionOverrides();
-	iIconCaptionObserver = CApaIconCaptionCenrepObserver::NewL(*iIconCaptionOverrides);
-	iIconCaptionObserver->LoadOverridesL();
+	//
+	iAppInstallationMonitor = CApaAppInstallationMonitor::NewL(this);
+	iAppInstallationMonitor->Start();
 	}
 	
-void CApaAppListServer::ConstructPathsToMonitorL()
+void CApaAppArcServer::ConstructPathsToMonitorL()
 	{
 	TInt drivesToMonitor = KApaDrivesToMonitor;
 	#ifdef __WINS__
@@ -338,42 +338,33 @@
 		}	
 	}
 	
-EXPORT_C CApaAppListServer::~CApaAppListServer()
+EXPORT_C CApaAppArcServer::~CApaAppArcServer()
 	{
-	delete iIconCaptionObserver;
-	delete iIconCaptionOverrides;
 	if(iBaBackupSessionWrapper)
 		iBaBackupSessionWrapper->DeRegisterBackupOperationObserver(*this);
-	delete iAppUnInstallMonitor;
-	delete iScanningFileRecognizer;
+	delete iAppInstallationMonitor;
 	delete iAppList; // deletes scanners
-	delete iDataRecognizer;
-	delete iTypeStoreManager;
+	delete iMimeTypeRecognizer;
+	delete iMimeTypeToAppMappingsManager;
 	delete iAppFsMonitor;	
 	delete iTypeStoreMonitor;
 	delete iBaBackupSessionWrapper;
 	delete iRecognitionCache;
-#ifdef USING_ECOM_RECOGS
 	delete iRecEcomMonitor;
-#else
-	iRecEcomMonitor = NULL;
-#endif
+
 	iFs.Close();
-	iAppCmdLine=NULL;
 	iWsSession.Close();	
 	delete 	iRuleBasedPlugIns;
-	for (TInt i=iNonNativeApplicationTypeArray.Count()-1; i>=0; --i)
-		{
+	for (TInt i = iNonNativeApplicationTypeArray.Count()-1; i >= 0; --i)
 		delete iNonNativeApplicationTypeArray[i].iNativeExecutable;
-		}
+
 	iNonNativeApplicationTypeArray.Close();
-	iCustomAppList.ResetAndDestroy();
-	iCustomAppList.Close();
+
 	delete iRecognizerUnloadTimer;
 	iNonNativeApplicationTypeRegistry.Close();
 	}
 
-EXPORT_C void CApaAppListServer::HandleStartUninstallEvent()
+EXPORT_C void CApaAppArcServer::HandleInstallationStartEvent()
 	{
 	if ( iAppFsMonitor )
 		{
@@ -381,7 +372,8 @@
 		}
 	AppList().StopScan();
 	}
-EXPORT_C void CApaAppListServer::HandleEndUninstallEventL()
+
+EXPORT_C void CApaAppArcServer::HandleInstallationEndEventL()
 	{
 	if ( iAppFsMonitor )
 		{
@@ -390,72 +382,81 @@
 	AppList().RestartScanL();
 	}
 
-CSession2* CApaAppListServer::NewSessionL(const TVersion& aVersion,const RMessage2&/* aMessage*/) const
-
+CSession2* CApaAppArcServer::NewSessionL(const TVersion& aVersion,const RMessage2&/* aMessage*/) const
 // Create a new server session.
 	{
 	// check we're the right version
-	TVersion v(KAppListServMajorVersionNumber,KAppListServMinorVersionNumber,KAppListServBuildVersionNumber);
+	TVersion v(KAppListServMajorVersionNumber, KAppListServMinorVersionNumber, KAppListServBuildVersionNumber);
 	if (!User::QueryVersionSupported(v,aVersion))
 		User::Leave(KErrNotSupported);
 	// make new session
-	return CApaAppListServSession::NewL(const_cast<CApaAppListServer&>(*this), const_cast<RFs&>(iFs));
+	return CApaAppArcServSession::NewL(const_cast<CApaAppArcServer&>(*this), const_cast<RFs&>(iFs));
 	}
 
 //
 // scanning code here
 //
 
-EXPORT_C TCallBack CApaAppListServer::RescanCallBack()
+EXPORT_C TCallBack CApaAppArcServer::RescanCallBack()
 	{
 	return TCallBack(&AppFsNotifyWithForcedRegistrationsResetCallBack,this);
 	}
 
-TInt CApaAppListServer::AppFsNotifyWithForcedRegistrationsResetCallBack(TAny* aPtr)
+TInt CApaAppArcServer::AppFsNotifyWithForcedRegistrationsResetCallBack(TAny* aPtr)
 	{
 	ASSERT(aPtr);
-	reinterpret_cast<CApaAppListServer*>(aPtr)->AppList().ResetForcedRegistrations();
+	reinterpret_cast<CApaAppArcServer*>(aPtr)->AppList().ResetForcedRegistrations();
 	return AppFsNotifyCallBack(aPtr);
 	}
 
-TInt CApaAppListServer::AppFsNotifyCallBack(TAny* aObject)
+TInt CApaAppArcServer::AppFsNotifyCallBack(TAny* aObject)
 	{
 	ASSERT(aObject);
-	reinterpret_cast<CApaAppListServer*>(aObject)->UpdateApps();
+	reinterpret_cast<CApaAppArcServer*>(aObject)->UpdateApps();
 	return KErrNone;
 	}
 
-TInt CApaAppListServer::PlugInNotifyCallBack(TAny* aObject)
+TInt CApaAppArcServer::PlugInNotifyCallBack(TAny* aObject)
 	{
 	//update the pre-Platform-security style  recognizers and rule-based plug-ins
 	ASSERT(aObject);
-	reinterpret_cast<CApaAppListServer*>(aObject)->UpdatePlugIns();
+	reinterpret_cast<CApaAppArcServer*>(aObject)->UpdatePlugIns();
 	return KErrNone;
 	}
 
-TInt CApaAppListServer::TypeStoreNotifyCallback(TAny* aObject)
+TInt CApaAppArcServer::TypeStoreNotifyCallback(TAny* aObject)
 	{
 	ASSERT(aObject);
-	reinterpret_cast<CApaAppListServer*>(aObject)->UpdateTypeStore();
+	reinterpret_cast<CApaAppArcServer*>(aObject)->UpdateTypeStore();
 	return KErrNone;
 	}
 
-void CApaAppListServer::UpdateApps()
+void CApaAppArcServer::UpdateApps()
 // update the list
 	{
 	// File system change, rescan
 	TRAP_IGNORE(iAppList->StartIdleUpdateL (this));
 	}
 
-void CApaAppListServer::NotifyUpdate(TInt aReason)
+/*
+Updates application list with force registered applications.
+*/
+ 
+void CApaAppArcServer::UpdateAppsByForceRegistration()
+    {
+    iForceRegistrationStatus|=EForceRegistrationRequested;
+    UpdateApps();
+    }
+
+void CApaAppArcServer::NotifyUpdate(TInt aReason)
 // tell all sessions to update their clients
 	{
 	// Updates the applist with the icon caption details from the Central Repository.
-	TRAP_IGNORE(UpdateAppListByIconCaptionOverridesL());
+	TRAP_IGNORE(iAppList->UpdateAppListByIconCaptionOverridesL());
 	// The short caption value sets through the API has got the highest precedence over the
 	// values found in either central repository or resource file.
-	TRAP_IGNORE(UpdateAppListByShortCaptionL());
-		
+	TRAP_IGNORE(iAppList->UpdateAppListByShortCaptionL());
+
     //Delete any data mappings in service registry related to uninstalled applications.
     CArrayFixFlat<TUid>* uninstalledApps=iAppList->UninstalledAppArray();
     TBool modificationStatus=EFalse;
@@ -466,7 +467,7 @@
         TInt count=uninstalledApps->Count();
         for(int index=0;index<count;index++)
             {
-            modified=iTypeStoreManager->DeleteApplicationDataMappings((*uninstalledApps)[index]);
+            modified=iMimeTypeToAppMappingsManager->DeleteApplicationDataMappings((*uninstalledApps)[index]);
         
             //Set modificationStatus if any data mapping is removed from the service registry
             if(modified)
@@ -477,30 +478,50 @@
         
         //If service registry is modified, store it to a file
         if(modificationStatus)
-            TRAP_IGNORE(iTypeStoreManager->StoreL());
+            TRAP_IGNORE(iMimeTypeToAppMappingsManager->StoreL());
         }
     
 	// iterate through sessions
 	iSessionIter.SetToFirst();
-	CApaAppListServSession* ses=static_cast<CApaAppListServSession*>(&(*iSessionIter++));
+	CApaAppArcServSession* ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
 	while (ses!=NULL)
 		{
-		ses->NotifyClients(aReason);	
-		ses=static_cast<CApaAppListServSession*>(&(*iSessionIter++));
+		if(iForceRegistrationStatus & EForceRegistrationRequested)
+            {
+             //Notify clients about completion of force registration. 
+            ses->NotifyScanComplete();
+            }
+		else
+            {
+            ses->NotifyClients(aReason);
+            }
+		ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
 		}
+	
+     if(iForceRegistrationStatus & EForceRegistrationRequested)
+         {
+         //If this function is called because of force registration, clear force registration request status and
+        //set force registration applist change status
+        iForceRegistrationStatus &= (~EForceRegistrationRequested);
+         iForceRegistrationStatus |= EForceRegistrationAppListChanged;
+         }
+     else
+         {
+         //If this function is called not because of force registration, clear force registration applist change status. 
+        iForceRegistrationStatus &= (~EForceRegistrationAppListChanged);        
+         }
 	}
 
-void CApaAppListServer::UpdatePlugIns()
+void CApaAppArcServer::UpdatePlugIns()
 // update the pre-Platform-security style, ecom style recognizers and rule-based plug-ins
 	{
-	TRAP_IGNORE(iScanningFileRecognizer->ScanForRecognizersL());
 	//we want the recognizers to be loaded either if:
 	// 1) they are not loaded on demand
 	// 2) they are loaded on demand and actively used
 	// 3) they are loaded on demand but waiting for the timer to be unloaded
 	if(!iLoadRecognizersOnDemand || iRecognizerUsageCount > 0 || (iRecognizerUnloadTimer && iRecognizerUnloadTimer->IsActive()))
 		{
-		TRAP_IGNORE(iDataRecognizer->LoadRecognizersL());
+		TRAP_IGNORE(iMimeTypeRecognizer->LoadRecognizersL());
 		}
 	if (iRecognitionCache)
 		{	// RecognitionCache is flushed if there are any changes in plugins, i.e.,if:
@@ -512,16 +533,16 @@
 	TRAP_IGNORE(iRuleBasedPlugIns->ScanForRuleBasedPlugInsL());
 	}
 
-void CApaAppListServer::UpdateTypeStore()
+void CApaAppArcServer::UpdateTypeStore()
 // Update the internal type store if things have changed
 	{
 	TRAP_IGNORE(DoUpdateTypeStoreL());
 	}
 
-void CApaAppListServer::DoUpdateTypeStoreL()
+void CApaAppArcServer::DoUpdateTypeStoreL()
 	{
 	TTime modified;
-	TInt err=iFs.Modified(iTypeStoreManager->IniFileName(),modified);
+	TInt err=iFs.Modified(iMimeTypeToAppMappingsManager->IniFileName(),modified);
 	// check the time stamp to see if we are interested in an update
 	if (modified>iTypeStoreModified && err==KErrNone)
 		{
@@ -529,22 +550,22 @@
 		CleanupStack::PushL(manager);
 		manager->RestoreL();
 		iTypeStoreModified=modified;
-		delete iTypeStoreManager;
-		iTypeStoreManager=manager;
+		delete iMimeTypeToAppMappingsManager;
+		iMimeTypeToAppMappingsManager=manager;
 		CleanupStack::Pop(manager); 
 		}
+		
 	for (iSessionIter.SetToFirst(); ; iSessionIter++) //lint !e1757 prefix operator not defined for TDblQueIter
 		{
      	CSession2* const session=iSessionIter;
-     	if (session==NULL)
-			{
+     	if (!session)
   			break;
-			}
-     	static_cast<CApaAppListServSession*>(session)->NotifyClientOfDataMappingChange();
+
+     	static_cast<CApaAppArcServSession*>(session)->NotifyClientOfDataMappingChange();
 		}
 	}
 
-void CApaAppListServer::HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes)
+void CApaAppArcServer::HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes)
 //
 // Handle a signal from the backup server to indicate that a backup has started or finished.
 //
@@ -572,7 +593,7 @@
 		}
 	}
 
-void CApaAppListServer::InitialListPopulationComplete()
+void CApaAppArcServer::InitialListPopulationComplete()
 	{
 	if ( iAppFsMonitor )
 		{
@@ -581,24 +602,23 @@
 	
 	// notify clients (whoever is interested) that initial population of list is completed
 	iSessionIter.SetToFirst();
-	CApaAppListServSession* ses=static_cast<CApaAppListServSession*>(&(*iSessionIter++));
+	CApaAppArcServSession* ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
 	// iterate through sessions
 	while (ses!=NULL)
 		{
 		ses->NotifyClientForCompletionOfListPopulation();	
-		ses=static_cast<CApaAppListServSession*>(&(*iSessionIter++));
+		ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
 		}
 	}
 
-void CApaAppListServer::RegisterNonNativeApplicationTypeL(TUid aApplicationType, const TDesC& aNativeExecutable)
+void CApaAppArcServer::RegisterNonNativeApplicationTypeL(TUid aApplicationType, const TDesC& aNativeExecutable)
 	{
 	for (TInt i=iNonNativeApplicationTypeArray.Count()-1; i>=0; --i)
 		{
 		if (iNonNativeApplicationTypeArray[i].iTypeUid.iUid==aApplicationType.iUid)
-			{
 			User::Leave(KErrAlreadyExists);
-			}
 		}
+		
 	SNonNativeApplicationType nonNativeApplicationType;
 	nonNativeApplicationType.iTypeUid.iUid=aApplicationType.iUid;
 	nonNativeApplicationType.iNativeExecutable=aNativeExecutable.AllocLC();
@@ -609,16 +629,15 @@
 	CleanupStack::Pop(this); // the TCleanupItem
 	}
 
-void CApaAppListServer::DeregisterNonNativeApplicationTypeL(TUid aApplicationType)
+void CApaAppArcServer::DeregisterNonNativeApplicationTypeL(TUid aApplicationType)
 	{
 	TInt i;
 	for (i=iNonNativeApplicationTypeArray.Count()-1; i>=0; --i)
 		{
 		if (iNonNativeApplicationTypeArray[i].iTypeUid.iUid==aApplicationType.iUid)
-			{
 			break;
-			}
 		}
+		
 	if (i>=0)
 		{
 		ExternalizeNonNativeApplicationTypeArrayL(i);
@@ -628,7 +647,7 @@
 		}
 	}
 
-void CApaAppListServer::InternalizeNonNativeApplicationTypeArrayL()
+void CApaAppArcServer::InternalizeNonNativeApplicationTypeArrayL()
 	{
 	RFile file;
 	CleanupClosePushL(file);
@@ -650,10 +669,11 @@
 			}
 		CleanupStack::PopAndDestroy(&sourceStream);
 		}
+		
 	CleanupStack::PopAndDestroy(&file);
 	}
 
-void CApaAppListServer::ExternalizeNonNativeApplicationTypeArrayL(TInt aIndexToIgnore/*=-1*/) const
+void CApaAppArcServer::ExternalizeNonNativeApplicationTypeArrayL(TInt aIndexToIgnore/*=-1*/) const
 	{
 	RFs& fs=const_cast<RFs&>(iFs);
 	fs.MkDirAll(iNonNativeApplicationTypeRegistry); // ignore any error
@@ -666,9 +686,8 @@
 	const TInt arrayCount(iNonNativeApplicationTypeArray.Count());
 	TInt arrayCountToExternalize=arrayCount;
 	if (aIndexToIgnore>=0)
-		{
 		--arrayCountToExternalize;
-		}
+
 	TCardinality(arrayCountToExternalize).ExternalizeL(targetStream);
 	for (TInt i=0; i<arrayCount; ++i)
 		{
@@ -679,182 +698,100 @@
 			targetStream << *nonNativeApplicationType.iNativeExecutable;
 			}
 		}
+		
 	targetStream.CommitL();
 	CleanupStack::PopAndDestroy(2, &file);
 	}
 
-TPtrC CApaAppListServer::NativeExecutableL(TUid aNonNativeApplicationType) const
+TPtrC CApaAppArcServer::NativeExecutableL(TUid aNonNativeApplicationType) const
 	{
 	for (TInt i=iNonNativeApplicationTypeArray.Count()-1; i>=0; --i)
 		{
 		const SNonNativeApplicationType& nonNativeApplicationType=iNonNativeApplicationTypeArray[i];
 		if (nonNativeApplicationType.iTypeUid.iUid==aNonNativeApplicationType.iUid)
-			{
 			return *nonNativeApplicationType.iNativeExecutable;
-			}
 		}
+		
 	User::Leave(KErrNotSupported); // not KErrNotFound
 	return KNullDesC();
 	}
 
-void CApaAppListServer::DeleteLastNonNativeApplicationType(TAny* aThis)
+void CApaAppArcServer::DeleteLastNonNativeApplicationType(TAny* aThis)
 	{ // static
-	CApaAppListServer& self=*static_cast<CApaAppListServer*>(aThis);
+	CApaAppArcServer& self=*static_cast<CApaAppArcServer*>(aThis);
 	const TInt arrayIndex=self.iNonNativeApplicationTypeArray.Count()-1;
 	delete self.iNonNativeApplicationTypeArray[arrayIndex].iNativeExecutable;
 	self.iNonNativeApplicationTypeArray[arrayIndex].iNativeExecutable = NULL;
 	self.iNonNativeApplicationTypeArray.Remove(arrayIndex);
 	}
 
-void CApaAppListServer::NotifyScanComplete()
+void CApaAppArcServer::NotifyScanComplete()
 	{
 	// Updates the applist with the icon caption details from the Central Repository.
-	TRAP_IGNORE(UpdateAppListByIconCaptionOverridesL());
+	TRAP_IGNORE(iAppList->UpdateAppListByIconCaptionOverridesL());
 	// The short caption value sets through the API has got the highest precedence over the
 	// values found in either central repository or resource file.		
-	TRAP_IGNORE(UpdateAppListByShortCaptionL());
+	TRAP_IGNORE(iAppList->UpdateAppListByShortCaptionL());
 
 	// iterate through sessions
 	iSessionIter.SetToFirst();
-	CApaAppListServSession* ses=static_cast<CApaAppListServSession*>(&(*iSessionIter++));
-	while (ses!=NULL)
-		{
-		ses->NotifyScanComplete();	
-		ses=static_cast<CApaAppListServSession*>(&(*iSessionIter++));
-		}
-	}
-
-void CApaAppListServer::AddCustomAppInfoInListL(CCustomAppInfoData* aCustomAppInfo)
-	{
-	TBool replaced=EFalse;
-	for (TInt i=iCustomAppList.Count()-1; i>=0; --i)
-		{
-		if ((aCustomAppInfo->Uid()==iCustomAppList[i]->Uid()) && (aCustomAppInfo->Language()==iCustomAppList[i]->Language()))
-			{
-			CCustomAppInfoData* oldAppInfo = iCustomAppList[i];
-			iCustomAppList[i]=aCustomAppInfo;
-			delete oldAppInfo;
-			replaced=ETrue;
-			break;
-			}
-		}
-	//Add ELangNone items at the end and others at the beginning
-	if(!replaced)
+	CApaAppArcServSession* ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
+	while (ses)
 		{
-		if(aCustomAppInfo->Language()==ELangNone)
-			{
-			iCustomAppList.AppendL(aCustomAppInfo);
-			}
+		if((iForceRegistrationStatus & EForceRegistrationRequested) ||
+	            !(iForceRegistrationStatus & EForceRegistrationAppListChanged))
+		    {
+		    //Notify clients about completion of force registration or scan completion		
+		    ses->NotifyScanComplete();
+		    }
 		else
-			{
-			iCustomAppList.InsertL(aCustomAppInfo,0);
-			}
-		}
-	
-	} //lint !e818 Suppress pointer parameter could be declared as pointing to const - this method takes ownership
-
-
-void CApaAppListServer::UpdateAppListByShortCaptionL()
-	{
-	CApaAppData* app=NULL;
-	//Items with ELangNone are always found at the end and other languages at the beginning
-	//While iterating from end to beginning, we overwrite short caption set by ELangNone if there is any provided for the application language
-	for (TInt i=iCustomAppList.Count()-1; i>=0; --i)
-		{
-		const CCustomAppInfoData* const customAppInfo=iCustomAppList[i];
-		app=iAppList->AppDataByUid(customAppInfo->Uid());
-		if ( app && ((app->ApplicationLanguage()==customAppInfo->Language()) || (customAppInfo->Language()==ELangNone)))
-			{
-			app->SetShortCaptionL(*customAppInfo->ShortCaption());
-			}
+		    {
+		    //If force registration changes applicaiton list,
+		    // then notify applist change to clients.
+		    ses->NotifyClients(MApaAppListServObserver::EAppListChanged);
+		    }		
+		ses=static_cast<CApaAppArcServSession*>(&(*iSessionIter++));
 		}
-	}
-
-void CApaAppListServer::UpdateAppListByIconCaptionOverridesL()
-	{
-	// get the language downgrade path, so that most appropriate language can be used
-	RArray<TLanguage> languageDowngradePath;
-	CleanupClosePushL(languageDowngradePath);
-	BaflUtils::GetDowngradePathL(iFs, User::Language(), languageDowngradePath);
-	for (CApaAppData* app = iAppList->FirstApp(); app; app = iAppList->NextApp(app))
-		{
-		CApaIconCaptionOverridesForApp* appOverride = iIconCaptionOverrides->OverrideForApp(app->AppEntry().iUidType[2]);
-		if (appOverride)
-			{
-			TApaIconCaptionOverrideReader overrideReader = appOverride->Reader(languageDowngradePath);
-			const TDesC* shortCaption = overrideReader.ShortCaption();
-			if (shortCaption)
-				app->SetShortCaptionL(*shortCaption);
-			const TDesC* caption = overrideReader.Caption();
-			if (caption)
-				app->SetCaptionL(*caption);
-			const TDesC* iconFileName = overrideReader.IconFileName();
-			if (overrideReader.NumIconsSet() && iconFileName)
-				app->SetIconsL(*iconFileName, overrideReader.NumIcons());
-			}
-		}
-	CleanupStack::PopAndDestroy(&languageDowngradePath);
-	}
-
-CCustomAppInfoData* CCustomAppInfoData::NewL(TUid aAppUid, TLanguage aLanguage, const TDesC& aShortCaption)
-	{
-	CCustomAppInfoData* self=new(ELeave) CCustomAppInfoData(aAppUid, aLanguage);
-    CleanupStack::PushL(self);
-	self->ConstructL(aShortCaption);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CCustomAppInfoData::~CCustomAppInfoData()
-	{
-	delete iShortCaption;
-	}
-
-CCustomAppInfoData::CCustomAppInfoData(TUid aAppUid, TLanguage aLanguage)
-	:iUid(aAppUid),
-	iLanguage(aLanguage)
-	{
-	}
-
-void CCustomAppInfoData::ConstructL(const TDesC& aShortCaption)
-	{
-	iShortCaption=aShortCaption.AllocL();
+	if(!(iForceRegistrationStatus & EForceRegistrationRequested))
+	    {
+	    //If this function is called not because of force registration, 
+	    //clear force registration applist change status. 
+            iForceRegistrationStatus &= (~EForceRegistrationAppListChanged);	        
+	    }
+	//Clear force registration request status
+        iForceRegistrationStatus &= (~EForceRegistrationRequested);
 	}
 
 /*
  * Data Recognizer calls
  */
  
-TBool CApaAppListServer::CachedRecognitionResult(const TParseBase& aParser, TDataRecognitionResult& aResult) const
+TBool CApaAppArcServer::CachedRecognitionResult(const TParseBase& aParser, TDataRecognitionResult& aResult) const
 	{
 	if(iRecognitionCache && aParser.PathPresent() && aParser.NamePresent())
-		{
 		return iRecognitionCache->Get(aParser.DriveAndPath(), aParser.NameAndExt(), aResult);
-		}
+
 	return EFalse;
 	}
 
 /**
 N.B. The @c CRecognitionResult object is reference counted so it must be closed!
 */
-CRecognitionResult* CApaAppListServer::CachedRecognitionResult(const RFile& aFile, const TParseBase& aParser) const
+CRecognitionResult* CApaAppArcServer::CachedRecognitionResult(const RFile& aFile, const TParseBase& aParser) const
 	{
 	if(iRecognitionCache && aParser.PathPresent() && aParser.NamePresent())
-		{
 		return iRecognitionCache->Get(aFile, aParser.DriveAndPath(), aParser.NameAndExt());
-		}
+
 	return NULL;
 	}
 
-void CApaAppListServer::CacheRecognitionResultL(const TParseBase& aParser, const TDataRecognitionResult& aResult)
+void CApaAppArcServer::CacheRecognitionResultL(const TParseBase& aParser, const TDataRecognitionResult& aResult)
 	{
 	if(iRecognitionCache && aParser.PathPresent() && aParser.NamePresent())
-		{
 		iRecognitionCache->AddL(aParser.DriveAndPath(), aParser.NameAndExt(), aResult);
-		}
 	}
 
-void CApaAppListServer::CacheRecognitionResultL(const RFile& aFile, const TParseBase& aParser, const TDataRecognitionResult& aResult)
+void CApaAppArcServer::CacheRecognitionResultL(const RFile& aFile, const TParseBase& aParser, const TDataRecognitionResult& aResult)
 	{
 	if(iRecognitionCache && aParser.PathPresent() && aParser.NamePresent())
 		{
@@ -862,7 +799,7 @@
 		}
 	}
 
-TDataRecognitionResult CApaAppListServer::RecognizeDataL(const TDesC& aName, const TDesC8& aBuffer)
+TDataRecognitionResult CApaAppArcServer::RecognizeDataL(const TDesC& aName, const TDesC8& aBuffer)
 	{
 	TParsePtrC parser(iFs.IsValidName(aName) ? aName : KNullDesC);
 	TDataRecognitionResult result;
@@ -872,14 +809,11 @@
 		{
 		// recognize
 		if(iLoadRecognizersOnDemand)
-			{
 			LoadRecognizersLC();
-			}
-		result = iDataRecognizer->RecognizeL(aName, aBuffer);
+
+		result = iMimeTypeRecognizer->RecognizeL(aName, aBuffer);
 		if(iLoadRecognizersOnDemand)
-			{
 			CleanupStack::PopAndDestroy();
-			}
 
 		// add to cache
 		CacheRecognitionResultL(parser, result);
@@ -888,7 +822,7 @@
 	return result;	
 	}
 
-TDataRecognitionResult CApaAppListServer::RecognizeDataL(RFile& aFile, TInt aPreferredBufSize)
+TDataRecognitionResult CApaAppArcServer::RecognizeDataL(RFile& aFile, TInt aPreferredBufSize)
 	{
 	CRecognitionResult* result = RecognizeDataAsCRecognitionResultL(aFile, aPreferredBufSize);
 	TDataRecognitionResult ret;
@@ -903,7 +837,7 @@
 
 N.B. The @c CRecognitionResult object is reference counted so it must be closed!
 */
-CRecognitionResult* CApaAppListServer::RecognizeDataAsCRecognitionResultL(RFile& aFile, TInt aPreferredBufSize)
+CRecognitionResult* CApaAppArcServer::RecognizeDataAsCRecognitionResultL(RFile& aFile, TInt aPreferredBufSize)
 	{
 	CRecognitionResult* result = NULL;
 	
@@ -917,15 +851,12 @@
 		{
 		// recognize
 		if(iLoadRecognizersOnDemand)
-			{
 			LoadRecognizersLC();
-			}
-		const TDataRecognitionResult recResult = iDataRecognizer->RecognizeL(aFile, aPreferredBufSize);
+
+		const TDataRecognitionResult recResult = iMimeTypeRecognizer->RecognizeL(aFile, aPreferredBufSize);
 		if(iLoadRecognizersOnDemand)
-			{
 			CleanupStack::PopAndDestroy();
-			}
-		
+	
 		//add to cache
 		CacheRecognitionResultL(aFile, parser, recResult);
 
@@ -935,83 +866,74 @@
 	return result;
 	}
 
-TBool CApaAppListServer::RecognizeDataL(const TDesC& aName, const TDesC8& aBuffer, const TDataType& aDataType)
+TBool CApaAppArcServer::RecognizeDataL(const TDesC& aName, const TDesC8& aBuffer, const TDataType& aDataType)
 	{
 	if(iLoadRecognizersOnDemand)
-		{
 		LoadRecognizersLC();
-		}
-	const TBool ret = iDataRecognizer->RecognizeL(aName,aBuffer,aDataType);
+
+	const TBool ret = iMimeTypeRecognizer->RecognizeL(aName,aBuffer,aDataType);
 	if(iLoadRecognizersOnDemand)
-		{
 		CleanupStack::PopAndDestroy();
-		}
+
 	return ret;
 	}
 
-TBool CApaAppListServer::RecognizeDataL(RFile& aFile, TInt aPreferredBufSize, const TDataType& aDataType)
+TBool CApaAppArcServer::RecognizeDataL(RFile& aFile, TInt aPreferredBufSize, const TDataType& aDataType)
 	{
 	if(iLoadRecognizersOnDemand)
-		{
 		LoadRecognizersLC();
-		}
-	const TBool ret = iDataRecognizer->RecognizeL(aFile,aPreferredBufSize,aDataType);
+
+	const TBool ret = iMimeTypeRecognizer->RecognizeL(aFile,aPreferredBufSize,aDataType);
 	if(iLoadRecognizersOnDemand)
-		{
 		CleanupStack::PopAndDestroy();
-		}
+
 	return ret;
 	}
 
-TInt CApaAppListServer::DataRecognizerPreferredBufSizeL()
+TInt CApaAppArcServer::DataRecognizerPreferredBufSizeL()
 	{
 	if(iLoadRecognizersOnDemand)
-		{
 		LoadRecognizersLC();
-		}
-	const TInt ret = iDataRecognizer->PreferredBufSize();
+
+	const TInt ret = iMimeTypeRecognizer->PreferredBufSize();
 	if(iLoadRecognizersOnDemand)
-		{
 		CleanupStack::PopAndDestroy();
-		}
+
 	return ret;
 	}
 
-void CApaAppListServer::DataTypeL(CDataTypeArray& aArray)
+void CApaAppArcServer::DataTypeL(CDataTypeArray& aArray)
 	{
 	if(iLoadRecognizersOnDemand)
-		{
 		LoadRecognizersLC();
-		}
-	iDataRecognizer->DataTypeL(aArray);
+
+	iMimeTypeRecognizer->DataTypeL(aArray);
 	if(iLoadRecognizersOnDemand)
-		{
 		CleanupStack::PopAndDestroy();
-		}
 	}
 
 /*
  * Recognizer loading/unloading code
  */
 
-void CApaAppListServer::LoadRecognizersLC()
+void CApaAppArcServer::LoadRecognizersLC()
 	{
 	ASSERT(iLoadRecognizersOnDemand);
 
 	LoadRecognizersL();
-	TCleanupItem cleanup(CApaAppListServer::RecognizerCleanup, this);
+	TCleanupItem cleanup(CApaAppArcServer::RecognizerCleanup, this);
 	CleanupStack::PushL(cleanup);
 	}
 
-void CApaAppListServer::RecognizerCleanup(TAny* aSelf)
+void CApaAppArcServer::RecognizerCleanup(TAny* aSelf)
 	{
 	if (aSelf)
 		{
-		static_cast<CApaAppListServer*>(aSelf)->UnloadRecognizers();
+		static_cast<CApaAppArcServer*>(aSelf)->UnloadRecognizers();
 		}
 	}
 
-void CApaAppListServer::LoadRecognizersL()
+void CApaAppArcServer::LoadRecognizersL()
 	{
 	ASSERT(iLoadRecognizersOnDemand);
 
@@ -1022,13 +944,13 @@
 		}
 	else if(iRecognizerUsageCount==0)
 		{
-		iDataRecognizer->LoadRecognizersL();
+		iMimeTypeRecognizer->LoadRecognizersL();
 		}
 
 	++iRecognizerUsageCount;
 	}
 
-TInt CApaAppListServer::UnloadRecognizers()
+TInt CApaAppArcServer::UnloadRecognizers()
 	{
 	ASSERT(iLoadRecognizersOnDemand);
 
@@ -1036,62 +958,57 @@
 	__ASSERT_DEBUG(iRecognizerUsageCount>=0,Panic(EReferenceCountingError2));
 	if (iRecognizerUsageCount==0)
 		{
-		iRecognizerUnloadTimer->Start(KApaUnloadRecognizersTimeout,0,TCallBack(CApaAppListServer::DoUnloadRecognizersCallback,this));
+		iRecognizerUnloadTimer->Start(KApaUnloadRecognizersTimeout,0,TCallBack(CApaAppArcServer::DoUnloadRecognizersCallback,this));
 		}
 	return KErrNone;
 	}
 	
-TInt CApaAppListServer::DoUnloadRecognizersCallback(TAny* aSelf)
+TInt CApaAppArcServer::DoUnloadRecognizersCallback(TAny* aSelf)
 	{
 	TInt ret=KErrNone;
 	if (aSelf)
 		{
-		ret = static_cast<CApaAppListServer*>(aSelf)->DoUnloadRecognizers();
+		ret = static_cast<CApaAppArcServer*>(aSelf)->DoUnloadRecognizers();
 		}
 	return ret;
 	}
 
-TInt CApaAppListServer::DoUnloadRecognizers()
+TInt CApaAppArcServer::DoUnloadRecognizers()
 	{
 	ASSERT(iLoadRecognizersOnDemand);
 
 	// need to cancel the periodic timer since we only want a oneshot timer
 	iRecognizerUnloadTimer->Cancel();
-	iDataRecognizer->UnloadRecognizers();
+	iMimeTypeRecognizer->UnloadRecognizers();
 	return KErrNone;
 	}
 	
-void CApaAppListServer::GetAppByDataType(const TDataType& aDataType, TUid& aUid) const
+void CApaAppArcServer::GetAppForMimeType(const TDataType& aDataType, TUid& aUid) const
 	{
-	iTypeStoreManager->GetAppByDataType(aDataType, aUid);
+	iMimeTypeToAppMappingsManager->GetAppByDataType(aDataType, aUid);
 	}
 	
-void CApaAppListServer::GetAppByDataType(const TDataType& aDataType, TUid aServiceUid, TUid& aUid) const
+void CApaAppArcServer::GetAppForMimeType(const TDataType& aDataType, TUid aServiceUid, TUid& aUid) const
 	{
-	iTypeStoreManager->GetAppByDataType(aDataType, aServiceUid, aUid);
-	}
-	
-TBool CApaAppListServer::InsertAndStoreIfHigherL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid)
-	{
-	return iTypeStoreManager->InsertAndStoreIfHigherL(aDataType, aPriority, aUid);
+	iMimeTypeToAppMappingsManager->GetAppByDataType(aDataType, aServiceUid, aUid);
 	}
 	
-void CApaAppListServer::InsertAndStoreDataMappingL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid, TUid aServiceUid)
+TBool CApaAppArcServer::InsertAndStoreIfHigherL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid)
 	{
-	iTypeStoreManager->InsertAndStoreDataMappingL(aDataType, aPriority, aUid, aServiceUid);
+	return iMimeTypeToAppMappingsManager->InsertAndStoreIfHigherL(aDataType, aPriority, aUid);
 	}
 	
-void CApaAppListServer::DeleteAndStoreDataMappingL(const TDataType& aDataType, TUid aServiceUid)
+void CApaAppArcServer::InsertAndStoreDataMappingL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid, TUid aServiceUid)
 	{
-	iTypeStoreManager->DeleteAndStoreDataMappingL(aDataType, aServiceUid);
+	iMimeTypeToAppMappingsManager->InsertAndStoreDataMappingL(aDataType, aPriority, aUid, aServiceUid);
 	}
 	
-CApaFileRecognizer* CApaAppListServer::FileRecognizer()
-	{ 
-	return static_cast<CApaFileRecognizer*>(iScanningFileRecognizer); 
+void CApaAppArcServer::DeleteAndStoreDataMappingL(const TDataType& aDataType, TUid aServiceUid)
+	{
+	iMimeTypeToAppMappingsManager->DeleteAndStoreDataMappingL(aDataType, aServiceUid);
 	}
 
-TBool CApaAppListServer::LoadMbmIconsOnDemand() const
+TBool CApaAppArcServer::LoadMbmIconsOnDemand() const
 	{
 	return iLoadMbmIconsOnDemand;
 	}
@@ -1103,7 +1020,7 @@
 
 Useful for debugging.
 */
-void CApaAppListServer::FlushRecognitionCache()
+void CApaAppArcServer::FlushRecognitionCache()
 	{
 	if(iRecognitionCache)
 		iRecognitionCache->Flush();
@@ -1114,7 +1031,7 @@
 
 Useful for debugging.
 */	
-void CApaAppListServer::SetLoadRecognizersOnDemandL(TBool aLoadRecognizersOnDemand)
+void CApaAppArcServer::SetLoadRecognizersOnDemandL(TBool aLoadRecognizersOnDemand)
 	{
 	if(iLoadRecognizersOnDemand == aLoadRecognizersOnDemand)
 		return;
@@ -1132,9 +1049,9 @@
 		}
 	CleanupStack::PushL(newUnloadTimer);
 	
-	CApaScanningDataRecognizer* newDataRecognizer = CApaScanningDataRecognizer::NewL(iFs,!aLoadRecognizersOnDemand);
-	delete iDataRecognizer;
-	iDataRecognizer = newDataRecognizer;
+	CApaScanningDataRecognizer* newMimeTypeRecognizer = CApaScanningDataRecognizer::NewL(iFs,!aLoadRecognizersOnDemand);
+	delete iMimeTypeRecognizer;
+	iMimeTypeRecognizer = newMimeTypeRecognizer;
 	
 	delete iRecognizerUnloadTimer;
 	iRecognizerUnloadTimer = newUnloadTimer;
@@ -1150,7 +1067,7 @@
 
 Useful for debugging.
 */
-void CApaAppListServer::PerformOutstandingRecognizerUnloading()
+void CApaAppArcServer::PerformOutstandingRecognizerUnloading()
 	{
 	if(iLoadRecognizersOnDemand && iRecognizerUnloadTimer->IsActive())
 		{
@@ -1160,3 +1077,4 @@
 	}
 
 #endif //_DEBUG
+
--- a/localisation/apparchitecture/apserv/APSSES.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSSES.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,12 +13,14 @@
 // Description:
 // AppArc server session
 // 
+// apsses.cpp
 //
 
 #include <e32svr.h>
 #include <apacmdln.h>
+
 #include <apaflrec.h>
-#include <apsserv.h>
+#include "apsserv.h"
 #include "APSSES.H"
 #ifdef _DEBUG
 #include "APSSTD.H"
@@ -36,16 +38,17 @@
 #include <s32file.h>
 #include "../apgrfx/apprivate.h"
 #include "apgnotif.h"
-#include "../apfile/aprfndr.h"
+#include "../aplist/aplappregfinder.h"
 #include "ApLaunchChecker.h"
 #include "apsnnapps.h"
+#include "../aplist/aplapplistitem.h"
 
 #include "apsecutils.h"
 
 const TInt KApaAppListServMaxBuffer=256;
 #include "APSRECCACHE.h"
-const TInt KApaAppInfoArrayGranularity=4;
-const TInt KApaAppInfoDesMaxLength=sizeof(TApaAppInfo);
+const TInt KApaAppInfoArrayGranularity = 4;
+const TInt KApaAppInfoDesMaxLength = sizeof(TApaAppInfo);
 
 #if defined(__PROFILE)
 _LIT(KProfileAppForDocumentL, "AppForDocumentL - %d.%06d seconds");
@@ -63,12 +66,11 @@
 	virtual void WriteArrayItemL(RWriteStream& aWriteStream,TInt aIndex) const=0;
 	};
 
-class TSizeArrayItemWriter : public MArrayItemWriter
+NONSHARABLE_CLASS(TSizeArrayItemWriter) : public MArrayItemWriter
 	{
 public:
 	inline TSizeArrayItemWriter(const CArrayFix<TSize>& aArray) : iArray(aArray) {}
-	
-	// from MArrayItemWriter
+public: // from MArrayItemWriter
 	TInt ArrayItemCount() const;
 	TInt ArrayItemSize() const;
 	void WriteArrayItemL(RWriteStream& aWriteStream,TInt aIndex) const;
@@ -76,12 +78,11 @@
 	const CArrayFix<TSize>& iArray;
 	};
 
-class TViewDataArrayItemWriter : public MArrayItemWriter
+NONSHARABLE_CLASS(TViewDataArrayItemWriter) : public MArrayItemWriter
 	{
 public:
 	inline TViewDataArrayItemWriter(const CArrayPtr<CApaAppViewData>& aArray) : iArray(aArray) {}
-	
-	// from MArrayItemWriter
+public:	// from MArrayItemWriter
 	TInt ArrayItemCount() const;
 	TInt ArrayItemSize() const;
 	void WriteArrayItemL(RWriteStream& aWriteStream,TInt aIndex) const;
@@ -89,12 +90,11 @@
 	const CArrayPtr<CApaAppViewData>& iArray;
 	};
 
-class TDesCArrayItemWriter : public MArrayItemWriter
+NONSHARABLE_CLASS(TDesCArrayItemWriter) : public MArrayItemWriter
 	{
 public:
 	inline TDesCArrayItemWriter(const CDesCArray& aArray) : iArray(aArray) {}
-	
-	// from MArrayItemWriter
+public:	// from MArrayItemWriter
 	TInt ArrayItemCount() const;
 	TInt ArrayItemSize() const;
 	void WriteArrayItemL(RWriteStream& aWriteStream,TInt aIndex) const;
@@ -102,8 +102,7 @@
 	const CDesCArray& iArray;
 	};
 
-
-class CApaAppListServSession::CApaAppInfo
+NONSHARABLE_CLASS(CApaAppListServSession::CApaAppInfo) : public CBase
 	{
 public:
 	CApaAppInfo();
@@ -135,47 +134,49 @@
 inline TUid CApaAppListServSession::CApaAppInfo::Uid() const
 	{ return iUid; }
 
+//
 // CApaAppListServSession
+//
 
-CApaAppListServSession* CApaAppListServSession::NewL(CApaAppListServer& aServer, RFs& aFs)
+CApaAppListServSession* CApaAppListServSession::NewL(RFs& aFs, CApaAppArcServer& aAppArcSrv, CApaAppList& aAppList)
 	{
-	CApaAppListServSession* self=new(ELeave) CApaAppListServSession(aServer, aFs);
+	CApaAppListServSession* self = new (ELeave) CApaAppListServSession(aFs, aAppArcSrv, aAppList);
 	CleanupStack::PushL(self);
 	self->ConstructL();
-	CleanupStack::Pop(); // self
+	CleanupStack::Pop(self);
 	return self;
 	}
 
-CApaAppListServSession::CApaAppListServSession(CApaAppListServer& aServer, RFs& aFs)
-	: CSession2(),
-	iServ(aServer),
-	iFs(aFs),
-	iMaxBufSize(KApaAppListServMaxBuffer),
-	iApaAppInfoArray(KApaAppInfoArrayGranularity),
-	iOpaqueData_pendingDispatchToClient(NULL)
-	{}
+CApaAppListServSession::CApaAppListServSession(RFs& aFs, CApaAppArcServer& aAppArcSrv, CApaAppList& aAppList)
+ : iFs(aFs), iAppArcSrv(aAppArcSrv), iAppList(aAppList), iApaAppInfoArray(KApaAppInfoArrayGranularity)
+	{
+
+	}
 
 void CApaAppListServSession::ConstructL()
 	{
-	iFileRecognitionUtility = new (ELeave) CFileRecognitionUtility(iServ, iMaxBufSize, iFs);
-	iNonNativeApplicationsManager = CApsNonNativeApplicationsManager::NewL(iServ,iFs);
+	iNonNativeApplicationsManager = CApsNonNativeApplicationsManager::NewL(iAppArcSrv,iFs);
 	}
+	
 
 CApaAppListServSession::~CApaAppListServSession()
 	{
 	delete iNonNativeApplicationsManager;
-	delete iBuffer;
 	iApaAppInfoArray.ResetAndDestroy();
 	iApaAppInfoArray.Close();
-	delete iFileRecognitionUtility;
-	delete iRecognitionResult;
-	delete iOpaqueData_pendingDispatchToClient;
+	}
+
+CApaAppList& CApaAppListServSession::AppList()
+	{
+	return iAppList;
 	}
 
-void CApaAppListServSession::ServiceL(const RMessage2& aMessage)
+	
+void CApaAppListServSession::DoServiceL(const RMessage2& aMessage)
 	{
-	TBool completeMessage=ETrue;
-	switch (aMessage.Function())
+	TBool completeMessage = ETrue;
+	const TInt opcode = aMessage.Function();
+	switch (opcode)
 		{
 	case ESetNotify:
 		SetNotify(aMessage);
@@ -219,84 +220,9 @@
 	case EAppListServGetDefaultScreenNumber:
 		GetDefaultScreenNumberL(aMessage);
 		break;
-	case EAppListServStartAppWithoutReturningThreadId:
-		StartAppL(aMessage,EFalse);
-		break;
-	case EAppListServStartAppReturningThreadId:
-		StartAppL(aMessage,ETrue);
-		break;
-	case EAppListServRecognizeData:
-		RecognizeDataL(aMessage);
-		break;
-	case EAppListServRecognizeDataPassedByFileHandle:
-		RecognizeDataPassedByFileHandleL(aMessage);
-		break;
-	case EAppListServRecognizeSpecificData:
-		RecognizeSpecificDataL(aMessage);
-		break;
-	case EAppListServRecognizeSpecificDataPassedByFileHandle:
-		RecognizeSpecificDataPassedByFileHandleL(aMessage);
-		break;
-	case EAppListServAppForDataType:
-		AppForDataTypeL(aMessage);
-		break;
-	case EAppListServStartDocument:
-		StartDocumentL(aMessage,EStart);
-		break;
-	case EAppListServStartDocumentByDataType:
-		StartDocumentL(aMessage,EStartByDataType);
-		break;
-	case EAppListServStartDocumentByUid:
-		StartDocumentL(aMessage,EStartByUid);
-		break;
-	case EAppListServCreateDocumentByUid:
-		StartDocumentL(aMessage,ECreateByUid);
-		break;
-	case EAppListServGetExecutableNameGivenDocument:
-		GetExecutableNameGivenDocumentL(aMessage);
-		break;
-	case EAppListServGetExecutableNameGivenDocumentPassedByFileHandle:
-		GetExecutableNameGivenDocumentPassedByFileHandleL(aMessage);
-		break;
-	case EAppListServGetExecutableNameGivenDataType:
-		GetExecutableNameGivenDataTypeL(aMessage);
-		break;
-	case EAppListServGetExecutableNameGivenAppUid:
-		GetExecutableNameGivenAppUidL(aMessage);
-		break;
-	case EAppListServGetOpaqueData:
-		GetOpaqueDataL(aMessage);
-		break;
-	case EAppListServGetNativeExecutableNameIfNonNative:
-		GetNativeExecutableNameIfNonNativeL(aMessage);
-		break;
 	case EAppListServAppIconByUid:
 		IconForAppL(aMessage);
 		break;
-	case EAppListServAppForDocument:
-		AppForDocumentL(aMessage, NULL);
-		break;
-	case EAppListServAppForDocumentPassedByFileHandle:
-		AppForDocumentPassedByFileHandleL(aMessage, NULL);
-		break;
-	case EAppListServGetConfidence:
-		GetConfidenceL(aMessage);
-		break;
-	case EAppListServSetConfidence:
-		SetConfidence(aMessage);
-		break;
-	case EAppListServGetBufSize:
-		GetBufSize(aMessage);
-		break;
-	case EAppListServSetBufSize:
-		SetBufSize(aMessage);
-		break;
-	case EAppListServGetDataTypesPhase1:
-		GetDataTypesCountL(aMessage);
-		break;
-	case EAppListServGetDataTypesPhase2:
-		GetDataTypesL(aMessage);
-		break;
 	case ECancelNotify:
 		CancelNotify();
 		break;
@@ -332,6 +258,186 @@
 		break;
 	case EAppListServAppViewIconFileName:
 		ViewIconFileNameL(aMessage);
+		break;	
+	case EAppListServPrepareNonNativeApplicationsUpdates:
+		iNonNativeApplicationsManager->PrepareNonNativeApplicationsUpdatesL();
+		break;
+	case EAppListServRegisterNonNativeApplication:
+		iNonNativeApplicationsManager->RegisterNonNativeApplicationL(aMessage);
+		break;
+	case EAppListServDeregisterNonNativeApplication:
+		iNonNativeApplicationsManager->DeregisterNonNativeApplicationL(aMessage);
+		break;
+	case EAppListServCommitNonNativeApplications:
+		iNonNativeApplicationsManager->CommitNonNativeApplicationsUpdatesL(aMessage);
+		completeMessage=EFalse;
+		break;
+	case EAppListServRollbackNonNativeApplications:
+		iNonNativeApplicationsManager->RollbackNonNativeApplicationsUpdates();
+		break;
+	case EAppListServGetAppType:
+		GetAppTypeL(aMessage);
+		break;
+	case EAppListServForceRegistration:
+		ForceRegistrationL(aMessage);
+		completeMessage=EFalse;
+		break;
+	case EMatchesSecurityPolicy:
+		MatchesSecurityPolicyL(aMessage);
+		break;
+	case EAppListServSetAppShortCaption:
+		SetAppShortCaptionL(aMessage);
+		break;
+	case EDebugClearAppInfoArray:
+	#ifdef _DEBUG
+		iApaAppInfoArray.ResetAndDestroy();
+		iApaAppInfoArray.Compress();
+	#endif
+		break;
+	case EDebugAddFailingNonNativeApplicationsUpdate:
+	#ifdef _DEBUG
+		iNonNativeApplicationsManager->ForceFailInNonNativeApplicationsUpdatesL();
+	#endif
+		break;
+	case EDebugAddPanicingNonNativeApplicationsUpdate:
+	#ifdef _DEBUG
+		iNonNativeApplicationsManager->ForcePanicInNonNativeApplicationsUpdatesL();
+	#endif
+		break;
+	case EDebugAddRollbackPanicingNonNativeApplicationsUpdate:
+	#ifdef _DEBUG
+		iNonNativeApplicationsManager->ForcePanicInNonNativeApplicationsRollbackL();
+	#endif
+		break;
+	default:
+		aMessage.Panic(KApaPanicCli,EClientBadRequest);
+		break;
+		}
+		
+	if (completeMessage && !aMessage.IsNull())
+		aMessage.Complete(KErrNone);
+	}
+
+
+// CApaAppArcServSession
+
+CApaAppArcServSession* CApaAppArcServSession::NewL(CApaAppArcServer& aServer, RFs& aFs)
+	{
+	CApaAppArcServSession* self=new(ELeave) CApaAppArcServSession(aServer, aFs);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(); // self
+	return self;
+	}
+
+CApaAppArcServSession::CApaAppArcServSession(CApaAppArcServer& aServer, RFs& aFs)
+	: CSession2(),
+	iServ(aServer),
+	iFs(aFs),
+	iMaxBufSize(KApaAppListServMaxBuffer),
+	iOpaqueData_pendingDispatchToClient(NULL)
+	{}
+
+void CApaAppArcServSession::ConstructL()
+	{
+	iAppListSession = CApaAppListServSession::NewL(iFs, iServ, iServ.AppList());
+	iFileRecognitionUtility = new (ELeave) CFileRecognitionUtility(iServ, iMaxBufSize, iFs);
+	}
+
+CApaAppArcServSession::~CApaAppArcServSession()
+	{
+	delete iAppListSession;
+	delete iBuffer;
+	delete iFileRecognitionUtility;
+	delete iRecognitionResult;
+	delete iOpaqueData_pendingDispatchToClient;
+	}
+
+void CApaAppArcServSession::ServiceL(const RMessage2& aMessage)
+	{
+	TBool completeMessage = ETrue;
+	switch (aMessage.Function())
+		{
+	case EAppListServStartAppWithoutReturningThreadId:
+		ASSERT(0);	// panic debug only
+		User::Leave(KErrNotSupported);
+		break;
+	case EAppListServStartAppReturningThreadId:
+		ASSERT(0);	// panic debug only
+		User::Leave(KErrNotSupported);
+		break;
+	case EAppListServRecognizeData:
+		RecognizeDataL(aMessage);
+		break;
+	case EAppListServRecognizeDataPassedByFileHandle:
+		RecognizeDataPassedByFileHandleL(aMessage);
+		break;
+	case EAppListServRecognizeSpecificData:
+		RecognizeSpecificDataL(aMessage);
+		break;
+	case EAppListServRecognizeSpecificDataPassedByFileHandle:
+		RecognizeSpecificDataPassedByFileHandleL(aMessage);
+		break;
+	case EAppListServAppForDataType:
+		AppForDataTypeL(aMessage);
+		break;
+	case EAppListServStartDocument:
+		ASSERT(0);	// panic debug only
+		User::Leave(KErrNotSupported);
+		break;
+	case EAppListServStartDocumentByDataType:
+		ASSERT(0);	// panic debug only
+		User::Leave(KErrNotSupported);
+		break;
+	case EAppListServStartDocumentByUid:
+		ASSERT(0);	// panic debug only
+		User::Leave(KErrNotSupported);
+		break;
+	case EAppListServCreateDocumentByUid:
+		ASSERT(0);	// panic debug only
+		User::Leave(KErrNotSupported);
+		break;
+	case EAppListServGetExecutableNameGivenDocument:
+		GetExecutableNameGivenDocumentL(aMessage);
+		break;
+	case EAppListServGetExecutableNameGivenDocumentPassedByFileHandle:
+		GetExecutableNameGivenDocumentPassedByFileHandleL(aMessage);
+		break;
+	case EAppListServGetExecutableNameGivenDataType:
+		GetExecutableNameGivenDataTypeL(aMessage);
+		break;
+	case EAppListServGetExecutableNameGivenAppUid:
+		GetExecutableNameGivenAppUidL(aMessage);
+		break;
+	case EAppListServGetOpaqueData:
+		GetOpaqueDataL(aMessage);
+		break;
+	case EAppListServGetNativeExecutableNameIfNonNative:
+		GetNativeExecutableNameIfNonNativeL(aMessage);
+		break;
+	case EAppListServAppForDocument:
+		AppForDocumentL(aMessage, NULL);
+		break;
+	case EAppListServAppForDocumentPassedByFileHandle:
+		AppForDocumentPassedByFileHandleL(aMessage, NULL);
+		break;
+	case EAppListServGetConfidence:
+		GetConfidenceL(aMessage);
+		break;
+	case EAppListServSetConfidence:
+		SetConfidence(aMessage);
+		break;
+	case EAppListServGetBufSize:
+		GetBufSize(aMessage);
+		break;
+	case EAppListServSetBufSize:
+		SetBufSize(aMessage);
+		break;
+	case EAppListServGetDataTypesPhase1:
+		GetDataTypesCountL(aMessage);
+		break;
+	case EAppListServGetDataTypesPhase2:
+		GetDataTypesL(aMessage);
 		break;
 	case EAppListInsertDataMapping:
 	case EAppListInsertDataMappingIfHigher:
@@ -371,29 +477,6 @@
 	case EAppListServDeregisterNonNativeApplicationType:
 		DeregisterNonNativeApplicationTypeL(aMessage);
 		break;
-	case EAppListServPrepareNonNativeApplicationsUpdates:
-		iNonNativeApplicationsManager->PrepareNonNativeApplicationsUpdatesL();
-		break;
-	case EAppListServRegisterNonNativeApplication:
-		iNonNativeApplicationsManager->RegisterNonNativeApplicationL(aMessage);
-		break;
-	case EAppListServDeregisterNonNativeApplication:
-		iNonNativeApplicationsManager->DeregisterNonNativeApplicationL(aMessage);
-		break;
-	case EAppListServCommitNonNativeApplications:
-		iNonNativeApplicationsManager->CommitNonNativeApplicationsUpdatesL(aMessage);
-		completeMessage=EFalse;
-		break;
-	case EAppListServRollbackNonNativeApplications:
-		iNonNativeApplicationsManager->RollbackNonNativeApplicationsUpdates();
-		break;
-	case EAppListServGetAppType:
-		GetAppTypeL(aMessage);
-		break;
-	case EAppListServForceRegistration:
-		ForceRegistrationL(aMessage);
-		completeMessage=EFalse;
-		break;
 	case EAppListServPreferredBufSize:
 		aMessage.Complete(PreferredBufSize());
 		break;
@@ -411,13 +494,7 @@
 		CancelRecognizeFiles();
 		break;
 	case EAppListServRuleBasedLaunching:
-		RuleBasedLaunchingL(aMessage);
-		break;
-	case EMatchesSecurityPolicy:
-		MatchesSecurityPolicyL(aMessage);
-		break;
-	case EAppListServSetAppShortCaption:
-		SetAppShortCaptionL(aMessage);
+		AquirePermissionToLaunchAppL(aMessage);
 		break;
 	case ENotifyOnDataMappingChange:
 		NotifyOnDataMappingChange(aMessage);
@@ -441,12 +518,6 @@
 		__UHEAP_FAILNEXT(aMessage.Int0());
 	#endif
 		break;
-	case EDebugClearAppInfoArray:
-	#ifdef _DEBUG
-		iApaAppInfoArray.ResetAndDestroy();
-		iApaAppInfoArray.Compress();
-	#endif
-		break;
 	case EDebugFlushRecognitionCache:
 	#ifdef _DEBUG
 		iServ.FlushRecognitionCache();
@@ -463,59 +534,39 @@
 		REComSession::FinalClose();
 	#endif
 		break;
-	case EDebugAddFailingNonNativeApplicationsUpdate:
-	#ifdef _DEBUG
-		iNonNativeApplicationsManager->ForceFailInNonNativeApplicationsUpdatesL();
-	#endif
-		break;
-	case EDebugAddPanicingNonNativeApplicationsUpdate:
-	#ifdef _DEBUG
-		iNonNativeApplicationsManager->ForcePanicInNonNativeApplicationsUpdatesL();
-	#endif
-		break;
-	case EDebugAddRollbackPanicingNonNativeApplicationsUpdate:
-	#ifdef _DEBUG
-		iNonNativeApplicationsManager->ForcePanicInNonNativeApplicationsRollbackL();
-	#endif
-		break;
 	default:
-		aMessage.Panic(KApaPanicCli,EClientBadRequest);
-		break;
+		iAppListSession->DoServiceL(aMessage);
+		return;
 		}
 		
 	if (completeMessage && !aMessage.IsNull())
-		{
 		aMessage.Complete(KErrNone);
-		}
 	}
-void CApaAppListServSession::NotifyOnDataMappingChange(const RMessage2& aMessage)
+
+
+void CApaAppArcServSession::NotifyOnDataMappingChange(const RMessage2& aMessage)
 	{ 
 	if (!iMessage_NotifyOnDataMappingChange.IsNull())
-			{
-			aMessage.Panic(KApaPanicCli,ENotifyOnDataMappingChangeRequestOutstanding);
-			}
+		aMessage.Panic(KApaPanicCli,ENotifyOnDataMappingChangeRequestOutstanding);
 	else
-			{
-			iMessage_NotifyOnDataMappingChange=aMessage;
-			}
+		iMessage_NotifyOnDataMappingChange=aMessage;
 	}
-void CApaAppListServSession::CancelNotifyOnDataMappingChange()
+
+void CApaAppArcServSession::CancelNotifyOnDataMappingChange()
 	{
 	if (!iMessage_NotifyOnDataMappingChange.IsNull())
-			{
-			iMessage_NotifyOnDataMappingChange.Complete(KErrCancel);
-			}
+		iMessage_NotifyOnDataMappingChange.Complete(KErrCancel);
 	} //lint !e1762 Suppress member function could be made const
 
 
-TInt CApaAppListServSession::PreferredBufSize() const
+TInt CApaAppArcServSession::PreferredBufSize() const
 	{
 	TInt preferredBufferSize = 0;
 	TRAPD(err, preferredBufferSize = iServ.DataRecognizerPreferredBufSizeL());
 	return (err==KErrNone) ? Min(iMaxBufSize, preferredBufferSize) : iMaxBufSize;
 	}
 
-void CApaAppListServSession::RegisterNonNativeApplicationTypeL(const RMessage2& aMessage)
+void CApaAppArcServSession::RegisterNonNativeApplicationTypeL(const RMessage2& aMessage)
 	{
 	const TUid applicationType(TUid::Uid(aMessage.Int0()));
 	HBufC* const nativeExecutable=HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(1)));
@@ -525,7 +576,7 @@
 	CleanupStack::PopAndDestroy(nativeExecutable);
 	}
 
-void CApaAppListServSession::DeregisterNonNativeApplicationTypeL(const RMessage2& aMessage)
+void CApaAppArcServSession::DeregisterNonNativeApplicationTypeL(const RMessage2& aMessage)
 	{
 	const TUid applicationType(TUid::Uid(aMessage.Int0()));
 	iServ.DeregisterNonNativeApplicationTypeL(applicationType);
@@ -534,15 +585,15 @@
 void CApaAppListServSession::GetAppTypeL(const RMessage2& aMessage)
 	{
 	TInt uid = aMessage.Int0();
-	CApaAppData* appData = iServ.AppList().AppDataByUid(TUid::Uid(uid));
+	CApaAppData* appData = iAppList.AppDataByUid(TUid::Uid(uid));
 	if (!appData)
-		{
 		aMessage.Complete(KErrNotFound);
-		return;
+	else
+		{
+		TPckgBuf<TUid> typeUid(appData->NonNativeApplicationType());
+		aMessage.WriteL(1,typeUid);
+		aMessage.Complete(KErrNone);
 		}
-	TPckgBuf<TUid> typeUid(appData->NonNativeApplicationType());
-	aMessage.WriteL(1,typeUid);
-	aMessage.Complete(KErrNone);
 	}
 	
 void CApaAppListServSession::ForceRegistrationL(const RMessage2& aMessage)
@@ -562,19 +613,19 @@
 		HBufC* regFile = HBufC::NewLC(length);
   		TPtr ptr(regFile->Des());
   		readStream.ReadL(ptr, length);
-		iServ.AppList().AddForcedRegistrationL(regFile);
-		CleanupStack::Pop(regFile);
+		iAppList.AddForcedRegistrationL(*regFile);
+		CleanupStack::PopAndDestroy(regFile);
 		}
+	
 	CleanupStack::PopAndDestroy(&readStream);
-	
 	CleanupStack::PopAndDestroy(buffer);
 	
 	// Trigger a rescan, when rescan completes it will complete iNotifyOnScanCompleteMsg
 	iNotifyOnScanCompleteMsg=aMessage;
-	iServ.UpdateApps();
+	iAppArcSrv.UpdateAppsByForceRegistration();
 	}
 	
-void CApaAppListServSession::AppForDocumentPassedByFileHandleL(const RMessage2& aMessage, const TUid* aServiceUid)
+void CApaAppArcServSession::AppForDocumentPassedByFileHandleL(const RMessage2& aMessage, const TUid* aServiceUid)
 	{
 #if defined(__PROFILE)
 	TProfile profile;
@@ -597,86 +648,100 @@
 #endif
 	}
 
-void CApaAppListServSession::AppForDocumentL(const RMessage2& aMessage, const TUid* aServiceUid)
+/**
+Call the recognizer framework to find the MIME-type of the data buffer,
+then find and return the UID of the "best" application to handle that data.
+*/
+void CApaAppArcServSession::AppForDocumentL(const RMessage2& aMessage, const TUid* aServiceUid)
 	{
 #if defined(__PROFILE)
 	TProfile profile;
 	RDebug::ProfileReset(5,1);
 	RDebug::ProfileStart(5);
 #endif
-	HBufC* const fileName=HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(2)));
-	{TPtr fileName_asWritable(fileName->Des());
-	aMessage.ReadL(2,fileName_asWritable);}
-	HBufC8* const buffer=HBufC8::NewLC(User::LeaveIfError(aMessage.GetDesLength(3)));
+
+	// Get the document file name from the IPC message
+	HBufC* const docFileName = HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(2)));
+	{TPtr docFileName_asWritable(docFileName->Des());
+	aMessage.ReadL(2, docFileName_asWritable);}
+	
+	// Get the data read from the document that will be used for recognition from the IPC message
+	HBufC8* const buffer = HBufC8::NewLC(User::LeaveIfError(aMessage.GetDesLength(3)));
 	{TPtr8 buffer_asWritable(buffer->Des());
 	aMessage.ReadL(3,buffer_asWritable);}
+	
+	// Call the recognizer framework to get the MIME-type
 	SReturnData_AppForDocument returnData;
-	returnData.iDataType=iServ.RecognizeDataL(*fileName, *buffer).iDataType;
-	returnData.iUid=(returnData.iDataType!=TDataType())? AppForDataTypeL(returnData.iDataType, aServiceUid): TUid::Null();
+	returnData.iDataType = iServ.RecognizeDataL(*docFileName, *buffer).iDataType;
+	// If a MIME-type was found, get the UID of the "best" app registered for that type
+	returnData.iUid = (returnData.iDataType!=TDataType() ? AppForDataTypeL(returnData.iDataType, aServiceUid) : TUid::Null());
+	
 #if defined(__PROFILE)
 	RDebug::ProfileEnd(5);
 	RDebug::ProfileResult(&profile,5,1);
 	RDebug::Print(KProfileAppForDocumentL,profile.iTime/1000000,profile.iTime%1000000);
 	RDebug::ProfileStart(5);
 #endif
-	CleanupStack::PopAndDestroy(2, fileName);
+	
+	// Send back the answer
+	CleanupStack::PopAndDestroy(2, docFileName);
 	aMessage.WriteL(0,TPckgC<SReturnData_AppForDocument>(returnData));
 	}
 
-void CApaAppListServSession::GetConfidenceL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetConfidenceL(const RMessage2& aMessage)
 // void GetAcceptedConfidence(TInt& aConfidence);
 	{
-	aMessage.WriteL(0,TPckgBuf<TInt>(iServ.DataRecognizer()->AcceptedConfidence()));
+	aMessage.WriteL(0,TPckgBuf<TInt>(iServ.MimeTypeRecognizer()->AcceptedConfidence()));
 	}
 
-void CApaAppListServSession::SetConfidence(const RMessage2& aMessage)
+void CApaAppArcServSession::SetConfidence(const RMessage2& aMessage)
 // SetAcceptedConfidence(TInt aConfidence);
 	{
-	__ASSERT_DEBUG(iServ.DataRecognizer(), Panic(EPanicNullPointer));
-	iServ.DataRecognizer()->SetAcceptedConfidence(aMessage.Int0());
+	__ASSERT_DEBUG(iServ.MimeTypeRecognizer(), Panic(EPanicNullPointer));
+	iServ.MimeTypeRecognizer()->SetAcceptedConfidence(aMessage.Int0());
 	}
 
-void CApaAppListServSession::GetBufSize(const RMessage2& aMessage)
+void CApaAppArcServSession::GetBufSize(const RMessage2& aMessage)
 // GetMaxDataBufSize(TInt& aBufSize);
 	{
 	aMessage.Complete(iMaxBufSize);
 	}
 
-void CApaAppListServSession::SetBufSize(const RMessage2& aMessage)
+void CApaAppArcServSession::SetBufSize(const RMessage2& aMessage)
 // SetMaxDataBufSize(TInt aBufSize);
 	{
 	iMaxBufSize=aMessage.Int0();
 	}
 
-void CApaAppListServSession::GetDataTypesCountL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetDataTypesCountL(const RMessage2& aMessage)
 	{
 	delete iBuffer;
-	iBuffer=NULL;
-	CDataTypeArray* const dataTypes=new(ELeave) CDataTypeArray(5);
+	iBuffer = NULL;
+	CDataTypeArray* const dataTypes = new(ELeave) CDataTypeArray(5);
 	CleanupStack::PushL(dataTypes);
 	iServ.DataTypeL(*dataTypes);
+	
 	TInt completionCode=0; // not KErrNone, as completion code of zero tells the client that zero data types were found
 	if (dataTypes->Count()>0)
 		{
-		CBufBase* const buffer=CBufFlat::NewL(sizeof(TDataType)); 
+		CBufBase* const buffer = CBufFlat::NewL(sizeof(TDataType)); 
 		CleanupStack::PushL(buffer); 
 		RBufWriteStream writeStream(*buffer); 
-		writeStream<<*dataTypes; 
+		writeStream << *dataTypes; 
 		CleanupStack::Pop(buffer); 
-		iBuffer=buffer;
-		completionCode=iBuffer->Ptr(0).Size(); // number of bytes in buffer (not number of data types)
+		iBuffer = buffer;
+		completionCode = iBuffer->Ptr(0).Size(); // number of bytes in buffer (not number of data types)
 		}
+	
 	CleanupStack::PopAndDestroy(dataTypes);
 	aMessage.Complete(completionCode);
 	}
 
-void CApaAppListServSession::GetDataTypesL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetDataTypesL(const RMessage2& aMessage)
 // GetSupportedDataTypes(CDataTypeArray& aDataTypes);
 	{
-	if(iBuffer==NULL)
-		{
+	if(!iBuffer)
 		aMessage.Panic(KApaPanicCli,ENoSupportedDataTypes);
-		}
 	else
 		{
 		aMessage.WriteL(0,iBuffer->Ptr(0));
@@ -688,11 +753,10 @@
 CApaAppData& CApaAppListServSession::FindAppInListL(TUid aUid)
 	{
 	TApaAppEntry dummy;
-	CApaAppData* app=NULL;
+	CApaAppData* app = NULL;
 	if (!FindAppInList(app, dummy, aUid))
-		{
 		User::Leave(KErrNotFound);
-		}
+
 	return *app;
 	}
 
@@ -701,11 +765,10 @@
 	const TInt sizeOfBuffer=aMessage.Int1();
 	const TInt arrayItemCount=aArrayItemWriter.ArrayItemCount();
 	const TInt sizeRequired=sizeof(TInt)+(arrayItemCount*aArrayItemWriter.ArrayItemSize());
-	__ASSERT_DEBUG(sizeRequired>0,User::Invariant());
+	ASSERT(sizeRequired > 0);
 	if (sizeRequired>sizeOfBuffer)
-		{
 		User::Leave(sizeRequired); // causes aMessage to complete with sizeRequired
-		}
+
 	CBufFlat* const buf=CBufFlat::NewL(sizeRequired);
 	CleanupStack::PushL(buf);
 	buf->ExpandL(0,sizeRequired);
@@ -713,9 +776,8 @@
 	writeStream.Open(*buf);
 	writeStream.WriteUint32L(arrayItemCount);
 	for (TInt i=0; i<arrayItemCount; ++i)
-		{
 		aArrayItemWriter.WriteArrayItemL(writeStream,i);
-		}
+
 	writeStream.CommitL();
 	aMessage.WriteL(2,buf->Ptr(0));
 	CleanupStack::PopAndDestroy(buf);
@@ -724,11 +786,9 @@
 void CApaAppListServSession::AppIconSizesL(const RMessage2& aMessage)
 	{
 	const TUid uid=TUid::Uid(aMessage.Int0());
-	CApaAppData& app = FindAppInListL(uid);
+	const CApaAppData& app = FindAppInListL(uid);
 	if (app.NonMbmIconFile())
-		{
 		User::Leave(KErrNotSupported);
-		}
 		
 	CArrayFixFlat<TSize>* array = app.IconSizesL();
 	CleanupStack::PushL(array);
@@ -740,7 +800,7 @@
 void CApaAppListServSession::AppViewsL(const RMessage2& aMessage)
 	{
 	const TUid uid=TUid::Uid(aMessage.Int0());
-	CApaAppData& app = FindAppInListL(uid);
+	const CApaAppData& app = FindAppInListL(uid);
 	TViewDataArrayItemWriter arrayItemWriter(*app.Views());
 	SendArrayL(arrayItemWriter,aMessage);
 	}
@@ -748,30 +808,23 @@
 void CApaAppListServSession::AppFileOwnershipInfoL(const RMessage2& aMessage)
 	{
 	const TUid uid=TUid::Uid(aMessage.Int0());
-	CApaAppData& app = FindAppInListL(uid);
+	const CApaAppData& app = FindAppInListL(uid);
 	TDesCArrayItemWriter arrayItemWriter(*app.OwnedFiles());
 	SendArrayL(arrayItemWriter,aMessage);
 	}
 
 void CApaAppListServSession::NumberOfOwnDefinedIconsL(const RMessage2& aMessage)
 	{
-	const TUid uid=TUid::Uid(aMessage.Int0());
-	TApaAppEntry entry;
-	CApaAppData* app=NULL;
-	if (!FindAppInList(app,entry,uid))
-		{
-		User::Leave(KErrNotFound);
-		}
-	if (app->NonMbmIconFile())
-		{
+	const TUid uid = TUid::Uid(aMessage.Int0());
+	const CApaAppData& app = FindAppInListL(uid);
+	if (app.NonMbmIconFile())
 		User::Leave(KErrNotSupported);
-		}
+
 	TInt count, defaultIconsUsed;
-	app->GetIconInfo(count, defaultIconsUsed);
+	app.GetIconInfo(count, defaultIconsUsed);
 	if (defaultIconsUsed)
-		{
 		count=0;
-		}
+
 	TPckgC<TInt> pckg(count); 
 	aMessage.Write(1,pckg);
 	}
@@ -779,13 +832,9 @@
 void CApaAppListServSession::ApplicationLanguageL(const RMessage2& aMessage)
 	{
 	const TUid appUid = TUid::Uid(aMessage.Int0());
-	TApaAppEntry appEntry;
-	CApaAppData* appData = NULL;
-	if (!FindAppInList(appData, appEntry, appUid))
-		{
-		User::Leave(KErrNotFound);
-		}
-	const TLanguage appLanguage = appData->ApplicationLanguage();
+	const CApaAppData& appData = FindAppInListL(appUid);
+
+	const TLanguage appLanguage = appData.ApplicationLanguage();
 	TPckgC<TLanguage> pckg(appLanguage); 
 	aMessage.Write(1,pckg);
 	}
@@ -797,36 +846,31 @@
 	TApaAppViewIconSizeData appViewIconSizeData;
 	{TPckg<TApaAppViewIconSizeData> appViewIconSizeData_asDescriptor(appViewIconSizeData);
 	aMessage.ReadL(0,appViewIconSizeData_asDescriptor);}
-	TApaAppEntry entry;
-	CApaAppData* app=NULL;
-	if (!FindAppInList(app,entry,appViewIconSizeData.iAppUid))
-		{
-		User::Leave(KErrNotFound);
-		}
-	ASSERT(app->Views());
-	const CArrayPtr<CApaAppViewData>& viewDataArray=*app->Views();
-	CApaMaskedBitmap* icon=NULL;
-	const TInt count=viewDataArray.Count();
+	const CApaAppData& app = FindAppInListL(appViewIconSizeData.iAppUid);
+	
+	ASSERT(app.Views());
+	const CArrayPtr<CApaAppViewData>& viewDataArray = *app.Views();
+	CApaMaskedBitmap* icon = NULL;
+	const TInt count = viewDataArray.Count();
 	for (TInt ii=0; ii<count; ii++)
 		{
-		const CApaAppViewData& appViewData=*viewDataArray[ii];
-		if (appViewData.Uid()==appViewIconSizeData.iViewUid)
+		const CApaAppViewData& appViewData = *viewDataArray[ii];
+		if (appViewData.Uid() == appViewIconSizeData.iViewUid)
 			{
 			if (appViewData.NonMbmIconFile())
-				{
 				User::Leave(KErrNotSupported);
-				}
+
 			icon=appViewData.Icon(appViewIconSizeData.iSize);
 			break;
 			}
 		}
-	if (icon==NULL)
-		{
+		
+	if (!icon)
 		User::Leave(KErrNotFound);
-		}
+
 	SReturnData_ViewIconByUidAndSize returnData;
-	returnData.iIcon=icon->Handle();
-	returnData.iIconMask=icon->Mask()->Handle();
+	returnData.iIcon = icon->Handle();
+	returnData.iIconMask = icon->Mask()->Handle();
 	aMessage.WriteL(1,TPckgC<SReturnData_ViewIconByUidAndSize>(returnData));
 	}
 
@@ -834,26 +878,19 @@
 	{
 	const TUid uid=TUid::Uid(aMessage.Int0());
 	const TSize size(aMessage.Int1(),aMessage.Int2());
-	TApaAppEntry entry;
-	CApaAppData* app=NULL;
-	if (!FindAppInList(app,entry,uid))
-		{
+	const CApaAppData& app=FindAppInListL(uid);
+
+	if (app.NonMbmIconFile())
+		User::Leave(KErrNotSupported);
+
+	CApaMaskedBitmap* const icon=app.Icon(size);
+	if (!icon)
 		User::Leave(KErrNotFound);
-		}
-	if (app->NonMbmIconFile())
-		{
-		User::Leave(KErrNotSupported);
-		}
-	CApaMaskedBitmap* const icon=app->Icon(size);
-	if (icon==NULL)
-		{
-		User::Leave(KErrNotFound);
-		}
+
 	SReturnData_AppIconByUidAndSize returnData;
 	returnData.iIcon=icon->Handle();
 	returnData.iIconMask=icon->Mask()->Handle();
 	aMessage.WriteL(3,TPckgC<SReturnData_AppIconByUidAndSize>(returnData));
-
 	}
 
 void CApaAppListServSession::IconFileHandleForAppL(const RMessage2& aMessage)
@@ -862,18 +899,17 @@
 	TApaAppEntry entry;
 	CApaAppData* app=NULL;
 	if (!FindAppInList(app,entry,uid))
-		{
 		User::Leave(KErrNotFound);
-		}
+
 	TPtrC iconFileName = app->IconFileName();
 	if (iconFileName.Length()==0)
-		{
 		User::Leave(KErrNotFound);
-		}
+
 	RFs fs;
 	User::LeaveIfError(fs.Connect());
 	CleanupClosePushL(fs);
 	User::LeaveIfError(fs.ShareProtected());
+
 	RFile file;
 	CleanupClosePushL(file);
 	User::LeaveIfError(file.Open(fs, iconFileName, EFileShareReadersOnly));
@@ -886,30 +922,24 @@
 // BUT!  It's interface is uid, side, icon handle, mask handle for bitmap sharing 
 // and avoiding IPC overhead
 	{
-	const TUid uid=TUid::Uid(aMessage.Int0());
-	const TInt side=aMessage.Int1();
-	TApaAppEntry entry;
-	CApaAppData* app=NULL;
-	if (!FindAppInList(app,entry,uid))
-		{
+	const TUid uid = TUid::Uid(aMessage.Int0());
+	const CApaAppData& app = FindAppInListL(uid);
+
+	if (app.NonMbmIconFile())
+		User::Leave(KErrNotSupported);
+	
+	const TInt side = aMessage.Int1();
+	CApaMaskedBitmap* const icon = app.Icon(side);
+	if (!icon)
 		User::Leave(KErrNotFound);
-		}
-	if (app->NonMbmIconFile())
-		{
-		User::Leave(KErrNotSupported);
-		}
-	CApaMaskedBitmap* const icon=app->Icon(side);
-	if (icon==NULL)
-		{
-		User::Leave(KErrNotFound);
-		}
+
 	SReturnData_AppIconByUid returnData;
-	returnData.iIcon=icon->Handle();
-	returnData.iIconMask=icon->Mask()->Handle();
+	returnData.iIcon = icon->Handle();
+	returnData.iIconMask = icon->Mask()->Handle();
 	aMessage.WriteL(2,TPckgC<SReturnData_AppIconByUid>(returnData));
 	}
 
-void CApaAppListServSession::AppForDataTypeL(const RMessage2& aMessage)
+void CApaAppArcServSession::AppForDataTypeL(const RMessage2& aMessage)
 // from AppForDataType(const TDataType& aDataType, TUid& aAppUid);
 	{
 	if (sizeof(TDataType) != aMessage.GetDesLengthL(0))
@@ -925,7 +955,7 @@
 	aMessage.Complete(KErrNone);
 	}
 
-void CApaAppListServSession::AppForDataTypeAndServiceL(const RMessage2& aMessage)
+void CApaAppArcServSession::AppForDataTypeAndServiceL(const RMessage2& aMessage)
 	{
 	TDataType dataType;
 	{TPckg<TDataType> dataType_asDescriptor(dataType);
@@ -936,49 +966,39 @@
 	aMessage.Complete(KErrNone);
 	}
 
-TUid CApaAppListServSession::AppForDataTypeL(const TDataType& aDataType, const TUid* aServiceUid)
+TUid CApaAppArcServSession::AppForDataTypeL(const TDataType& aDataType, const TUid* aServiceUid)
 	{
 	// It is possible to register apps as datatype handlers with system priority,
 	// which means that they are not overridable by user mappings.
 	// So search the list of apps for a datahandler and get the associated
 	// priority
-	TUid uid;
-	TInt priority;
-	uid=AppList().PreferredDataHandlerL(aDataType, aServiceUid, priority);
+	 
+	TInt priority = KDataTypePriorityNormal;
+	TUid uid = iAppListSession->AppList().PreferredDataHandlerL(aDataType, aServiceUid, priority);
 	if (priority == KDataTypePrioritySystem)
-		{
-		// We have found a handler with system priority
-		return uid;
-		}
+		return uid;	// We have found a handler with system priority
 		
 	// No handler with system priority so see if there is a user mapping
 	TUid userUid = KNullUid;
 	if (aServiceUid)
-		{
-		iServ.GetAppByDataType(aDataType,*aServiceUid,userUid);
-		}
+		iServ.GetAppForMimeType(aDataType,*aServiceUid,userUid);
 	else
-		{
-		iServ.GetAppByDataType(aDataType,userUid);
-		}
+		iServ.GetAppForMimeType(aDataType,userUid);
+
 	TApaAppEntry entry;
-	CApaAppData* app=NULL;
-	if ((userUid.iUid!=0) && FindAppInList(app,entry,userUid))
-		{
-		// The user mapping is valid
-		return userUid;
-		}
+	const CApaAppData* app = NULL;
+	if (userUid.iUid && iAppListSession->FindAppInList(app,entry,userUid))
+		return userUid;	// The user mapping is valid
 		
 	// A user mapping was not found or is invalid so try to use
 	// the uid returned by PreferredDataHandlerL.
-	if (uid.iUid==0 && aDataType.IsNative())
-		{
-		uid=aDataType.Uid();
-		}
+	if (!uid.iUid && aDataType.IsNative())
+		uid = aDataType.Uid();
+
 	return uid;
 	}
 
-void CApaAppListServSession::InsertDataMappingL(const RMessage2& aMessage)
+void CApaAppArcServSession::InsertDataMappingL(const RMessage2& aMessage)
 	{
 	TPckgBuf<TDataType> dataType;
 	aMessage.ReadL(0, dataType);
@@ -987,7 +1007,7 @@
 
 	if(priority>KDataTypeUnTrustedPriorityThreshold || priority == KDataTypePrioritySystem ) 
 	   {   
-	   CApaAppData* appData = AppList().AppDataByUid(appUid);
+	   CApaAppData* appData = iAppListSession->AppList().AppDataByUid(appUid);
 	   if( appData )	
 		  {
           TBool hasWriteDeviceDataCap( EFalse );
@@ -1007,7 +1027,7 @@
               }
           else
               {
-              TPtrC registrationFilePath = appData->RegistrationFileName ( );
+              TPtrC registrationFilePath = appData->RegistrationFileName();
               TInt match = registrationFilePath.MatchF (
                                           KLitPathForUntrustedRegistrationResourceFiles );
               //Check if registration file is in path for untrusted apps 
@@ -1027,26 +1047,24 @@
               priority = KDataTypeUnTrustedPriorityThreshold;
 		  }
 	   }
+
 	const TUid serviceUid = { aMessage.Int3() };
 	if(aMessage.Function() == EAppListInsertDataMappingIfHigher)
 		{
 		const TBool response = iServ.InsertAndStoreIfHigherL(dataType(), priority, appUid);
 		aMessage.WriteL(3, TPckgC<TBool>(response));
-
 		}
 	else
-		{
 		iServ.InsertAndStoreDataMappingL(dataType(), priority, appUid, serviceUid);
-		}
 	}
 
-void CApaAppListServSession::DeleteDataMappingL(const RMessage2& aMessage)
+void CApaAppArcServSession::DeleteDataMappingL(const RMessage2& aMessage)
 	{
 	TPckgBuf<TDataType> dataType;
 	aMessage.ReadL(0, dataType);
 	const TUid serviceUid = { aMessage.Int1() };
 	TUid uid;
-	iServ.GetAppByDataType(dataType(),serviceUid,uid);
+	iServ.GetAppForMimeType(dataType(),serviceUid,uid);
 	if (uid != KNullUid)
 		{
 		// TypeStore doesn't support deletion of an inexistent mapping
@@ -1054,109 +1072,22 @@
 		aMessage.Complete(KErrNone);
 		}
 	else
-		{
 		aMessage.Complete(KErrNotFound);
-		}
 	}
 	
-void CApaAppListServSession::GetAppByDataTypeL(const RMessage2& aMessage) const
+void CApaAppArcServSession::GetAppByDataTypeL(const RMessage2& aMessage) const
 	{
 	TPckgBuf<TDataType> dataType;
 	aMessage.ReadL(0,dataType);
 	const TUid serviceUid = { aMessage.Int1() };
 	TUid uid;
-	iServ.GetAppByDataType(dataType(),serviceUid,uid);
+	iServ.GetAppForMimeType(dataType(),serviceUid,uid);
 	TPckgC<TUid> uidpckg(uid);
 	aMessage.WriteL(2,uidpckg);
 	aMessage.Complete(KErrNone);
 	}
 
-void CApaAppListServSession::StartDocumentL(const RMessage2& aMessage,TAppListDocumentStart aStartType)
-// from StartDocument(const TDesC& aFileName, TThreadId& aId, TLaunchType aLaunchType);
-// from StartDocument(const TDesC& aFileName, const TDataType& aDataType, TThreadId& aId, TLaunchType aLaunchType);
-// from StartDocument(const TDesC& aFileName, TUid aAppUid, TThreadId& aId, TLaunchType aLaunchType);
-// from CreateDocument(const TDesC& aFileName, TUid aAppUid, TThreadId& aId, TLaunchType aLaunchType);
-// This method needs to open the file, mime type it then launch it.
-	{
-	HBufC* const fileName=HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(1)));
-	{TPtr fileName_asWritable(fileName->Des());
-	aMessage.ReadL(1,fileName_asWritable);}
-
-	TUid uid;
-	if ((aStartType==EStartByUid) || (aStartType==ECreateByUid))
-		{
-		uid.iUid=aMessage.Int2();
-		}
-	else
-		{
-		TDataType* const dataType=new(ELeave) TDataType();
-		CleanupStack::PushL(dataType);
-		if (aStartType==EStart)
-			{
-			HBufC8* const buffer=HBufC8::NewLC(User::LeaveIfError(aMessage.GetDesLength(2)));
-			{TPtr8 buffer_asWritable(buffer->Des());
-			aMessage.ReadL(2,buffer_asWritable);}
-			*dataType=iServ.RecognizeDataL(*fileName, *buffer).iDataType;
-			CleanupStack::PopAndDestroy(buffer);
-			}
-		else
-			{
-			__ASSERT_DEBUG(aStartType==EStartByDataType,User::Invariant());
-			TPckg<TDataType> dataType_asDescriptor(*dataType);
-			aMessage.ReadL(2,dataType_asDescriptor);
-			}
-		uid=AppForDataTypeL(*dataType, NULL);
-		CleanupStack::PopAndDestroy(dataType);
-		}
-	const TThreadId threadId=StartDocumentL(*fileName,uid,(aStartType==ECreateByUid)? EApaCommandCreate: EApaCommandOpen);
-	CleanupStack::PopAndDestroy(fileName);
-	aMessage.WriteL(0, TPckgC<TThreadId>(threadId));
-	}
-
-TThreadId CApaAppListServSession::StartDocumentL(const TDesC& aFileName, TUid aUid, TApaCommand aCommand)
-// Launch the document of aFileName with the app with Uid aUid
-	{
-	CApaAppData* app=NULL;
-	CApaFileRecognizerType* type=NULL;
-	TApaAppEntry entry;
-	const TBool findApp=FindAppInList(app,entry,aUid);
-	if (findApp)
-	    {
-	    if (app->RegistrationFileUsed())
-			{
-			TApaAppCapabilityBuf buf;
-			app->Capability(buf);
-	 		if (((buf().iEmbeddability == TApaAppCapability::EEmbeddableOnly) || (buf().iEmbeddability == TApaAppCapability::EEmbeddableUiNotStandAlone)) && !(buf().iAttributes & TApaAppCapability::EBuiltAsDll))
-	              {
-				   User::Leave(KErrNotSupported);		
-                  }
-	 		}
-	    }
-
-	if (!findApp || aUid.iUid==0)
-		{
-		// if we can't bind the type from the Mime type stuff then use the old scheme
-		TRAP_IGNORE(type=FileRecognizer()->RecognizeFileL(aFileName));
-		}
-	else
-		{
-		if (findApp)
-			{
-			TRAP_IGNORE(type=FileRecognizer()->RecognizeFileL(entry.iFullName));
-			}
-		}
-	if (!type)
-		{
-		User::Leave(KErrNotFound);
-		}
-	if (aFileName.Length()==0)
-		{
-		return type->RunL(EApaCommandRun,NULL,NULL);
-		}
-	return type->RunL(aCommand,&aFileName,NULL);
-	}
-
-void CApaAppListServSession::GetExecutableNameGivenDocumentL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetExecutableNameGivenDocumentL(const RMessage2& aMessage)
 	{
 	HBufC* const name=HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(2)));
 	{TPtr name_asWritable(name->Des());
@@ -1171,7 +1102,7 @@
 	GetExecutableNameL(aMessage, appUid);
 	}
 
-void CApaAppListServSession::GetExecutableNameGivenDocumentPassedByFileHandleL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetExecutableNameGivenDocumentPassedByFileHandleL(const RMessage2& aMessage)
 	{
 	RFile file;
 	CleanupClosePushL(file);
@@ -1183,7 +1114,7 @@
 	GetExecutableNameL(aMessage, appUid);
 	}
 
-void CApaAppListServSession::GetExecutableNameGivenDataTypeL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetExecutableNameGivenDataTypeL(const RMessage2& aMessage)
 	{
 	if (sizeof(TDataType) != aMessage.GetDesLengthL(2))
 		{
@@ -1197,73 +1128,66 @@
 	GetExecutableNameL(aMessage, appUid);
 	}
 
-void CApaAppListServSession::GetExecutableNameGivenAppUidL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetExecutableNameGivenAppUidL(const RMessage2& aMessage)
 	{
 	const TUid appUid(TUid::Uid(aMessage.Int2()));
 	GetExecutableNameL(aMessage, appUid);
 	}
 
-void CApaAppListServSession::GetExecutableNameL(const RMessage2& aMessage, TUid aAppUid)
+void CApaAppArcServSession::GetExecutableNameL(const RMessage2& aMessage, TUid aAppUid)
 	{
-	CApaAppData* appData=NULL;
+	const CApaAppData* appData=NULL;
 	TApaAppEntry entry;
-	if (!FindAppInList(appData, entry, aAppUid))
-		{
-		User::Leave(AppList().IsFirstScanComplete() ?
-					KErrNotFound : RApaLsSession::EAppListInvalid);
-		}
+	if (!iAppListSession->FindAppInList(appData, entry, aAppUid))
+		User::Leave(iAppListSession->AppList().IsFirstScanComplete() ? KErrNotFound : RApaLsSession::EAppListInvalid);
+
 	const TDesC& executableName(entry.iFullName);
-	if (executableName.Length() == 0)
-		{
+	if (!executableName.Length())
 		User::Leave(KErrNotFound);
-		}
+
 	aMessage.WriteL(1, executableName); // the "logical" executable name - for non-native applications this is the name of the MIDlet, Python script, etc
 	WriteNativeExecutableIfNonNativeAndPrepareForClientRetrievalOfOpaqueDataL(aMessage, 0, *appData);
 	}
 
-void CApaAppListServSession::GetNativeExecutableNameIfNonNativeL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetNativeExecutableNameIfNonNativeL(const RMessage2& aMessage)
 	{
 	RBuf logicalExecutableName;
 	logicalExecutableName.CreateL(User::LeaveIfError(aMessage.GetDesLength(1)));
 	CleanupClosePushL(logicalExecutableName);
 	aMessage.ReadL(1, logicalExecutableName);
-	CApaAppData* const appData=AppList().AppDataByFileName(logicalExecutableName);
+	CApaAppData* const appData=iAppListSession->AppList().AppDataByFileName(logicalExecutableName);
 	if (appData!=NULL)
-		{
 		WriteNativeExecutableIfNonNativeAndPrepareForClientRetrievalOfOpaqueDataL(aMessage, 0, *appData);
-		}
+
 	CleanupStack::PopAndDestroy(&logicalExecutableName);
 	}
 
-void CApaAppListServSession::WriteNativeExecutableIfNonNativeAndPrepareForClientRetrievalOfOpaqueDataL(const RMessage2& aMessage, TInt aMessageSlotForNativeExecutable, const CApaAppData& aAppData)
+void CApaAppArcServSession::WriteNativeExecutableIfNonNativeAndPrepareForClientRetrievalOfOpaqueDataL(const RMessage2& aMessage, TInt aMessageSlotForNativeExecutable, const CApaAppData& aAppData)
 	{
 	HBufC8* opaqueData=NULL;
 	const TPtrC8 opaqueData_asTPtrC8(aAppData.OpaqueData());
 	const TInt lengthOfOpaqueData(opaqueData_asTPtrC8.Length());
 	if (lengthOfOpaqueData>0)
-		{
 		opaqueData=opaqueData_asTPtrC8.AllocLC();
-		}
+
 	const TUid nonNativeApplicationType(aAppData.NonNativeApplicationType());
 	if (nonNativeApplicationType!=TUid::Null())
-		{
 		aMessage.WriteL(aMessageSlotForNativeExecutable, iServ.NativeExecutableL(nonNativeApplicationType));
-		}
+
 	delete iOpaqueData_pendingDispatchToClient; // only done when the potentially leaving stuff has all succeeded
 	iOpaqueData_pendingDispatchToClient=opaqueData; // want to do this, even if opaqueData is NULL
-	if (opaqueData!=NULL)
+	if (opaqueData)
 		{
 		CleanupStack::Pop(opaqueData);
 		aMessage.Complete(lengthOfOpaqueData);
 		}
 	}
 
-void CApaAppListServSession::GetOpaqueDataL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetOpaqueDataL(const RMessage2& aMessage)
 	{
 	if (iOpaqueData_pendingDispatchToClient==NULL)
-		{
 		User::Leave(KErrGeneral); // the protocol was broken: EAppListServGetOpaqueData can only be called immediately after one of the EAppListServGetExecutableNameGivenXxx or EAppListServGetNativeExecutableNameGivenXxx opcodes - see the client-side implementation of this protocol in RApaLsSession::GetOpaqueData (and the places that call it)
-		}
+
 	aMessage.WriteL(0, *iOpaqueData_pendingDispatchToClient);
 	delete iOpaqueData_pendingDispatchToClient;
 	iOpaqueData_pendingDispatchToClient=NULL;
@@ -1271,53 +1195,79 @@
 
 void CApaAppListServSession::GetAppInfoL(TUid aUid, TApaAppInfo& aInfo)
 	{
-	CApaAppData* app=NULL;
+	const CApaAppData* app = NULL;
 	TApaAppEntry entry;
-	if (!FindAppInList(app,entry,aUid))
-		{
+	if (!FindAppInList(app, entry, aUid))
 		User::Leave(KErrNotFound);
-		}
+
 	aInfo.iUid = entry.iUidType[2];
 	aInfo.iFullName = entry.iFullName;
 	aInfo.iCaption = app->Caption();
 	aInfo.iShortCaption = app->ShortCaption();
 	}
 	
-void CApaAppListServSession::DoRecognizeUnpackLC(HBufC*& aName, HBufC8*& aBuffer, const RMessage2& aMessage)
+TPtrC8 CApaAppArcServSession::DoRecognizeUnpackLC(HBufC*& aName, RChunk& aLocalChunk, const RMessage2& aMessage)
 	{
-	__ASSERT_DEBUG(aName==NULL,User::Invariant());
-	__ASSERT_DEBUG(aBuffer==NULL,User::Invariant());
-	aName=HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(1)));
-	TPtr name(aName->Des());
-	aMessage.ReadL(1, name);
-	aBuffer=HBufC8::NewLC(User::LeaveIfError(aMessage.GetDesLength(2)));
-	TPtr8 buffer(aBuffer->Des());
-	aMessage.ReadL(2, buffer);
+    ASSERT(aName==NULL);
+    
+    aName=HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(1)));
+    TPtr name(aName->Des());
+    aMessage.ReadL(1, name);
+    
+    HBufC8* buffer=NULL;
+    TInt error=KErrNone;
+    TInt bufferSize= aMessage.GetDesLength(2);
+    User::LeaveIfError(bufferSize);
+    //Allocate memory in apparc's process heap.
+    TRAP(error, buffer=HBufC8::NewL(bufferSize));
+
+    if(error==KErrNone)
+        {
+        CleanupStack::PushL(buffer);
+        TPtr8 bufPtr(buffer->Des());
+        aMessage.ReadL(2, bufPtr);   
+        return bufPtr;
+        }
+    else if(error==KErrNoMemory)
+        {
+        //If memory is not available in apparc's process heap, then allocate in kernel heap
+        User::LeaveIfError(aLocalChunk.CreateLocal(bufferSize,bufferSize));
+        CleanupClosePushL(aLocalChunk);
+        TPtr8 bufPtr(aLocalChunk.Base(), bufferSize);
+        aMessage.ReadL(2, bufPtr); 
+        return bufPtr;        
+        }
+    else
+        {
+        User::Leave(error);
+        }
+    
+    TPtrC8 bufPtr(NULL,0); //Never executed. To make compiler happy
+    return bufPtr;
 	}
 
-void CApaAppListServSession::RecognizeDataL(const RMessage2& aMessage)
+void CApaAppArcServSession::RecognizeDataL(const RMessage2& aMessage)
 // Recognize the data type of an object
 	{
 	HBufC* name=NULL;
-	HBufC8* buffer=NULL;
-	DoRecognizeUnpackLC(name,buffer,aMessage);
+    RChunk localChunk;
+    
+	TPtrC8 bufPtr=DoRecognizeUnpackLC(name, localChunk, aMessage);
 
-	const TDataRecognitionResult result = iServ.RecognizeDataL(*name, *buffer);
+	const TDataRecognitionResult result = iServ.RecognizeDataL(*name, bufPtr);
 
-	CleanupStack::PopAndDestroy(2); // name & buffer
+	CleanupStack::PopAndDestroy(2); // name & buffer or localChunk
 	aMessage.WriteL(0,TPckgC<TDataRecognitionResult>(result));
 	}
 
 
-void CApaAppListServSession::RecognizeFilesL(const RMessage2& aMessage)
+void CApaAppArcServSession::RecognizeFilesL(const RMessage2& aMessage)
 	{
 	// if there is an outstanding async. request, we even don't allow 
 	// a synchronous request at the same time (due to the two required
 	// server messages)
 	if (iAsyncRecognitionActive)
-		{
 		User::Leave(KErrInUse);
-		}
 
 	_LIT8(KAllDataTypes,"*");
 
@@ -1351,7 +1301,7 @@
 	aMessage.WriteL(1,TPckgBuf<TUint>(iRecognitionResult->RequiredBufferSize()));
 	}
 
-void CApaAppListServSession::TransferRecognitionResultL(const RMessage2& aMessage)
+void CApaAppArcServSession::TransferRecognitionResultL(const RMessage2& aMessage)
 	{
 	if(iRecognitionResult == NULL)
 		User::Leave(KErrNotReady);
@@ -1379,23 +1329,20 @@
 	CleanupStack::PopAndDestroy(buf);
 	}
 
-void CApaAppListServSession::RecognizeFilesAsyncL(const RMessage2& aMessage)
+void CApaAppArcServSession::RecognizeFilesAsyncL(const RMessage2& aMessage)
 	{
 	if (iAsyncRecognitionActive)
-		{
 		User::Leave(KErrInUse);
-		}
 	else
 		{
 		_LIT8(KAllDataTypes,"*");
 
-		HBufC* path=HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(0)));
+		HBufC* path = HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(0)));
 		TPtr pathPtr(path->Des());
 		aMessage.ReadL(0,pathPtr);
 
 		// retrieve data type filter
-		HBufC8* dataType = 0;
-		dataType=HBufC8::NewLC(User::LeaveIfError(aMessage.GetDesLength(2)));
+		HBufC8* dataType = HBufC8::NewLC(User::LeaveIfError(aMessage.GetDesLength(2)));
 		TPtr8 dataTypePtr(dataType->Des());
 		aMessage.ReadL(2,dataTypePtr);
 
@@ -1426,47 +1373,64 @@
 The application will be launched if the return code is not equal to
 CAppLaunchChecker::EAppLaunchDecline 
 */
-void CApaAppListServSession::RuleBasedLaunchingL(const RMessage2& aMessage)
+void CApaAppArcServSession::AquirePermissionToLaunchAppL(const RMessage2& aMessage) const
 	{
-	CApaScanningRuleBasedPlugIns* theRuleBasedPlugIns = iServ.RuleBasedPlugIns();
-	if(!theRuleBasedPlugIns)
+	const CApaScanningRuleBasedPlugIns* theRuleBasedPlugIns = iServ.RuleBasedPlugIns();
+	const TInt theNumImp = (theRuleBasedPlugIns ? theRuleBasedPlugIns->ImplementationCount() : 0);
+	if(!theNumImp || !iServ.WsSession().Handle())
 		{
-		//we proceed with launching even if rule based plug-ins framework was not initialized
+		// Proceed with launch if rule based plug-in framework was not initialized
 		aMessage.Complete(ETrue);
 		return;
 		}
 
-	HBufC* theFullFileName=HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(0)));
+	// Get the name of the app to start from the IPC message object
+	HBufC* theFullFileName = HBufC::NewLC(User::LeaveIfError(aMessage.GetDesLength(0)));
 	TPtr theFullFileNamePtr(theFullFileName->Des());
 	aMessage.ReadL(0, theFullFileNamePtr);
-	TUid theUid = AppUidFromFullFileNameL(theFullFileNamePtr);
+	
+	// Ge the application's UID from its name
+	const TUid theUid = iAppListSession->AppUidFromFullFileNameL(theFullFileNamePtr);
 	CleanupStack::PopAndDestroy(theFullFileName); 
 
+	// Iterate through all plug-ins and look for one that's not indifferent
 	CAppLaunchChecker::TAppLaunchCode theLaunchCode = CAppLaunchChecker::EAppLaunchIndifferent;	
-	TInt theNumImp = theRuleBasedPlugIns->ImplementationCount();
-
 	TApaTaskList theTaskList(iServ.WsSession());
 	for(TInt ii = 0; ii < theNumImp; ii++)
 		{
-		CAppLaunchChecker* theLauncherChecker = (*theRuleBasedPlugIns)[ii];
-		TRAP_IGNORE((theLaunchCode = theLauncherChecker->OkayToLaunchL(theUid, theTaskList)));
-		if(theLaunchCode > CAppLaunchChecker::EAppLaunchIndifferent)
+		CAppLaunchChecker* const theLauncherChecker = (*theRuleBasedPlugIns)[ii];
+		TRAP_IGNORE(theLaunchCode = theLauncherChecker->OkayToLaunchL(theUid, theTaskList));
+		if(theLaunchCode != CAppLaunchChecker::EAppLaunchIndifferent)
 			break;
 		}
-	//writing the result
-	TBool okayToLaunch = theLaunchCode != CAppLaunchChecker::EAppLaunchDecline;
+		
+	// Return the result
+	const TBool okayToLaunch = (theLaunchCode != CAppLaunchChecker::EAppLaunchDecline);
 	aMessage.Complete(okayToLaunch);
 	}
 
 /** 
 @param aFullFileName This filename is parsed and the path is replaced with "\\sys\\bin\\". 
-		And uses ".exe" if no other is provided in the filename passed.  If drive name is 
+		It uses ".exe" if no other is provided in the filename passed.  If drive name is 
 		present in the filename then it scans through the \\sys\\bin of that particular drive,
 		otherwise it scans through the \\sys\\bin folders in all the avaliable drives.
 @return Returns the Application Uid for the aFullFileName application.
 */
 TUid CApaAppListServSession::AppUidFromFullFileNameL(const TDesC& aFullFileName) const
 	{
+	
+	// If the appliation still wasn't found, use AppArc's appliation list
+	// Since we cannot get the Uid of NonNative apps by passing filename to RFs::Entry
+	CApaAppData* appData = iAppList.AppDataByFileName(aFullFileName);
+	if (appData)
+		{
+		TApaAppEntry appEntry = appData->AppEntry();
+		return appEntry.iUidType[2];
+		}
+	
+	
+//mm: Why does this code not use AppArc's application list only?	
+//mm: The order in which different methods to locate the app is used seems inefficient.
 	_LIT(KSysBin, "\\sys\\bin\\");
 	_LIT(KFileExtension, ".EXE");
 	
@@ -1474,10 +1438,12 @@
 	User::LeaveIfError(loader.Connect());
 	CleanupClosePushL(loader);
 	TPckgBuf<RLibrary::TInfo> dllInfo;
-	TInt error = KErrNotFound;
 
 	TParse parse;
 	parse.Set(aFullFileName,NULL,NULL);
+
+	// If the drive letter has been specified, look on that drive only...
+	TInt error = KErrNotFound;
 	if (parse.DrivePresent())
 		{
 		const TPtrC appDrive = parse.Drive();
@@ -1486,9 +1452,8 @@
 		User::LeaveIfError(parse.SetNoWild(fileName, &aFullFileName, &KFileExtension));
 		error = loader.GetInfo(parse.FullName(), dllInfo);
 		}
-	else
+	else	// ...otherwise scan all drives.
 		{
-		// scan all drives
 		User::LeaveIfError(parse.SetNoWild(KSysBin, &aFullFileName, &KFileExtension)); 
 		TFileName tempFileName(parse.FullName());
 		TDriveList driveList;
@@ -1500,65 +1465,52 @@
 				User::LeaveIfError(parse.SetNoWild(TDriveUnit(driveNumber).Name(), &tempFileName, NULL));
 				error = loader.GetInfo(parse.FullName(), dllInfo);
 				if (error == KErrNone)
-					{
 					break;
-					}
 				}
 			}
 		}
+
 	CleanupStack::PopAndDestroy(&loader);
-	if (error == KErrNone)
-		{
+	// Return the UID if found and no errors occured
+	if(!error)
 		return dllInfo().iUids[2];
-		}
+	
+	// If the application wasn't found
+	// Try looking for the application using normal F32. This won't work in protected directories
 
-	//we can't use RFs::Entry if path refers to a system directory i.e. \\sys\\bin
+	// Since we can't use RFs::Entry if the path refers the protected system directory (i.e. \sys\bin)...
 	User::LeaveIfError(parse.SetNoWild(aFullFileName, NULL, NULL));
 	if(parse.Path().FindF(KSysBin) == 0)
-		{
-		User::Leave(KErrNotFound);
-		}
-	
-	//the following valid for non-native applications
+		User::Leave(KErrNotFound);	// ... then return not-found.
+
+//mm: Surely we should still be allowed to use AppArc below?
+
+	// The following is valid for non-native applications only
 	TEntry entry;
 	error = iFs.Entry(aFullFileName, entry);
-	if (error != KErrNone)
-		{
-		// Since we cannot get the Uid of NonNative apps by passing filename to RFs::Entry
-		CApaAppData* appData = AppList().AppDataByFileName(aFullFileName);
-		if (appData)
-			{
-			TApaAppEntry appEntry = appData->AppEntry();
-			return appEntry.iUidType[2];
-			}
-		User::Leave(KErrNotFound);
-		}
-			
-	return entry.iType[2];
+	if(!error)
+		return entry.iType[2];
+
+	User::Leave(KErrNotFound);
+	return TUid::Null();	// Won't be called
 	}
 
+/**
+Applies the scanning order Y: through A: then Z: last.
+*/
 TInt CApaAppListServSession::NextDriveToScan(TInt aCurrentDrive)
-// applies the scanning order y:->a: then z:
 	{
 	if (aCurrentDrive == EDriveZ)
-		{
 		return KFinishedScanning;
-		}
 	else if (aCurrentDrive == 0)
-		{
-		return EDriveZ; // finally scan the last one
-		}
+		return EDriveZ; 	// finally scan the last one
 	else if (aCurrentDrive > 0 && aCurrentDrive < KMaxDrives)
-		{
 		return aCurrentDrive - 1;
-		}
 	else
-		{
 		return KErrGeneral; // never gets here, but it wont compile otherwise
-		}
 	}
 
-void CApaAppListServSession::CancelRecognizeFiles()
+void CApaAppArcServSession::CancelRecognizeFiles()
 	{
 	if (iAsyncRecognitionActive)
 		{
@@ -1568,7 +1520,7 @@
 		}
 	}
 
-void CApaAppListServSession::RecognizeDataPassedByFileHandleL(const RMessage2& aMessage)
+void CApaAppArcServSession::RecognizeDataPassedByFileHandleL(const RMessage2& aMessage)
 // Recognize the data type of an object
 	{
 	RFile file;
@@ -1579,20 +1531,21 @@
 	aMessage.WriteL(0, TPckgC<TDataRecognitionResult>(result));
 	}
 	
-void CApaAppListServSession::RecognizeSpecificDataL(const RMessage2& aMessage)
+void CApaAppArcServSession::RecognizeSpecificDataL(const RMessage2& aMessage)
 // Determine whether an object is of a specific data type
 	{
 	HBufC* name=NULL;
-	HBufC8* buffer=NULL;
-	DoRecognizeUnpackLC(name,buffer,aMessage);
+	RChunk localChunk;
+	
+	TPtrC8 bufPtr=DoRecognizeUnpackLC(name, localChunk, aMessage);
 	TDataType dataType;
 	{TPckg<TDataType> dataType_asDescriptor(dataType);
 	aMessage.ReadL(0, dataType_asDescriptor);}
-	aMessage.Complete(iServ.RecognizeDataL(*name,*buffer,dataType));
-	CleanupStack::PopAndDestroy(2); // name & buffer
+	aMessage.Complete(iServ.RecognizeDataL(*name,bufPtr,dataType));
+	CleanupStack::PopAndDestroy(2); // name & buffer or localChunk
 	}
 
-void CApaAppListServSession::RecognizeSpecificDataPassedByFileHandleL(const RMessage2& aMessage)
+void CApaAppArcServSession::RecognizeSpecificDataPassedByFileHandleL(const RMessage2& aMessage)
 	{
 	RFile file;
 	CleanupClosePushL(file);
@@ -1616,15 +1569,16 @@
 		aMessage.ReadL(1,filter_asDescriptor);}
 		iEmbeddabilityFilter = filter;
 		}
+
 	if (aType == EListCapabilityAttrFilteredApps)
 		{
 		iCapabilityAttrFilterMask = aMessage.Int1();
 		iCapabilityAttrFilterValue = aMessage.Int2();
 		}
+
 	if (aType == EListServerApps)
-		{
 		iServiceUid = TUid::Uid(aMessage.Int1());
-		}
+
 	iApaAppInfoArray.ResetAndDestroy();
 	iFlags|=EAppListPopulationPending;
 	}
@@ -1633,7 +1587,7 @@
 // writes back the number of embedded apps in the list
 	{
 	TInt count=0;
-	const CApaAppList& list=AppList();
+	const CApaAppList& list = iAppList;
 	CApaAppData* app = list.FirstApp();
 	TApaEmbeddabilityFilter filter;
 	filter.AddEmbeddability(TApaAppCapability::EEmbeddable);
@@ -1641,28 +1595,28 @@
 	while (app)
 		{
 		if (!AppIsControlPanelItem(*app) && AppMatchesEmbeddabilityFilter(*app, filter))
-			{
 			count++;
-			}
+
 		app = list.NextApp(app);
 		}
+
 	aMessage.Complete(count);
 	}
 
 void CApaAppListServSession::AppCount(const RMessage2& aMessage) const
 // writes back the number of apps in the list
 	{
-	TInt count=0;
-	const CApaAppList& list=AppList();
+	TInt count = 0;
+	const CApaAppList& list = iAppList;
 	CApaAppData* app = list.FirstApp();
 	while (app)
 		{
 		if (!AppIsControlPanelItem(*app))
-			{
 			count++;
-			}
+
 		app = list.NextApp(app);
 		}
+
 	aMessage.Complete(count);
 	}
 
@@ -1670,27 +1624,22 @@
 	{
 	if (iFlags&EAppListPopulationPending)
 		{
-		const CApaAppList& list=AppList();
+		const CApaAppList& list=iAppList;
 		if (!(list.IsFirstScanComplete()))
-			{
 			User::Leave(KErrCorrupt);
-			}
-
+		
 		iApaAppInfoArray.ResetAndDestroy();
 		for (CApaAppData* appData = list.FirstApp(iAppListScreenMode); appData != NULL; appData = list.NextApp(appData, iAppListScreenMode))
 			{
 			if (iAppListType==EListFilteredEmbeddedApps && (AppIsControlPanelItem(*appData) || !AppMatchesEmbeddabilityFilter(*appData, iEmbeddabilityFilter)))
-				{
 				continue;
-				}
+
 			if (iAppListType==EListCapabilityAttrFilteredApps && !AppMatchesCapabilityAttrFilter(*appData))
-				{
 				continue;
-				}
+
 			if (iAppListType==EListServerApps && !appData->ImplementsService(iServiceUid))
-				{
 				continue;
-				}
+
 			CApaAppInfo* apaAppInfo= new (ELeave)CApaAppInfo();
 			CleanupStack::PushL(apaAppInfo);
 			apaAppInfo->SetCaptionL(appData->Caption());
@@ -1700,13 +1649,13 @@
 			User::LeaveIfError(iApaAppInfoArray.Append(apaAppInfo));
 			CleanupStack::Pop(apaAppInfo);
 			}
-		iFlags&=~EAppListPopulationPending;
+		
+		iFlags &= ~EAppListPopulationPending;
 		}
 
-	if (iApaAppInfoArray.Count()==0)
-		{
+	if (!iApaAppInfoArray.Count())
 		User::Leave(KErrNotFound);
-		}
+
 	TApaAppInfo* info=new(ELeave)TApaAppInfo; 
 	CleanupStack::PushL(info);
 	CApaAppInfo* apaAppInfo = iApaAppInfoArray[0];
@@ -1716,17 +1665,14 @@
 	// Get the length of the target descriptor
 	TInt targetLen=aMessage.GetDesMaxLength(1);
 	if (targetLen==KApaAppInfoDesMaxLength)
-		{
 		info->iShortCaption = apaAppInfo->ShortCaption();
-		}
-	//
+
 	iApaAppInfoArray.Remove(0);
 	delete apaAppInfo;
 	TPckgC<TApaAppInfo> infoPk(*info);
 	if (targetLen<KApaAppInfoDesMaxLength)
-		{
 		infoPk.Set(infoPk.Left(_FOFF(TApaAppInfo,iShortCaption))); // reduce the length of infoPk to the 7.0 size of TApaAppInfo
-		}
+
 	aMessage.WriteL(1,infoPk);
 	CleanupStack::PopAndDestroy(info);
 	}
@@ -1736,11 +1682,8 @@
 	{
 	TApaAppCapabilityBuf capabilityBuf;
 	aAppData.Capability(capabilityBuf);
-	if (aEmbeddabilityFilter.MatchesEmbeddability(capabilityBuf().iEmbeddability))
-		{
-		return ETrue;
-		}
-	return EFalse;
+
+	return (aEmbeddabilityFilter.MatchesEmbeddability(capabilityBuf().iEmbeddability));
 	}
 
 TBool CApaAppListServSession::AppMatchesCapabilityAttrFilter(const CApaAppData& aAppData) const
@@ -1748,11 +1691,7 @@
 	{
 	TApaAppCapabilityBuf capabilityBuf;
 	aAppData.Capability(capabilityBuf);
-	if ((capabilityBuf().iAttributes & iCapabilityAttrFilterMask) == (iCapabilityAttrFilterValue & iCapabilityAttrFilterMask))
-		{
-		return ETrue;
-		}
-	return EFalse;
+	return ((capabilityBuf().iAttributes & iCapabilityAttrFilterMask) == (iCapabilityAttrFilterValue & iCapabilityAttrFilterMask));
 	}
 
 TBool CApaAppListServSession::AppIsControlPanelItem(const CApaAppData& aAppData)
@@ -1760,56 +1699,52 @@
 	{
 	TApaAppCapabilityBuf capabilityBuf;
 	aAppData.Capability(capabilityBuf);
-	if (capabilityBuf().iAttributes & TApaAppCapability::EControlPanelItem)
-		{
-		return ETrue;
-		}
-	return EFalse;
+	return (capabilityBuf().iAttributes & TApaAppCapability::EControlPanelItem);
 	}
 
-TBool CApaAppListServSession::FindAppInList(CApaAppData*& aApp,TApaAppEntry& aEntry,TUid aAppUid)
-// locate app in list, return EFalse if it isn't present
-// search is regardless of screen mode.
+/**
+locate app in list, return EFalse if it isn't present
+search is regardless of screen mode.
+@internalComponent
+*/
+TBool CApaAppListServSession::FindAppInList(CApaAppData*& aApp, TApaAppEntry& aEntry, TUid aAppUid)
 	{
-	const CApaAppList& list=AppList();
+	// Look for the app with aAppUid in the app list we keep
+	const CApaAppList& list = iAppList;
 	aApp = list.AppDataByUid(aAppUid);
-	TBool found=EFalse;
 	if (aApp)
+		aEntry = aApp->AppEntry();
+	
+	// If the app list is currently in flux, try to nail down the app by looking for it specifically
+	const TBool appPendingOnLangChange = (aApp && list.IsLanguageChangePending() && aApp->IsPending());	
+	if ((!aApp || appPendingOnLangChange) && !list.IsIdleUpdateComplete())
 		{
-		found = ETrue;
-		aEntry = aApp->AppEntry();
-		}
-	
-	TBool appPendingOnLangChange = found && list.IsLanguageChangePending() && aApp->IsPending();	
-		
-	if ((!found || appPendingOnLangChange) && !list.IsIdleUpdateComplete())
-		{
-		// 1. app wasn't found, but an app scan is currently in progress,
+		// 1. App wasn't found, but an app scan is currently in progress,
 		// so try to find and add the specific app we're looking for to the list
 		
 		// 2. On language change event, current app scan could not yet update the found app, 
 		// so try to update the specific app we're looking for, in the list.
-		CApaAppData* app = NULL;
-		if(aAppUid!=KNullUid)
+		if(aAppUid != KNullUid)
 			{
-			TRAPD(ret, app = FindSpecificAppL(aAppUid));
-			if (ret == KErrNone && app)
+			CApaAppData* app = NULL;
+			TRAPD(err, app = FindSpecificAppL(aAppUid));
+			if (!err && app)
 				{
 				// app has been found and added to the app list
 				aApp = app;
 				aEntry = aApp->AppEntry();
-				found = ETrue;
 				}
  			}
  		}
-	return found;
+
+	return (aApp != NULL);
 	}
 
 CApaAppData* CApaAppListServSession::FindSpecificAppL(TUid aAppUid)
 	{
 	//Scans the drives and folder lists for the specific app
 	CApaAppRegFinder* regFinder = CApaAppRegFinder::NewLC(iFs);
-	CApaAppData* app = iServ.AppList().FindAndAddSpecificAppL(regFinder, aAppUid);
+	CApaAppData* app = iAppList.FindAndAddSpecificAppL(regFinder, aAppUid);
 	CleanupStack::PopAndDestroy(regFinder);
 	return app;
 	}
@@ -1817,92 +1752,59 @@
 void CApaAppListServSession::GetAppInfoL(const RMessage2& aMessage)
 	{
 	// get UID of required app
-	const TUid uid=TUid::Uid(aMessage.Int0());
-	TApaAppInfo* info=new(ELeave) TApaAppInfo; // on heap to avoid running out of stack
+	const TUid uid = TUid::Uid(aMessage.Int0());
+	TApaAppInfo* info = new(ELeave) TApaAppInfo; // on heap to avoid running out of stack
 	CleanupStack::PushL(info);
 	GetAppInfoL(uid, *info);
 	TPckgC<TApaAppInfo> infoPk(*info);	
-	aMessage.WriteL(1,infoPk);
+	aMessage.WriteL(1, infoPk);
 	CleanupStack::PopAndDestroy(info);
 	}
 
 void CApaAppListServSession::GetAppCapabilityL(const RMessage2& aMessage)
 	{	  								  
-	const TUid uid=TUid::Uid(aMessage.Int1());
-	CApaAppData* app=NULL;
-	TApaAppEntry entry;
-	if (!FindAppInList(app,entry,uid))
-		{
-		User::Leave(KErrNotFound);
-		}
-	TInt targetLen=aMessage.GetDesMaxLength(0);
-	HBufC8* buf=HBufC8::NewLC(User::LeaveIfError(targetLen));
-	TPtr8 ptr=buf->Des();
-	app->Capability(ptr);
+	const TUid uid = TUid::Uid(aMessage.Int1());
+	const CApaAppData& app = FindAppInListL(uid);
+
+	TInt targetLen = aMessage.GetDesMaxLength(0);
+	HBufC8* buf = HBufC8::NewLC(User::LeaveIfError(targetLen));
+	TPtr8 ptr = buf->Des();
+	app.Capability(ptr);
 	ptr.SetLength(targetLen);
-	aMessage.WriteL(0,*buf);
+	aMessage.WriteL(0, *buf);
 	CleanupStack::PopAndDestroy(buf); 
 	}
 
 void CApaAppListServSession::GetDefaultScreenNumberL(const RMessage2& aMessage)
 	{
 	const TUid uid=TUid::Uid(aMessage.Int0());
-	CApaAppData* app=NULL;
-	TApaAppEntry entry;
-	if (!FindAppInList(app,entry,uid))
-		{
-		User::Leave(KErrNotFound);
-		}
-	aMessage.Complete(app->DefaultScreenNumber());
+	const CApaAppData& app = FindAppInListL(uid);
+
+	aMessage.Complete(app.DefaultScreenNumber());
 	}
 
-void CApaAppListServSession::StartAppL(const RMessage2& aMessage, TBool aReturnThreadId)
-	{
-	CApaCommandLine* commandLine=CApaCommandLine::NewLC();
-	commandLine->ConstructCmdLineFromMessageL(aMessage);
-
-	CApaFileRecognizerType* type=NULL;
-	TRAP_IGNORE(type=FileRecognizer()->RecognizeFileL(commandLine->ExecutableName()));
-	if (type==NULL)
-		{
-		User::Leave(KErrNotFound);
-		}
-	CleanupStack::PushL(TCleanupItem(&NullifyAppCommandLinePointer,&iServ));
-	iServ.SetAppCmdLine(commandLine);
-	TPtrC fileName=commandLine->DocumentName();
-	TPtrC8 tailEnd=commandLine->TailEnd();
-	const TThreadId threadId(type->RunL(commandLine->Command(),(fileName.Length()?&fileName:NULL),(tailEnd.Length()?&tailEnd:NULL))); // pass in NULL for components that are not present
-	CleanupStack::PopAndDestroy(&iServ); // calls iServ.SetAppCmdLine(NULL);
-	CleanupStack::PopAndDestroy(commandLine);
-
-	if (aReturnThreadId)
-		{
-		aMessage.WriteL(CApaCommandLine::EIpcFirstFreeSlot,TPckgC<TThreadId>(threadId));
-		}
-	}
 
 void CApaAppListServSession::SetNotify(const RMessage2& aMessage)
 	{
 	if (!iNotifyMessage.IsNull())
-		{
 		aMessage.Panic(KApaPanicCli,ENotifierAlreadyPresent);
-		}
 	else
 		{
 		const TBool completeImmediatelyIfNoScanImpendingOrInProgress=aMessage.Int0();
 		if ((!completeImmediatelyIfNoScanImpendingOrInProgress) ||
-			iServ.AppFsMonitor().AnyNotificationImpending() ||
-			AppList().AppScanInProgress())
-			{
+			iAppArcSrv.AppFsMonitor().AnyNotificationImpending() ||
+			iAppList.AppScanInProgress())
 			iNotifyMessage=aMessage;
-			}
 		else
-			{
 			aMessage.Complete(KErrNone);
-			}
 		}
 	}
 
+void CApaAppArcServSession::NotifyClients(TInt aReason)
+	{
+	iAppListSession->NotifyClients(aReason);
+	}
+
 void CApaAppListServSession::CancelNotify()
 	{
 	NotifyClients(KErrCancel);
@@ -1911,9 +1813,8 @@
 void CApaAppListServSession::NotifyClients(TInt aReason)
 	{
 	if (!iNotifyMessage.IsNull())
-		{
 		iNotifyMessage.Complete(aReason);
-		}
+	
 	//Notify client for scan complete.
 	NotifyScanComplete();
 	}
@@ -1921,17 +1822,12 @@
 void CApaAppListServSession::AppInfoProvidedByRegistrationFileL(const RMessage2& aMessage)
 	{
 	// get UID of required app
-	const TUid uid=TUid::Uid(aMessage.Int0());
+	const TUid uid = TUid::Uid(aMessage.Int0());
 
 	// locate app in list
-	CApaAppData* app=NULL;
-	TApaAppEntry entry;
-	if (!FindAppInList(app,entry,uid))
-		{
-		User::Leave(KErrNotFound);
-		}
-
-	const TBool registrationFileUsed = app->RegistrationFileUsed();
+	const CApaAppData& app = FindAppInListL(uid);
+	
+	const TBool registrationFileUsed = app.RegistrationFileUsed();
 	TPckgC<TBool> pckg(registrationFileUsed);
 	aMessage.WriteL(1, pckg);
 	}
@@ -1942,24 +1838,15 @@
 	const TUid uid=TUid::Uid(aMessage.Int0());
 
 	// locate app in list
-	CApaAppData* app=NULL;
-	TApaAppEntry entry;
-	if (!FindAppInList(app,entry,uid))
-		{
-		User::Leave(KErrNotFound);
-		}
+	const CApaAppData& app = FindAppInListL(uid);
 
-	if (!app->RegistrationFileUsed())
-		{
+	if (!app.RegistrationFileUsed())
 		User::Leave(KErrNotSupported);
-		}
 	else
 		{
-		TPtrC iconFileName(app->IconFileName());
+		TPtrC iconFileName(app.IconFileName());
 		if (iconFileName.Length() == 0)
-			{
 			User::Leave(KErrNotFound);
-			}
 		else
 			{
 			TFileName fileName = iconFileName;
@@ -1979,34 +1866,26 @@
 	TPtrC viewIconFileName;
 
 	// locate app in list
-	CApaAppData* app=NULL;
-	TApaAppEntry entry;
-	if (!FindAppInList(app,entry,uid))
-		{
-		User::Leave(KErrNotFound);
-		}
+	const CApaAppData& app = FindAppInListL(uid);
 
-	if (!app->RegistrationFileUsed())
-		{
+	if (!app.RegistrationFileUsed())
 		User::Leave(KErrNotSupported);
-		}
 	else
 		{
-		const CArrayPtr<CApaAppViewData>& viewDataArray=*app->Views();
-		const TInt count=viewDataArray.Count();
+		const CArrayPtr<CApaAppViewData>& viewDataArray = *app.Views();
+		const TInt count = viewDataArray.Count();
 		for (TInt ii=0; ii<count; ii++)
 			{
-			const CApaAppViewData& appViewData=*viewDataArray[ii];
-			if (appViewData.Uid()==viewUid)
+			const CApaAppViewData& appViewData = *viewDataArray[ii];
+			if (appViewData.Uid() == viewUid)
 				{
 				viewIconFileName.Set(appViewData.IconFileName());
 				break;
 				}
 			}
+
 		if (viewIconFileName.Length() == 0)
-			{
 			User::Leave(KErrNotFound);
-			}
 		else
 			{
 			TFileName fileName = viewIconFileName;
@@ -2016,7 +1895,7 @@
 		}
 	}
 
-void CApaAppListServSession::GetAppServicesL(const RMessage2& aMessage)
+void CApaAppArcServSession::GetAppServicesL(const RMessage2& aMessage)
 	{
 	const TInt initialBufSize = aMessage.Int2();
 	if (initialBufSize)
@@ -2025,10 +1904,7 @@
 		iBuffer = NULL;
 		iBuffer = GetServiceBufferL(aMessage);
 		if (iBuffer->Size() > initialBufSize)
-			{
-			// default buffer provided by client is too small, ask client to provide buffer of correct size
-			User::Leave(iBuffer->Ptr(0).Size());
-			}
+			User::Leave(iBuffer->Ptr(0).Size());	// default buffer provided by client is too small, ask client to provide buffer of correct size
 		}
 	__ASSERT_ALWAYS(iBuffer, aMessage.Panic(KApaPanicCli,EClientBadRequest));
 	aMessage.WriteL(3, iBuffer->Ptr(0));
@@ -2036,45 +1912,41 @@
 	iBuffer = NULL;
 	}
 
-CBufBase* CApaAppListServSession::GetServiceBufferL(const RMessage2& aMessage) const
+CBufBase* CApaAppArcServSession::GetServiceBufferL(const RMessage2& aMessage) const
 	{
 	CBufBase* buffer = NULL;
 	const TUid uid = TUid::Uid(aMessage.Int0());
 	switch (aMessage.Function())
 		{
 	case EAppListServGetAppServices:
-		buffer = AppList().ServiceArrayBufferL(uid);
+		buffer = iAppListSession->AppList().ServiceArrayBufferL(uid);
 		break;
 	case EAppListServGetServiceImplementations:
-		buffer = AppList().ServiceImplArrayBufferL(uid);
+		buffer = iAppListSession->AppList().ServiceImplArrayBufferL(uid);
 		break;
 	case EAppListServGetServiceImplementationsDataType:
 		{
 		TDataType dataType;
 		TPckg<TDataType> dataType_asDescriptor(dataType);
 		aMessage.ReadL(1,dataType_asDescriptor);
-		buffer = AppList().ServiceImplArrayBufferL(uid, dataType);
+		buffer = iAppListSession->AppList().ServiceImplArrayBufferL(uid, dataType);
 		}
 		break;
 	case EAppListServGetAppServiceUids:
-		buffer = AppList().ServiceUidBufferL(uid);
+		buffer = iAppListSession->AppList().ServiceUidBufferL(uid);
 		break;
 	case EAppListServGetAppServiceOpaqueData:
-		buffer = AppList().ServiceOpaqueDataBufferL(uid, TUid::Uid(aMessage.Int1()));
+		buffer = iAppListSession->AppList().ServiceOpaqueDataBufferL(uid, TUid::Uid(aMessage.Int1()));
 		break;
 	default:
 		aMessage.Panic(KApaPanicCli,EClientBadRequest);
 		User::Leave(KErrNotSupported);
 		break;
 		}
+
 	return buffer;
 	}
 
-void CApaAppListServSession::NullifyAppCommandLinePointer(TAny* aServer)
-	{
-	static_cast<CApaAppListServer*>(aServer)->SetAppCmdLine(NULL);
-	}
-
 CApaAppListServSession::CApaAppInfo::CApaAppInfo()
 	:iUid(KNullUid), iCaption(NULL), iShortCaption(NULL), iFullName(NULL)
 	{
@@ -2116,45 +1988,38 @@
 void CApaAppListServSession::RegisterListPopulationCompleteObserver(const RMessage2& aMessage)
 	{
 	if (!iCompletionOfListPopulationObserverMsg.IsNull())
-		{
 		aMessage.Panic(KApaPanicCli,EObserverAlreadyPresent);
-		}
 	else
 		{
-		if(AppList().IsFirstScanComplete())
-			{
+		if(iAppList.IsFirstScanComplete())
 			aMessage.Complete(KErrNone);
-			}
 		else
-			{
 			iCompletionOfListPopulationObserverMsg=aMessage;
-			}
 		}
 	}
 
+void CApaAppArcServSession::NotifyClientForCompletionOfListPopulation()
+	{
+	iAppListSession->NotifyClientForCompletionOfListPopulation();
+	}
+
 void CApaAppListServSession::NotifyClientForCompletionOfListPopulation()
 	{
 	if (!iCompletionOfListPopulationObserverMsg.IsNull())
-		{
 		iCompletionOfListPopulationObserverMsg.Complete(KErrNone);
-		}
 	} //lint !e1762 Suppress member function could be made const
 
 
 void CApaAppListServSession::CancelListPopulationCompleteObserver()
 	{
 	if (!iCompletionOfListPopulationObserverMsg.IsNull())
-		{
 		iCompletionOfListPopulationObserverMsg.Complete(KErrCancel);
-		}
 	} //lint !e1762 Suppress member function could be made const
 	
-void CApaAppListServSession::NotifyClientOfDataMappingChange()
+void CApaAppArcServSession::NotifyClientOfDataMappingChange()
 	{
 	if (!iMessage_NotifyOnDataMappingChange.IsNull())
-		{
 		iMessage_NotifyOnDataMappingChange.Complete(KErrNone);
-		}
 	} //lint !e1762 Suppress member function could be made const
 
 void CApaAppListServSession::MatchesSecurityPolicyL(const RMessage2& aMessage)
@@ -2179,14 +2044,11 @@
 			process.Close();
 			}
 		else
-			{
 			aMessage.Complete(result);
-			}
 		}
 	else
-		{
 		aMessage.Complete(KErrNotFound);
-		}
+
 	CleanupStack::PopAndDestroy(appInfo);
 	}
 	
@@ -2196,36 +2058,32 @@
 	CApaAppData* app=NULL;
 	TApaAppEntry entry;
 	if (!FindAppInList(app,entry,uid))
-		{
 		User::Leave(KErrNotFound);
-		}
 
-	TInt length=aMessage.GetDesLength(1);
+	const TInt length = aMessage.GetDesLength(1);
 	if(length < 0)
-		{
 		User::Leave(length);
-		}
 
-	HBufC* const shortCaption=HBufC::NewLC(length);
+	HBufC* const shortCaption = HBufC::NewLC(length);
 	TPtr captionPtr(shortCaption->Des());
 	aMessage.ReadL(1, captionPtr);
 
-	TLanguage appLanguage=TLanguage(aMessage.Int2());
-	CCustomAppInfoData* customAppInfo=CCustomAppInfoData::NewL(uid, appLanguage, *shortCaption);
-	CleanupStack::PushL(customAppInfo);
-	iServ.AddCustomAppInfoInListL(customAppInfo);
-	CleanupStack::Pop(customAppInfo);
+	TLanguage appLanguage = TLanguage(aMessage.Int2());
+	iAppList.AddCustomAppInfoInListL(uid, appLanguage, *shortCaption);
 	if(app->ApplicationLanguage() == appLanguage)
-		{
 		app->SetShortCaptionL(*shortCaption);
-		}
 	else if(appLanguage==ELangNone)
-		{
-		iServ.UpdateAppListByShortCaptionL(); 
-		}
+		iAppList.UpdateAppListByShortCaptionL(); 
+
 	CleanupStack::PopAndDestroy(shortCaption);
 	}
 
+
+void CApaAppArcServSession::NotifyScanComplete()
+	{
+	iAppListSession->NotifyScanComplete();
+	}
+
 void CApaAppListServSession::NotifyScanComplete()
 	{
 	//See if the session is intrested in scan complete notification.
@@ -2289,3 +2147,4 @@
 	{
 	aWriteStream << iArray[aIndex];
 	}
+
--- a/localisation/apparchitecture/apserv/APSSES.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSSES.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,63 +11,53 @@
 // Contributors:
 //
 // Description:
+// apsses.h
 //
 
-#if !defined(__APSSES_H__)
+#ifndef __APSSES_H__
 #define __APSSES_H__
 
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-#if !defined(__APSSERV_H__)
-#include <APSSERV.H>
-#endif
-#if !defined(__F32FILE_H__)
+#include "apsserv.h"
 #include <f32file.h>
-#endif
-#if !defined(__APAID_H__)
 #include <apaid.h>
-#endif
-#if !defined(__APSCLSV_H__)
 #include "APSCLSV.H"
-#endif
-
 #include "APGAPLST.H"
 #include "APSRECUTIL.H"
 
-// classes defined
-class CApaAppListServSession;
-//
 // classes referenced
 class CApaAppList;
 class CApaAppData;
-class CApaFileRecognizer;
-class CApaScanningDataRecognizer;
 class TDataType;
-class CTypeStoreManager;
 class CApsNonNativeApplicationsManager;
-//
 class MArrayItemWriter;
-
 class CFileRecognitionUtility;
 
-class CApaAppListServSession : public CSession2
+class CApaAppListServSession : public CBase
 	{
 public:
-	// construct/destruct
-	static CApaAppListServSession* NewL(CApaAppListServer& aServer, RFs& aFs);
+	static CApaAppListServSession* NewL(RFs& aFs, CApaAppArcServer& aAppArcSrv, CApaAppList& aAppList);
 	~CApaAppListServSession();
-	//service request
-	virtual void ServiceL(const RMessage2 &aMessage);
+
+	CApaAppList& AppList();
+
+	void NotifyScanComplete();
+	void SetNotify(const RMessage2& aMessage);
+	void CancelNotify();
 	void NotifyClients(TInt aReason);
+	
 	void NotifyClientForCompletionOfListPopulation();
-	void NotifyClientOfDataMappingChange();
-	void NotifyScanComplete();
-private:
-	CApaAppListServSession(CApaAppListServer& aServer, RFs& aFs);
-	void ConstructL();
-	void NotifyOnDataMappingChange(const RMessage2& aMessage);
-	void CancelNotifyOnDataMappingChange();
+	void CancelListPopulationCompleteObserver();
+public:
+	CApaAppData& FindAppInListL(TUid aUid);
+	const CApaAppData& FindAppInListL(TUid aUid) const { return const_cast<CApaAppListServSession*>(this)->FindAppInListL(aUid); }
+	TBool FindAppInList(CApaAppData*& aApp, TApaAppEntry& aEntry, TUid aAppUid);
+	TBool FindAppInList(const CApaAppData*& aApp, TApaAppEntry& aEntry, TUid aAppUid) const 
+		{ return const_cast<CApaAppListServSession*>(this)->FindAppInList(const_cast<CApaAppData*&>(aApp), aEntry, aAppUid); }	
+	TUid AppUidFromFullFileNameL(const TDesC& aFullFileName) const;
+	CApaAppData* FindSpecificAppL(TUid aAppUid);
+public:
+	void DoServiceL(const RMessage2& aMessage);
 private:
 	enum TAppListType {
 		ENoList,
@@ -75,15 +65,15 @@
 		EListCapabilityAttrFilteredApps,
 		EListServerApps
 		};
-	enum TAppListDocumentStart {
-		EStart,
-		EStartByDataType,
-		EStartByUid,
-		ECreateByUid
-		};
 private:
-	class CApaAppInfo;
-private:
+	CApaAppListServSession(RFs& aFs, CApaAppArcServer& aAppArcSrv, CApaAppList& aAppList);
+	void ConstructL();
+private:	
+	void GetAppTypeL(const RMessage2& aMessage);
+	void ForceRegistrationL(const RMessage2& aMessage);	
+	void RegisterListPopulationCompleteObserver(const RMessage2& aMessage);
+	void MatchesSecurityPolicyL(const RMessage2& aMessage);
+	
 	void AppCount(const RMessage2& aMessage) const;
 	void EmbedCount(const RMessage2& aMessage) const;
 	void GetNextAppL(const RMessage2& aMessage);
@@ -92,18 +82,105 @@
 	void GetAppInfoL(TUid aUid, TApaAppInfo& aInfo);
 	void GetAppCapabilityL(const RMessage2& aMessage);
 	void GetDefaultScreenNumberL(const RMessage2& aMessage);
-	void StartAppL(const RMessage2& aMessage, TBool aReturnThreadId);
-	//
+	
+	void IconForAppL(const RMessage2& aMessage);
+	void IconForAppBySizeL(const RMessage2& aMessage);
+	void AppIconSizesL(const RMessage2& aMessage);
+	void IconFileHandleForAppL(const RMessage2& aMessage);
+	void AppViewsL(const RMessage2& aMessage);
+	void IconForViewBySizeL(const RMessage2& aMessage);
+	void AppFileOwnershipInfoL(const RMessage2& aMessage);
+
+	void NumberOfOwnDefinedIconsL(const RMessage2& aMessage);
+
+	void AppInfoProvidedByRegistrationFileL(const RMessage2& aMessage);
+	void IconFileNameL(const RMessage2& aMessage);
+	void ViewIconFileNameL(const RMessage2& aMessage);
+	
+	void ApplicationLanguageL(const RMessage2& aMessage);
+	void SetAppShortCaptionL(const RMessage2& aMessage);
+private:		
+	static TInt NextDriveToScan(TInt aCurrentDrive);	
+	static TBool AppIsControlPanelItem(const CApaAppData& aAppData);
+	TBool AppMatchesEmbeddabilityFilter(const CApaAppData& aAppData, const TApaEmbeddabilityFilter& aEmbeddabilityFilter) const;
+	TBool AppMatchesCapabilityAttrFilter(const CApaAppData& aAppData) const;
+	void SendArrayL(const MArrayItemWriter& aArrayItemWriter,const RMessage2& aMessage) const;	
+private:
+	class CApaAppInfo;
+private:
+	enum TFlags
+		{
+		ENotifyPresent=0x01,
+		EAppListPopulationPending=0x02
+		};
+private:
+	RFs& iFs;
+	TInt iFlags;
+	CApaAppArcServer& iAppArcSrv;
+	CApaAppList& iAppList;
+	RMessage2 iNotifyMessage;
+	RMessage2 iNotifyOnScanCompleteMsg;
+	CApsNonNativeApplicationsManager* iNonNativeApplicationsManager;
+	RMessage2 iCompletionOfListPopulationObserverMsg;
+		
+	TAppListType iAppListType;
+	TInt iAppListScreenMode;
+	TApaEmbeddabilityFilter iEmbeddabilityFilter;
+	TUint iCapabilityAttrFilterMask; // contains bit flags from TCapabilityAttribute
+	TUint iCapabilityAttrFilterValue; // contains bit flags from TCapabilityAttribute
+	TUid iServiceUid;
+	RPointerArray<CApaAppInfo> iApaAppInfoArray;	//contains the most recent "snapshot" of the applist taken by GetNextAppL.
+	};
+	
+	
+class CApaAppArcServSession : public CSession2
+	{
+public:
+	// construct/destruct
+	static CApaAppArcServSession* NewL(CApaAppArcServer& aServer, RFs& aFs);
+	~CApaAppArcServSession();
+	//service request
+	virtual void ServiceL(const RMessage2 &aMessage);
+
+	void NotifyClientOfDataMappingChange();
+	void NotifyClients(TInt aReason);
+	void NotifyScanComplete();
+	void NotifyClientForCompletionOfListPopulation();
+private:
+	CApaAppArcServSession(CApaAppArcServer& aServer, RFs& aFs);
+	void ConstructL();
+	void NotifyOnDataMappingChange(const RMessage2& aMessage);
+	void CancelNotifyOnDataMappingChange();
+private:
 	// Data recognition stuff
 	void RecognizeDataL(const RMessage2& aMessage);
 	void RecognizeDataPassedByFileHandleL(const RMessage2& aMessage);
 	void RecognizeSpecificDataL(const RMessage2& aMessage);
 	void RecognizeSpecificDataPassedByFileHandleL(const RMessage2& aMessage);
-	static void DoRecognizeUnpackLC(HBufC*& aName, HBufC8*& aBuffer, const RMessage2& aMessage);
-	//
+	static TPtrC8 DoRecognizeUnpackLC(HBufC*& aName, RChunk& aLocalChunk, const RMessage2& aMessage);
+
 	void AppForDataTypeL(const RMessage2& aMessage);
-	void StartDocumentL(const RMessage2& aMessage,TAppListDocumentStart aStartType);
-	TThreadId StartDocumentL(const TDesC& aFileName, TUid aUid, TApaCommand aCommand);
+	TUid AppForDataTypeL(const TDataType& aDataType, const TUid* aServiceUid);
+	void AppForDocumentL(const RMessage2& aMessage, const TUid* aServiceUid);
+
+	void RecognizeFilesL(const RMessage2& aMessage);
+	void TransferRecognitionResultL(const RMessage2& aMessage);
+	void RecognizeFilesAsyncL(const RMessage2& aMessage);
+	void AquirePermissionToLaunchAppL(const RMessage2& aMessage) const;
+	void CancelRecognizeFiles();
+
+	void InsertDataMappingL(const RMessage2& aMessage);
+	void DeleteDataMappingL(const RMessage2& aMessage);
+	void GetAppByDataTypeL(const RMessage2& aMessage) const;
+
+	void GetAppServicesL(const RMessage2& aMessage);
+	CBufBase* GetServiceBufferL(const RMessage2& aMessage) const;
+	void AppForDataTypeAndServiceL(const RMessage2& aMessage);
+	void AppForDocumentPassedByFileHandleL(const RMessage2& aMessage, const TUid* aServiceUid);
+
+	void RegisterNonNativeApplicationTypeL(const RMessage2& aMessage);
+	void DeregisterNonNativeApplicationTypeL(const RMessage2& aMessage);
+
 	void GetExecutableNameGivenDocumentL(const RMessage2& aMessage);
 	void GetExecutableNameGivenDocumentPassedByFileHandleL(const RMessage2& aMessage);
 	void GetExecutableNameGivenDataTypeL(const RMessage2& aMessage);
@@ -112,52 +189,6 @@
 	void GetNativeExecutableNameIfNonNativeL(const RMessage2& aMessage);
 	void WriteNativeExecutableIfNonNativeAndPrepareForClientRetrievalOfOpaqueDataL(const RMessage2& aMessage, TInt aMessageSlotForNativeExecutable, const CApaAppData& aAppData);
 	void GetOpaqueDataL(const RMessage2& aMessage);
-	TUid AppForDataTypeL(const TDataType& aDataType, const TUid* aServiceUid);
-	void AppForDocumentL(const RMessage2& aMessage, const TUid* aServiceUid);
-	//
-	void IconForAppL(const RMessage2& aMessage);
-	//
-	void IconForAppBySizeL(const RMessage2& aMessage);
-	void AppIconSizesL(const RMessage2& aMessage);
-	void IconFileHandleForAppL(const RMessage2& aMessage);
-	//
-	void AppViewsL(const RMessage2& aMessage);
-	void IconForViewBySizeL(const RMessage2& aMessage);
-	void AppFileOwnershipInfoL(const RMessage2& aMessage);
-	//
-	void NumberOfOwnDefinedIconsL(const RMessage2& aMessage);
-	//
-	void AppInfoProvidedByRegistrationFileL(const RMessage2& aMessage);
-	void IconFileNameL(const RMessage2& aMessage);
-	void ViewIconFileNameL(const RMessage2& aMessage);
-	//
-	void RecognizeFilesL(const RMessage2& aMessage);
-	void TransferRecognitionResultL(const RMessage2& aMessage);
-	void RecognizeFilesAsyncL(const RMessage2& aMessage);
-	void RuleBasedLaunchingL(const RMessage2& aMessage);
-	void CancelRecognizeFiles();
-	//
-	void InsertDataMappingL(const RMessage2& aMessage);
-	void DeleteDataMappingL(const RMessage2& aMessage);
-	void GetAppByDataTypeL(const RMessage2& aMessage) const;
-	//
-	void GetAppServicesL(const RMessage2& aMessage);
-	CBufBase* GetServiceBufferL(const RMessage2& aMessage) const;
-	void AppForDataTypeAndServiceL(const RMessage2& aMessage);
-	void AppForDocumentPassedByFileHandleL(const RMessage2& aMessage, const TUid* aServiceUid);
-
-	void RegisterNonNativeApplicationTypeL(const RMessage2& aMessage);
-	void DeregisterNonNativeApplicationTypeL(const RMessage2& aMessage);
-
-	void GetAppTypeL(const RMessage2& aMessage);
-	void ForceRegistrationL(const RMessage2& aMessage);
-	inline const CApaAppList& AppList() const;
-	inline CApaFileRecognizer* FileRecognizer() const;
-	CApaAppData& FindAppInListL(TUid aUid);
-	TBool FindAppInList(CApaAppData*& aApp,TApaAppEntry& aEntry,TUid aAppUid);
-	TBool AppMatchesEmbeddabilityFilter(const CApaAppData& aAppData, const TApaEmbeddabilityFilter& aEmbeddabilityFilter) const;
-	TBool AppMatchesCapabilityAttrFilter(const CApaAppData& aAppData) const;
-	static TBool AppIsControlPanelItem(const CApaAppData& aAppData);
 
 	void GetConfidenceL(const RMessage2& aMessage);
 	void SetConfidence(const RMessage2& aMessage);
@@ -165,63 +196,20 @@
 	void SetBufSize(const RMessage2& aMessage);
 	void GetDataTypesCountL(const RMessage2& aMessage);
 	void GetDataTypesL(const RMessage2& aMessage);
-	void SetNotify(const RMessage2& aMessage);
-	void CancelNotify();
-	//
-	void SendArrayL(const MArrayItemWriter& aArrayItemWriter,const RMessage2& aMessage) const;
-	//
-	void ApplicationLanguageL(const RMessage2& aMessage);
-	void RegisterListPopulationCompleteObserver(const RMessage2& aMessage);
-	void CancelListPopulationCompleteObserver();
-	void MatchesSecurityPolicyL(const RMessage2& aMessage);
-	//
-	void SetAppShortCaptionL(const RMessage2& aMessage);
-
-	static void NullifyAppCommandLinePointer(TAny* aServer);
+	
 	TInt PreferredBufSize() const;
-	CApaAppData* FindSpecificAppL(TUid aAppUid);
-	TUid AppUidFromFullFileNameL(const TDesC& aFullFileName) const;
-	static TInt NextDriveToScan(TInt aCurrentDrive);
-	
 private:
-	enum
-		{
-		ENotifyPresent=0x01,
-		EAppListPopulationPending=0x02
-		};
-
-private:
-	CApaAppListServer& iServ;
-	TInt iFlags;
+	CApaAppArcServer& iServ;
+	CApaAppListServSession* iAppListSession;
 	RFs& iFs;
 	TInt iMaxBufSize;
 	CBufBase* iBuffer;
-	RMessage2 iNotifyMessage;
-	RMessage2 iNotifyOnScanCompleteMsg;
-	RPointerArray<CApaAppInfo> iApaAppInfoArray;	//contains the most recent "snapshot" of the applist taken by GetNextAppL.
-	TAppListType iAppListType;
-	TInt iAppListScreenMode;
-	TApaEmbeddabilityFilter iEmbeddabilityFilter;
-	TUint iCapabilityAttrFilterMask; // contains bit flags from TCapabilityAttribute
-	TUint iCapabilityAttrFilterValue; // contains bit flags from TCapabilityAttribute
-	TUid iServiceUid;
-	RMessage2 iCompletionOfListPopulationObserverMsg;
 	CDirectoryRecognitionResult* iRecognitionResult;
 	CFileRecognitionUtility* iFileRecognitionUtility;
 	TBool iAsyncRecognitionActive;
 	HBufC8* iOpaqueData_pendingDispatchToClient;
 	RMessagePtr2 iMessage_NotifyOnDataMappingChange;
-	CApsNonNativeApplicationsManager* iNonNativeApplicationsManager;
 	};
 
-//
-// inlines
-//
 
-inline const CApaAppList& CApaAppListServSession::AppList() const
-	{ return ((CApaAppListServer*)Server())->AppList(); } 
-
-inline CApaFileRecognizer* CApaAppListServSession::FileRecognizer() const
-	{ return ((CApaAppListServer*)Server())->FileRecognizer(); }
-
-#endif
+#endif	// __APSSES_H__
--- a/localisation/apparchitecture/apserv/APSSTART.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSSTART.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,9 +13,15 @@
 // Description:
 // The main startup of the AppArc server
 // 
+// apsstart.cpp
 //
-
-#include <apsserv.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#include "apaidpartner.h"
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "apsserv.h"
 #include <fbs.h>
 
 #include "APASVST.H"
@@ -52,46 +58,34 @@
 	RFbsSession::Disconnect();
 	}
 
-static void RunServerL(MApaAppStarter* aAppStarter)
+static void RunServerL()
 //
 // Perform all server initialisation, in particular creation of the
 // scheduler and server and then run the scheduler
 //
 	{
-	MApaAppStarter* appStarter = aAppStarter;
 	// create and install the active scheduler we need
 	CSvActiveScheduler::NewLC();
+
 	// create a RFbsSession
 	User::LeaveIfError(RFbsSession::Connect());
 	CleanupStack::PushL(TCleanupItem(CleanupRFbsSession, NULL));
-	//
+
 	// create the server (leave it on the cleanup stack)
-	CApaAppListServer* appListServer = CApaAppListServer::NewL(appStarter);
-	CleanupStack::PushL(appListServer);
-	//
+	CApaAppArcServer* appArcServer = CApaAppArcServer::NewL();
+	CleanupStack::PushL(appArcServer);
+
 	// Initialisation complete, now signal the client
-#ifdef APA_SERVER_IN_THREAD
-	RThread::Rendezvous(KErrNone);
-#else
-	if(aAppStarter)
-		{
-		// Launching in a thread within an existing process.
-		RThread::Rendezvous(KErrNone);
-		}
-	else
-		{
-		RProcess::Rendezvous(KErrNone);
-		}
-#endif
-	//
+	RProcess::Rendezvous(KErrNone);
+
 	// Ready to run
 	CActiveScheduler::Start();
-	//
+
 	// Cleanup the server, RFbsSession and scheduler
 	CleanupStack::PopAndDestroy(3);
 	}
 
-static TInt RunServer(MApaAppStarter* aAppStarter)
+static TInt RunServer()
 //
 // Main entry-point for the server thread
 //
@@ -107,7 +101,7 @@
 		r=KErrNoMemory;
 		if (cleanup)
 			{
-			TRAP(r,RunServerL(aAppStarter));
+			TRAP(r,RunServerL());
 			REComSession::FinalClose();
 			delete cleanup;
 			}
@@ -121,12 +115,12 @@
 ApaServThreadStart
 
 @internalTechnology
+@released
 */
-EXPORT_C TInt ApaServThreadStart(TAny* aAppStarter)
+EXPORT_C TInt ApaServThreadStart(TAny* /*aUnused*/)
 //
 // thread entry-point function.
 //
 	{
-	MApaAppStarter* appStarter = reinterpret_cast<MApaAppStarter*>(aAppStarter);
-	return RunServer(appStarter);
+	return RunServer();
 	}
--- a/localisation/apparchitecture/apserv/APSSTD.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSSTD.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -23,3 +23,5 @@
 	_LIT(KApaServPan,"APASERV");
 	User::Panic(KApaServPan,aPanic);
 	}
+
+
--- a/localisation/apparchitecture/apserv/APSSTD.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/APSSTD.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/apserv/apsiconcaptionoverride.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,570 +0,0 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-
-/**
- @internalComponent
-*/
-
-#include "apsiconcaptionoverride.h"
-#include <centralrepository.h>
-#include <apadef.h>
-
-//constants defined
-const TUid KUidIconCaptionRepository = { 0x1028583d }; // Central Repository UID
-const TUint32 KAppBits = 0xFF000000; // App mask bits
-const TUint32 KFieldBits = 0x00FF0000; // Field mask bits
-const TUint32 KUidKey = 0x00FFFFFF; // UID mask bits
-
-// Field id values for short caption, caption, icon count, icon file name
-// of an application.
-enum TFieldId
-	{
-	EOverrideFieldShortCaption,
-	EOverrideFieldCaption,
-	EOverrideFieldNumIcons,
-	EOverrideFieldIconFileName
-	};
-
-/** 
-Stores the Central Repository configuration details into a Hash table.
-Two Hash tables defined to store integer and string type data separately.
-*/
-NONSHARABLE_CLASS(CApaIconCaptionOverrideStore) : public CBase
-	{
-public:
-	CApaIconCaptionOverrideStore();
-	~CApaIconCaptionOverrideStore();
-	
-	const TDesC* String(TUint32 aKey) const;
-	void SetStringL(TUint32 aKey, const TDesC& aString);
-	const TInt* Int(TUint32 aKey) const;
-	void SetIntL(TUint32 aKey, TInt aInt);
-	
-private:
-	typedef RHashMap<TUint32, TInt> RIntMap;
-	RIntMap iIntMap;
-	typedef RHashMap<TUint32, HBufC*> RStringMap;
-	RStringMap iStringMap;
-	};
-
-
-
-// Constructor
-CApaIconCaptionOverrideStore::CApaIconCaptionOverrideStore()
-	{
-	}
-
-// Destructor
-CApaIconCaptionOverrideStore::~CApaIconCaptionOverrideStore()
-	{
-	RStringMap::TIter pString(iStringMap);
-	for (HBufC* const* str = pString.NextValue();
-		 str;
-		 str = pString.NextValue())
-		 delete *str;
-	iStringMap.Close();
-	iIntMap.Close();
-	}
-
-/** 
-Looks up a specified key in the associative array and returns a pointer to the corresponding value.
-
-@param aKey The key object of type integer to look up.
-@return A pointer to the corresponding string value.  
-*/
-const TDesC* CApaIconCaptionOverrideStore::String(TUint32 aKey) const
-	{
-	HBufC* const * pStr = iStringMap.Find(aKey);
-	if (pStr)
-		return *pStr;
-	else
-		return NULL;
-	}
-
-/**
-Inserts the key-value pair into the array (string Hash table).
-
-@param aKey The key object of type integer to add to the array.
-@param aString The value object of type string to associate with aKey.
-*/
-void CApaIconCaptionOverrideStore::SetStringL(TUint32 aKey, const TDesC& aString)
-	{
-	HBufC* newStr = aString.AllocL();
-	HBufC* const * pStr = iStringMap.Find(aKey);
-	CleanupStack::PushL(newStr);
-	if (pStr)
-		{
-		delete *pStr;
-		}
-	iStringMap.InsertL(aKey, newStr);
-	CleanupStack::Pop(newStr);
-	}
-
-/**
-Looks up a specified key in the associative array and returns a pointer to the corresponding value.
-
-@param aKey The key object of type integer to look up
-@return A pointer to the corresponding integer value.
-*/
-const TInt* CApaIconCaptionOverrideStore::Int(TUint32 aKey) const
-	{
-	const TInt * pInt = iIntMap.Find(aKey);
-	return pInt;
-	}
-
-/**
-Inserts the key-value pair into the array (integer Hash table)
-
-@param aKey The key object of type integer to add to the array.
-@param aInt The value object of type integer to associate with aKey.
-*/
-void CApaIconCaptionOverrideStore::SetIntL(TUint32 aKey, TInt aInt)
-	{
-	iIntMap.InsertL(aKey, aInt);
-	}
-
-/**
-A utility class used to write information into a store (CApaIconCaptionOverrideStore).
-*/
-NONSHARABLE_CLASS(TApaIconCaptionOverrideWriter)
-	{
-public:
-	TApaIconCaptionOverrideWriter(CApaIconCaptionOverrideStore& aStore);
-
-	void LoadFieldFromCenRepL(CRepository* aRepository, TUint32 aFullKey);
-
-private:
-	CApaIconCaptionOverrideStore& iStore;
-	};
-
-
-TApaIconCaptionOverrideWriter::TApaIconCaptionOverrideWriter(CApaIconCaptionOverrideStore& aStore)
-: iStore(aStore)
-	{
-	}
-
-/**
-Reads the Central Repository integer, string settings and inserts the key-value pair into Store.
-
-Each setting is enumerated by a 32-bit key. The top 8 bits of the key is for app identification,
-the next 8 bits is for field (short caption (00), caption (01),total number of icons (02), 
-icon filename (03)) identification and next 16 bits for language identification.
-
-It is computed in the following way
-
-	00XXXXXX - App UID field
-	XX00XXXX - Short Caption field
-	XX01XXXX - Caption field
-	XX02XXXX - Icon count field
-	XX03XXXX - Icon Filename field
-	XXXX0000 - Language field
-
-First it performs a bitwise NOT operation on application mask key (KAppBits) and its value is bitwise
-AND with the 32 bit key of the field.
-
-It performs a bitwise AND with the field mask key (KFieldBits) and does a bitwise right shift to 16 bits
-to extract the field bit value from the 32 bit key.
-
-It reads each field's (short caption, caption, total number of icons, icon file name) value from the
-Central Repository and inserts into a Store (Hash table).
-
-@param aRepository The object provides access to Central Repository
-@param aFullKey The 32-bit field key
-*/
-void TApaIconCaptionOverrideWriter::LoadFieldFromCenRepL(CRepository* aRepository, TUint32 aFullKey)
-	{
-	TUint32 key = aFullKey & ~KAppBits;
-	TUint32 fieldId = (key & KFieldBits) >> 16;
-	switch (fieldId)
-		{
-		case EOverrideFieldShortCaption:
-			{
-			TApaAppCaption shortCaption;
-			if (aRepository->Get(aFullKey, shortCaption) == KErrNone)
-				iStore.SetStringL(key, shortCaption);
-			break;
-			}
-		case EOverrideFieldCaption:
-			{
-			TApaAppCaption caption;
-			if (aRepository->Get(aFullKey, caption) == KErrNone)
-				iStore.SetStringL(key, caption);
-			break;
-			}
-		case EOverrideFieldNumIcons:
-			int numIcons;
-			if (aRepository->Get(aFullKey, numIcons) == KErrNone)
-				iStore.SetIntL(key, numIcons);
-			break;
-		case EOverrideFieldIconFileName:
-			{
-			TFileName fileName;
-			if (aRepository->Get(aFullKey, fileName) == KErrNone)
-				iStore.SetStringL(key, fileName);
-			break;
-			}
-		default:
-			break;
-		}
-	}
-
-// Constructor
-TApaIconCaptionOverrideReader::TApaIconCaptionOverrideReader(const CApaIconCaptionOverrideStore& aStore, const RArray<TLanguage>& aLanguageDowngradePath)
-: iStore(aStore), iLanguageDowngradePath(aLanguageDowngradePath)
-	{
-	}
-
-/**
-Gets the short caption value of the corresponding setting from store.
-*/
-const TDesC* TApaIconCaptionOverrideReader::ShortCaption() const
-	{
-	return GetString(EOverrideFieldShortCaption);
-	}
-
-/**
-Gets the caption value of the corresponding setting from store.
-*/
-const TDesC* TApaIconCaptionOverrideReader::Caption() const
-	{
-	return GetString(EOverrideFieldCaption);
-	}
-
-/**
-Checks whether the number of icons are set.
-@return ETrue when the number of icons are set else returns EFalse.  
-*/
-TBool TApaIconCaptionOverrideReader::NumIconsSet() const
-	{
-	return GetInt(EOverrideFieldNumIcons) != NULL;
-	}
-
-/**
-Gets the total number of icons of the corresponding setting from store.
-*/
-TInt TApaIconCaptionOverrideReader::NumIcons() const
-	{
-	const TInt* pInt = GetInt(EOverrideFieldNumIcons);
-	if (pInt)
-		return *pInt;
-	else
-		return 0;
-	}
-
-/**
-Gets the icon file name of the corresponding setting from store.
-*/
-const TDesC* TApaIconCaptionOverrideReader::IconFileName() const
-	{
-	return GetString(EOverrideFieldIconFileName);
-	}
-
-/**
-Reads store and retrieves the corresponding string value of the passed field Id.
-
-Gets the configuration information with reference to the language downgrade path, with
-ELangNone as default language, in case there is no match is found.
-
-@param aFieldId Field Id values for short caption, caption, icon count, icon file name.
-@return A pointer to the corresponding string value.
-*/
-const TDesC* TApaIconCaptionOverrideReader::GetString(TUint32 aFieldId) const
-	{
-	TInt count = iLanguageDowngradePath.Count();
-	for (TInt ii=0; ii<count; ii++)
-		{
-		TLanguage language = iLanguageDowngradePath[ii];
-		TUint32 key = (aFieldId << 16) | language;
-		const TDesC* pString = iStore.String(key);
-		if (pString)
-			return pString;
-		}
-	// default fallback language is ELangNone
-	TUint32 key = (aFieldId << 16) | ELangNone;
-	const TDesC* pString = iStore.String(key);
-	if (pString)
-		return pString;
-	return NULL;
-	}
-
-/**
-Reads store and retrieves the corresponding integer value of the passed field Id.
-
-Gets the configuration information with reference to the language downgrade path, with
-ELangNone as default language, in case there is no match is found.
-
-@param aFieldId Field Id values for short caption, caption, icon count, icon file name.
-@return A pointer to the corresponding integer value.
-*/
-const TInt* TApaIconCaptionOverrideReader::GetInt(TUint32 aFieldId) const
-	{
-	TInt count = iLanguageDowngradePath.Count();
-	for (TInt ii=0; ii<count; ii++)
-		{
-		TLanguage language = iLanguageDowngradePath[ii];
-		TUint32 key = (aFieldId << 16) | language;
-		const TInt* pInt = iStore.Int(key);
-		if (pInt)
-			return pInt;
-		}
-	// default fallback language is ELangNone
-	TUint32 key = (aFieldId << 16) | ELangNone;
-	const TInt* pInt = iStore.Int(key);
-	if (pInt)
-		return pInt;
-	return NULL;
-	}
-
-// Constructor
-CApaIconCaptionOverridesForApp::CApaIconCaptionOverridesForApp()
-	{
-	}
-
-// Destructor
-CApaIconCaptionOverridesForApp::~CApaIconCaptionOverridesForApp()
-	{
-	delete iStore;
-	}
-
-CApaIconCaptionOverridesForApp* CApaIconCaptionOverridesForApp::NewL()
-	{
-	CApaIconCaptionOverridesForApp* self = new (ELeave) CApaIconCaptionOverridesForApp;
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(); // self
-	return self;
-	}
-
-/** 2nd phase constructor that creates an object to store the Central Repository configuration
-details (integer & string values) into separate Hash tables.
-*/
-void CApaIconCaptionOverridesForApp::ConstructL()
-	{
-	iStore = new(ELeave) CApaIconCaptionOverrideStore;
-	}
-
-/**
-Finds all the settings that exist and match the specification given by partial key (aAppKey) and
-application mask key (KAppBits) from the Central Repository.
-
-All the 32-bit field keys have been retrieved from the Central Repository and stored into an array.
-It performs a bitwise NOT operation on application mask key (KAppBits) and its value is bitwise AND
-with each of the value retrieved from the array. If the new value does not match with the UID mask key,
-it tries to read each field setting value and stores the information into a store (Hash tables).
-
-@param aRepository The object provides access to Central Repository.
-@param aAppKey partial key.
-*/
-void CApaIconCaptionOverridesForApp::LoadFromCenRepL(CRepository* aRepository, TUint32 aAppKey)
-	{
-	TApaIconCaptionOverrideWriter writer(*iStore);
-	RArray<TUint32> appKeys;
-	CleanupClosePushL(appKeys);
-	User::LeaveIfError(aRepository->FindL(aAppKey, KAppBits, appKeys));
-	TInt count = appKeys.Count();
-	for (TInt ii=0; ii<count; ii++)
-		{
-		TUint32 key = appKeys[ii];
-		if ((key & ~KAppBits) == KUidKey)
-			continue;
-		writer.LoadFieldFromCenRepL(aRepository, key);
-		}
-	CleanupStack::PopAndDestroy(&appKeys);	
-	}
-
-/**
-Creates an object to read the configuration information with reference to the language downgrade path,
-with ELangNone used as the default language, if no better match is found.
-*/
-TApaIconCaptionOverrideReader CApaIconCaptionOverridesForApp::Reader(const RArray<TLanguage>& aLanguageDowngradePath) const
-	{
-	TApaIconCaptionOverrideReader reader(*iStore, aLanguageDowngradePath);
-	return reader;
-	}
-
-// Constructor
-CApaIconCaptionOverrides::CApaIconCaptionOverrides()
-	{
-	}
-
-// Destructor
-CApaIconCaptionOverrides::~CApaIconCaptionOverrides()
-	{
-	DeleteOverrides();
-	}
-
-void CApaIconCaptionOverrides::LoadFromCenRepL()
-	{
-	CRepository* cenrep = CRepository::NewLC(KUidIconCaptionRepository);
-	LoadFromCenRepL(cenrep);
-	CleanupStack::PopAndDestroy(cenrep);
-	}
-
-/**
-Finds all the settings that exist and match the specification given by partial and mask keys, from the
-Central Repository. If the settings are found, it reads the values and stores icon, caption details
-into the store.
-*/
-void CApaIconCaptionOverrides::LoadFromCenRepL(CRepository* aRepository)
-	{
-	DeleteOverrides();
-
-	RArray<TUint32> appKeys;
-	CleanupClosePushL(appKeys);
-	aRepository->FindL(KUidKey, ~KAppBits, appKeys);	// ignore return. if no overrides found, array will be empty
-	TInt count = appKeys.Count();
-	for (TInt ii=0; ii<count; ii++)
-		{
-		TUint32 key = appKeys[ii];
-		TInt appUidVal;
-		User::LeaveIfError(aRepository->Get(key, appUidVal));
-		TUid appUid = { appUidVal };
-		CApaIconCaptionOverridesForApp* app = CApaIconCaptionOverridesForApp::NewL();
-		CleanupStack::PushL(app);
-		app->LoadFromCenRepL(aRepository, key);
-		SetOverrideForAppL(appUid, app);
-		CleanupStack::Pop(app);
-		}
-	CleanupStack::PopAndDestroy(&appKeys);
-	}
-
-/**
-Searches Hash table that keeps a map of app UIDs to configuration information for supplied application
-and returns a pointer to an object that keeps information of icon caption overrides for an application, if
-any suitable entry is found; otherwise NULL.
-*/
-CApaIconCaptionOverridesForApp* CApaIconCaptionOverrides::OverrideForApp(TUid aAppUid) const
-	{
-	CApaIconCaptionOverridesForApp* const * override = iMap.Find(aAppUid.iUid);
-	if (override)
-		return *override;
-	else
-		return NULL;
-	}
-
-/**
-Inserts key-value pair into an array (Hash table), if found, updates it.
-*/
-void CApaIconCaptionOverrides::SetOverrideForAppL(TUid aAppUid, CApaIconCaptionOverridesForApp* aOverrides)
-	{
-	//Searches the Hash table with the app UID, if it's found, it returns the corresponding entry;
-	CApaIconCaptionOverridesForApp* prev = OverrideForApp(aAppUid);
-	if (aOverrides)
-		{
-		iMap.InsertL(aAppUid.iUid, aOverrides);
-		}
-	else
-		{
-		iMap.Remove(aAppUid.iUid);
-		}
-	delete prev; // delete the found entry as InsertL() replaces it.
-	}
-
-/**
-Removes all the mapping done with app UIDs in Hash table for the icon caption overrides.
-*/
-void CApaIconCaptionOverrides::DeleteOverrides()
-	{
-	RAppOverrideMap::TIter pOverride(iMap);
-	for (CApaIconCaptionOverridesForApp* const* override = pOverride.NextValue();
-		 override;
-		 override = pOverride.NextValue())
-		 delete *override;
-	iMap.Close();
-	}
-
-
-CApaIconCaptionCenrepObserver::CApaIconCaptionCenrepObserver(CApaIconCaptionOverrides& aOverrides)
-: CActive(EPriorityStandard), iOverrides(aOverrides)
-	{
-	CActiveScheduler::Add(this);
-	}
-	
-// Creates a Central Repository observer
-CApaIconCaptionCenrepObserver* CApaIconCaptionCenrepObserver::NewL(CApaIconCaptionOverrides& aOverrides)
-	{
-	CApaIconCaptionCenrepObserver* self = new (ELeave) CApaIconCaptionCenrepObserver(aOverrides);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop();
-	return self;
-	}
-
-// Destructor
-CApaIconCaptionCenrepObserver::~CApaIconCaptionCenrepObserver()
-	{
-	Cancel();
-	delete iRepository;
-	}
-
-/** 2nd phase constructor that creates a Central Repository object to access the repository with the
-specified UID and starts notification.
-*/
-void CApaIconCaptionCenrepObserver::ConstructL()
-	{
-	TRAP_IGNORE(iRepository = CRepository::NewL(KUidIconCaptionRepository));
-	Start();
-	}
-
-/**
-Finds all the settings that exist and match the specification given by partial and mask keys, from the
-Central Repository, if it exists.
-*/
-void CApaIconCaptionCenrepObserver::LoadOverridesL()
-	{
-	if (iRepository)
-		iOverrides.LoadFromCenRepL(iRepository);
-	}
-
-/**
-Requests a notification on any change in the Central Repository. Only one notification can be
-received per call to NotifyRequest().
-*/
-void CApaIconCaptionCenrepObserver::Start()
-	{
-	if (iRepository)
-		{
-		iRepository->NotifyRequest(0, 0, iStatus);	// notify on all key changes
-		SetActive();
-		}
-	}
-
-/**
-Handles an active object's request completion event.
-*/
-void CApaIconCaptionCenrepObserver::RunL()
-	{
-	TInt err = iStatus.Int();
-	Start();
-	User::LeaveIfError(err);
-	LoadOverridesL();
-	}
-	
-/**
-Cancels a notification previously requested from NotifyRequest
-*/
-void CApaIconCaptionCenrepObserver::DoCancel()
-	{
-	iRepository->NotifyCancel(0, 0);
-	}
-	
-
-TInt CApaIconCaptionCenrepObserver::RunError(TInt /*aError*/)
-	{
-	//Return KErrNone if RunL leaves to avoid a E32User-CBase 47 panic.
-	return KErrNone;
-	}
--- a/localisation/apparchitecture/apserv/apsiconcaptionoverride.h	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-
-/**
- @internalComponent
-*/
-
-
-#ifndef APSICONCAPTIONOVERRIDE_H
-#define APSICONCAPTIONOVERRIDE_H
-
-#include <e32base.h>
-#include <e32hashtab.h>
-
-class CRepository;
-class CApaIconCaptionOverrideStore;
-
-
-/**
- * Read icon and caption details for an app according to the
- * language downgrade path, with ELangNone used as the default
- * language if no better match found.
-
- @see CApaIconCaptionOverrideStore
- */
-NONSHARABLE_CLASS(TApaIconCaptionOverrideReader)
-	{
-public:
-	TApaIconCaptionOverrideReader(const CApaIconCaptionOverrideStore& aStore, const RArray<TLanguage>& aLanguageDowngradePath);
-	
-	const TDesC* ShortCaption() const;
-	const TDesC* Caption() const;
-	TBool NumIconsSet() const;
-	TInt NumIcons() const;
-	const TDesC* IconFileName() const;
-
-private:
-	const TDesC* GetString(TUint32 aFieldId) const;
-	const TInt* GetInt(TUint32 aFieldId) const;
-	
-private:
-	const CApaIconCaptionOverrideStore& iStore;
-	const RArray<TLanguage>& iLanguageDowngradePath;
-	};
-
-/**
-* Stores the icon and caption overrides for an application.
-*/
-NONSHARABLE_CLASS(CApaIconCaptionOverridesForApp) : public CBase
-	{
-public:
-	static CApaIconCaptionOverridesForApp* NewL();
-	~CApaIconCaptionOverridesForApp();
-	CApaIconCaptionOverridesForApp();
-	void ConstructL();
-
-	void LoadFromCenRepL(CRepository* aRepository, TUint32 aAppKey);
-
-	TApaIconCaptionOverrideReader Reader(const RArray<TLanguage>& aLanguageDowngradePath) const;
-	
-private:
-	CApaIconCaptionOverrideStore* iStore;
-	};
-
-
-/**
- * Store all of the icon and caption override data indexed by app UID
- */
-NONSHARABLE_CLASS(CApaIconCaptionOverrides) : public CBase
-	{
-public:
-	CApaIconCaptionOverrides();
-	~CApaIconCaptionOverrides();
-
-	void LoadFromCenRepL();
-	void LoadFromCenRepL(CRepository* aRepository);
-
-	CApaIconCaptionOverridesForApp* OverrideForApp(TUid aAppUid) const;
-	void SetOverrideForAppL(TUid aAppUid, CApaIconCaptionOverridesForApp* aOverrides);	// takes ownership
-
-private:
-	void DeleteOverrides();
-
-private:
-	typedef RHashMap<TInt, CApaIconCaptionOverridesForApp*> RAppOverrideMap;
-	RAppOverrideMap iMap;
-	};
-	
-/**
-* Watches for changes in the Central Repositiory and update the overrides when they occur.
-*/
-NONSHARABLE_CLASS(CApaIconCaptionCenrepObserver) : public CActive
-	{
-public:
-	static CApaIconCaptionCenrepObserver* NewL(CApaIconCaptionOverrides& aOverrides);
-	CApaIconCaptionCenrepObserver(CApaIconCaptionOverrides& aOverrides);
-	~CApaIconCaptionCenrepObserver();
-	void ConstructL();
-	void LoadOverridesL();
-	
-private:
-	void Start();
-
-	void RunL();
-	void DoCancel();
-	TInt RunError(TInt aError);
-	
-private:
-	CApaIconCaptionOverrides& iOverrides;
-	CRepository* iRepository;	// owned
-	};
-
-
-#endif
--- a/localisation/apparchitecture/apserv/apsnnapps.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/apsnnapps.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,6 +13,7 @@
 // Description:
 // Non-Native application registration functionality for the AppArc server session
 // 
+// apsnnapps.cpp
 //
 
 
@@ -23,7 +24,7 @@
 #include <s32file.h>
 
 #include "APSCLSV.H"
-#include "APSSERV.H"
+#include "apsserv.h"
 #include "APSSTD.H"
 #include "../apgrfx/apprivate.h"
 #include "apsnnappupdates.h"
@@ -132,7 +133,7 @@
 		TRAP(err,InternalizeActionL(aStream,aPosition));
 		if(err == KErrNone || err == KErrCorrupt || err == KErrEof)
 			{
-			// We anticipate that the last update we try to read may be incomplete or corrupt.
+			// We anticipate that the last update we try to read may be not complete or corrupt.
 			// if we get either of these, jsut stop reading in the list of updates.
 			}
 		else
@@ -210,7 +211,7 @@
 		update = CApsRegisterNonNativeApplication::NewL(iFs, aUid, TDriveName(), CApsNonNativeApplicationsUpdate::ENeedsInternalizing);
 		break;
 	case CApsNonNativeApplicationsUpdate::EDeregisterApplication:
-		update = CApsDeregisterNonNativeApplication::NewL(iFs, *CApaAppListServer::Self(), aUid, CApsNonNativeApplicationsUpdate::ENeedsInternalizing);
+		update = CApsDeregisterNonNativeApplication::NewL(iFs, *CApaAppArcServer::Self(), aUid, CApsNonNativeApplicationsUpdate::ENeedsInternalizing);
 		break;
 #ifdef _DEBUG
 	case CApsNonNativeApplicationsUpdate::EFail:
@@ -337,7 +338,7 @@
 @internalComponent
 */
 RApsUpdateLog::RApsUpdateLog(RFs& aFs) :
-		iFs(aFs)
+	iFs(aFs), iFilesRegistered(NULL), iDrivesAffected(NULL)
 	{
 	TChar drive = RFs::GetSystemDriveChar();
 	iLogFileName.Append(drive);
@@ -353,6 +354,10 @@
 */
 void RApsUpdateLog::OpenL()
 	{
+	ASSERT(!iFilesRegistered && !iDrivesAffected);
+	const TInt KArrayGranularity = 128;
+	iFilesRegistered = new (ELeave) CDesCArraySeg(KArrayGranularity);
+	iDrivesAffected = new (ELeave) CDesCArraySeg(KArrayGranularity);
 	User::LeaveIfError(iLogWriteStream.Replace(iFs,iLogFileName,EFileShareExclusive|EFileStream|EFileWrite));
 	}
 
@@ -379,14 +384,14 @@
 void RApsUpdateLog::Close()
 	{
 	_LIT(KLitPathForTemporaryFiles, "\\private\\10003a3f\\temp\\");
-	const TInt count = iDrivesAffected.Count();
+	const TInt count = (iDrivesAffected ? iDrivesAffected->Count() : 0);
 	CFileMan* fileman = NULL;
 	TRAPD(err, fileman = CFileMan::NewL(iFs));
 	if (err == KErrNone) 
 		{
 		for(TInt i = 0; i < count; ++i)
 			{
-			TFileName dir(*(iDrivesAffected[i]));
+			TFileName dir((*iDrivesAffected)[i]);
 			dir.Append(KLitPathForTemporaryNonNativeResourceAndIconFiles);
 			fileman->RmDir(dir); // recursive
 			iFs.RmDir(KLitPathForTemporaryFiles); // non-recursive
@@ -394,8 +399,12 @@
 		delete fileman;
 		}
 	
-	iFilesRegistered.ResetAndDestroy();
-	iDrivesAffected.ResetAndDestroy();
+	delete iFilesRegistered;
+	iFilesRegistered = NULL;
+	
+	delete iDrivesAffected;
+	iDrivesAffected = NULL;
+	
 	iLogWriteStream.Close();
 	iFs.Delete(iLogFileName);
 	}
@@ -411,9 +420,9 @@
 
 @internalComponent
 */
-RPointerArray<HBufC>& RApsUpdateLog::NewRegistrationFiles()
+CDesCArray& RApsUpdateLog::NewRegistrationFiles()
 	{
-	return iFilesRegistered;
+	return *iFilesRegistered;
 	}
 
 
@@ -423,9 +432,9 @@
 
 @internalComponent
 */
-RPointerArray<HBufC>& RApsUpdateLog::DrivesAffected()
+CDesCArray& RApsUpdateLog::DrivesAffected()
 	{
-	return iDrivesAffected;
+	return *iDrivesAffected;
 	}
 
 /**
@@ -451,7 +460,7 @@
 	} //lint !e1762 Suppress member function could be made const
 
 
-CApsNonNativeApplicationsManager* CApsNonNativeApplicationsManager::NewL(CApaAppListServer& aServ, RFs& aFs)
+CApsNonNativeApplicationsManager* CApsNonNativeApplicationsManager::NewL(CApaAppArcServer& aServ, RFs& aFs)
 	{
 	CApsNonNativeApplicationsManager* self = new(ELeave)CApsNonNativeApplicationsManager(aServ, aFs);
 	return self;
@@ -462,13 +471,13 @@
 	delete iUpdateList;
 	}
 
-CApsNonNativeApplicationsManager::CApsNonNativeApplicationsManager(CApaAppListServer& aServ, RFs& aFs) :
+CApsNonNativeApplicationsManager::CApsNonNativeApplicationsManager(CApaAppArcServer& aServ, RFs& aFs) :
 		iServ(aServ),
 		iFs(aFs)
 	{
 	}
 
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
 
 void CApsNonNativeApplicationsManager::PrepareNonNativeApplicationsUpdatesL()
 	{
@@ -498,7 +507,7 @@
 	}
 
 
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
  
  void CApsNonNativeApplicationsManager::RegisterNonNativeApplicationL(const RMessage2& aMessage)
 	{
@@ -599,7 +608,7 @@
 	}
 
 
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
  
 void CApsNonNativeApplicationsManager::DeregisterNonNativeApplicationL(const RMessage2& aMessage)
 	{
@@ -610,7 +619,7 @@
 	CleanupStack::Pop(this);
 	}
 
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
 
 #ifdef _DEBUG
 void CApsNonNativeApplicationsManager::ForceFailInNonNativeApplicationsUpdatesL()
@@ -639,7 +648,7 @@
 
 #endif // _DEBUG
 
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
 
 void CApsNonNativeApplicationsManager::CommitNonNativeApplicationsUpdatesL(const RMessage2& aMessage)
 	{
@@ -668,7 +677,7 @@
 	else	
 		//The request is not completed till completion application list preparation.		
 		iNotifyOnScanCompleteMsg=aMessage;
-	
+
 	// Trigger a rescan
 	iServ.UpdateApps();
 	}
--- a/localisation/apparchitecture/apserv/apsnnapps.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/apsnnapps.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,6 +11,7 @@
 // Contributors:
 //
 // Description:
+// apsnnapps.h
 //
 
 #ifndef APSNNAPPS_H
@@ -19,11 +20,12 @@
 #include <e32base.h>
 #include <f32file.h>
 #include <s32file.h>
+#include <badesca.h>	// typedef CDesCArray
 
 #include "apsnnappupdates.h"
 
 // classes referenced
-class CApaAppListServer;
+class CApaAppArcServer;
 class CApsNonNativeApplicationsUpdateList;
 
 _LIT(KLitPathForTemporaryNonNativeResourceAndIconFiles, "\\private\\10003a3f\\temp\\NonNativeUpdates\\");
@@ -34,11 +36,11 @@
 NONSHARABLE_CLASS(CApsNonNativeApplicationsManager) : public CBase
 	{
 public:
-	static CApsNonNativeApplicationsManager* NewL(CApaAppListServer& aServ, RFs& aFs);
+	static CApsNonNativeApplicationsManager* NewL(CApaAppArcServer& aServ, RFs& aFs);
 	~CApsNonNativeApplicationsManager();
 
 private:
-	CApsNonNativeApplicationsManager(CApaAppListServer& aServ, RFs& aFs);
+	CApsNonNativeApplicationsManager(CApaAppArcServer& aServ, RFs& aFs);
 
 public:
 	void NotifyScanComplete();
@@ -61,7 +63,7 @@
 	void CheckForUpdateAppsLockL();
 
 private:
-	CApaAppListServer& iServ;
+	CApaAppArcServer& iServ;
 	RFs& iFs;
 	RMessage2 iNotifyOnScanCompleteMsg;
 	TBool iNonNativeApplicationsUpdateAppsLock;
@@ -203,14 +205,13 @@
 	void OpenL();
 	void Open(RFile& aFile, TUint aSeekPos);
 	void Close();
-	RPointerArray<HBufC>& NewRegistrationFiles();
-	RPointerArray<HBufC>& DrivesAffected();
+	CDesCArray& NewRegistrationFiles();
+	CDesCArray& DrivesAffected();
 	RWriteStream& LogWriteStream();
 private:
 	RFs& iFs;
-	// RPointerArray neccessary for use with CApaAppRegFinder
-	RPointerArray<HBufC> iFilesRegistered;
-	RPointerArray<HBufC> iDrivesAffected;
+	CDesCArray* iFilesRegistered;
+	CDesCArray* iDrivesAffected;
 	RFileWriteStream iLogWriteStream;
 	TFileName iLogFileName;
 	};
--- a/localisation/apparchitecture/apserv/apsnnappupdates.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/apsnnappupdates.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,9 +13,9 @@
 // Description:
 // Non-Native application registration functionality for the AppArc server session
 // 
+// apsnnappupdates.cpp
 //
 
-
 #include "apsnnappupdates.h"
 
 #include <bautils.h>
@@ -23,10 +23,10 @@
 #include <s32file.h>
 
 #include "APAID.H"
-#include "APGAPLST.H"
-#include "APSSERV.H"
+#include "../aplist/aplapplistitem.h"
+#include "apsserv.h"
 #include "APSSTD.H"
-#include "../apfile/aprfndr.h"
+#include "../aplist/aplappregfinder.h"
 #include "../apgrfx/apprivate.h"
 #include "apsnnapps.h"
 
@@ -155,7 +155,7 @@
 	__ASSERT_DEBUG(iTempPath == KNullDesC, Panic(ENonNativeAppsTFileDetailsCreateTempWithTempPathSet));
 	RFile file;
 	CleanupClosePushL(file);
-	// TODO: remove this hack if/when RFile::Temp is fixed by base
+	// NOTE: remove this workaround if/when RFile::Temp is fixed by base
 	TInt tempErr = KErrAlreadyExists;
 	/* RFile::Temp is a bit dodgy, at least on Winscw with the proxy FS */
 	for(TInt tries = 0; tempErr == KErrAlreadyExists && tries < 50; ++tries)
@@ -212,14 +212,14 @@
 			return err;
 			}
 		}
-	//Check if file already exists, if it exists delete it because we might be trying to register an upgrade
-	if(BaflUtils::FileExists(aFs, iPath))
-		{
-		TInt err = BaflUtils::DeleteFile(aFs, iPath);
-		if(KErrNone != err)
-			{
-			return err;
-			}
+	//Check if file already exists, if it exists delete it because we might be trying to register an upgrade 
+	if(BaflUtils::FileExists(aFs, iPath)) 
+    	{ 
+        TInt err = BaflUtils::DeleteFile(aFs, iPath); 
+        if(KErrNone != err) 
+        	{ 
+            return err; 
+            } 
 		}
 	TInt err = iHandle.Rename(iPath);
 	if(err != KErrNone)
@@ -244,7 +244,7 @@
 	/* create a temp file and delete it to get an unused filename */
 	RFile file;
 	CleanupClosePushL(file);
-	// TODO: remove this hack if/when RFile::Temp is fixed by base
+	// NOTE: remove this workaround if/when RFile::Temp is fixed by base
 	TInt tempErr = KErrAlreadyExists;
 	/* RFile::Temp is a bit dodgy, at least on Winscw with the proxy FS */
 	for(TInt tries = 0; tempErr == KErrAlreadyExists && tries < 50; ++tries)
@@ -706,7 +706,7 @@
 	WriteResourceFileL(iLocalisableResourceFile, aData, aDataPrefix);
 	}
 
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
 
 /**
 Create a new file in a designated temporary-files directory
@@ -782,18 +782,9 @@
 
 void CApsRegisterNonNativeApplication::DoPerformUpdateL(RApsUpdateLog& aUpdateLog)
 	{
-	HBufC* hDrive = iDrive.AllocL();
-	TInt err = aUpdateLog.DrivesAffected().InsertInOrder(hDrive, TLinearOrder<HBufC>(CApaAppList::CompareStrings));
-	if(err != KErrNone)
-		{
-		delete hDrive;
-		}
-
-	if ((err != KErrNone) &&
-	    (err != KErrAlreadyExists)) // We silently ignore attempts to insert duplicates
-		{
-		User::Leave(err);
-		}
+	TRAPD(err,aUpdateLog.DrivesAffected().InsertIsqL(iDrive, ECmpFolded));
+	if (err != KErrAlreadyExists) // We silently ignore attempts to insert duplicates
+		User::LeaveIfError(err);
 	
 	RWriteStream& stream = aUpdateLog.LogWriteStream();
 
@@ -814,18 +805,9 @@
 		iResourceFile.ExternalizeContinuationL(stream, EIconFileUpdate);
 		}
 	
-	HBufC* hPath = iResourceFile.Path().AllocL();
-	err = aUpdateLog.NewRegistrationFiles().InsertInOrder(hPath, TLinearOrder<HBufC>(CApaAppList::CompareStrings));
-	if(err != KErrNone)
-		{
-		delete hPath;
-		}
-	
-	if ((err != KErrNone) &&
-	    (err != KErrAlreadyExists)) // We silently ignore attempts to insert duplicates
-		{
-		User::Leave(err);
-		}
+	TRAP(err,aUpdateLog.NewRegistrationFiles().InsertIsqL(iResourceFile.Path(), ECmpFolded));
+	if (err != KErrAlreadyExists) // We silently ignore attempts to insert duplicates
+		User::LeaveIfError(err);
 	}
 
 void CApsRegisterNonNativeApplication::DoRollbackUpdate(RApsUpdateLog& aUpdateLog)
@@ -849,7 +831,7 @@
 	}
 
 
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
 
 void CApsRegisterNonNativeApplication::ExternalizeL(RWriteStream& aStream)
 	{
@@ -939,18 +921,18 @@
  * CApsDeregisterNonNativeApplication
  **************************************************************************************************************/
 
-CApsDeregisterNonNativeApplication* CApsDeregisterNonNativeApplication::NewL(RFs& aFs, CApaAppListServer& aServ, TUid aUid, TState aState)
+CApsDeregisterNonNativeApplication* CApsDeregisterNonNativeApplication::NewL(RFs& aFs, CApaAppArcServer& aServ, TUid aUid, TState aState)
 	{
 	return new(ELeave)CApsDeregisterNonNativeApplication(aFs, aServ, aUid, aState);
 	}
 
-CApsDeregisterNonNativeApplication::CApsDeregisterNonNativeApplication(RFs& aFs, CApaAppListServer& aServ, TUid aUid, TState aState) :
+CApsDeregisterNonNativeApplication::CApsDeregisterNonNativeApplication(RFs& aFs, CApaAppArcServer& aServ, TUid aUid, TState aState) :
 		CApsNonNativeApplicationsUpdate(aFs, aUid, aState, EDeregisterApplication),
 		iServ(aServ)
 	{
 	}
 
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
 
 
 CApaAppData* CApsDeregisterNonNativeApplication::FindAppDataLC(RApsUpdateLog& aUpdateLog)
@@ -986,18 +968,7 @@
 			entry.iUidType = fsEntry.iType;
 
 			appData = NULL;
-			#ifdef SYMBIAN_APPARC_APPINFO_CACHE
- 				TRAP_IGNORE(appData = CApaAppData::NewL(entry,iFs));
- 			#else
- 				{
- 				// find the default icons (.mbm file) for applications, wrt current locale
- 				TFileName* tempFileName = NULL;
- 				tempFileName->Append(KDefaultAppIconMbm);
- 				BaflUtils::NearestLanguageFile(iFs, *tempFileName); 
- 				HBufC* defaultAppIcon = tempFileName->AllocL();
- 				TRAP_IGNORE(appData = CApaAppData::NewL(entry,iFs,*defaultAppIcon));
- 				}
- 			#endif //SYMBIAN_APPARC_APPINFO_CACHE
+			TRAP_IGNORE(appData = CApaAppData::NewL(entry,iFs));
 			if(appData != NULL)
 				{
 				CleanupStack::PushL(appData);
@@ -1014,10 +985,10 @@
 	TBool found = EFalse;
 	TApaAppEntry appEntry;
 
-	regFinder->FindAllAppsL();
-	RPointerArray<HBufC>& forcedRegs = aUpdateLog.NewRegistrationFiles();
+	regFinder->FindAllAppsL(CApaAppRegFinder::EScanAllDrives);
+	const CDesCArray& forcedRegs = aUpdateLog.NewRegistrationFiles();
 
-	while(regFinder->NextL(appEntry,forcedRegs))
+	while(regFinder->NextL(appEntry, forcedRegs))
 		{
 		if (appEntry.iUidType[2] == Uid())
 			{
@@ -1029,18 +1000,7 @@
 
 	if(found)
 		{
-		#ifdef SYMBIAN_APPARC_APPINFO_CACHE
- 			appData = CApaAppData::NewL(appEntry, iFs);
- 		#else
-			{
- 			// find the default icons (.mbm file) for applications, wrt current locale
- 			TFileName* tempFileName = NULL;
- 			tempFileName->Append(KDefaultAppIconMbm);
- 			BaflUtils::NearestLanguageFile(iFs, *tempFileName); 
- 			HBufC* defaultAppIcon = tempFileName->AllocL();
- 			appData = CApaAppData::NewL(appEntry, iFs,*defaultAppIcon);	
- 			}
- 		#endif //SYMBIAN_APPARC_APPINFO_CACHE 
+		appData = CApaAppData::NewL(appEntry, iFs);
 		CleanupStack::PushL(appData);
 		return appData;
 		}
@@ -1060,17 +1020,12 @@
 		User::Leave(KErrPathNotFound);
 		}
 	TDriveName drive(parse.Drive());
+	TRAPD(err, aUpdateLog.DrivesAffected().InsertIsqL(drive, ECmpFolded));
+	if (err != KErrAlreadyExists) // We silently ignore attempts to insert duplicates
+		User::LeaveIfError(err);
 
-	HBufC* hDrive = drive.AllocL();
-	TInt err = aUpdateLog.DrivesAffected().InsertInOrder(hDrive, TLinearOrder<HBufC>(CApaAppList::CompareStrings));
-	if(err != KErrNone)
-		{
-		delete hDrive;
-		}
-	
-	TFileName path(TemporaryFilePathL(drive));
-
-	aFile.RenameToTemporaryL(iFs,path);
+	const TFileName path(TemporaryFilePathL(drive));
+	aFile.RenameToTemporaryL(iFs, path);
 	}
 
 void CApsDeregisterNonNativeApplication::DoPerformUpdateL(RApsUpdateLog& aUpdateLog)
--- a/localisation/apparchitecture/apserv/apsnnappupdates.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apserv/apsnnappupdates.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,6 +11,7 @@
 // Contributors:
 //
 // Description:
+// apsnnappupdates.h
 //
 
 #ifndef APSNNAPPUPDATES_H
@@ -23,7 +24,7 @@
 
 // classes referenced
 class CApaAppData;
-class CApaAppListServer;
+class CApaAppArcServer;
 class RApsUpdateLog;
 class RWriteStream;
 
@@ -251,11 +252,11 @@
 NONSHARABLE_CLASS(CApsDeregisterNonNativeApplication) : public CApsNonNativeApplicationsUpdate
 	{
 public:
-	static CApsDeregisterNonNativeApplication* NewL(RFs& aFs, CApaAppListServer& aServ, TUid aUid, TState aState = ENew);
+	static CApsDeregisterNonNativeApplication* NewL(RFs& aFs, CApaAppArcServer& aServ, TUid aUid, TState aState = ENew);
 	~CApsDeregisterNonNativeApplication();
 
 private:
-	CApsDeregisterNonNativeApplication(RFs& aFs, CApaAppListServer& aServ, TUid aUid, TState aState);
+	CApsDeregisterNonNativeApplication(RFs& aFs, CApaAppArcServer& aServ, TUid aUid, TState aState);
 
 private:
 	void RenameToTemporaryL(TFileDetails& aFile, RApsUpdateLog& aUpdateLog);
@@ -277,7 +278,7 @@
 		ELocalisableResourceFileUpdate,
 		EIconFileUpdate
 		};
-	CApaAppListServer& iServ;
+	CApaAppArcServer& iServ;
 	TFileDetails iResourceFile;
 	TFileDetails iLocalisableResourceFile;
 	TFileDetails iIconFile;
@@ -344,3 +345,4 @@
 
 
 #endif // APSNNAPPUPDATES_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/apserv/apsserv.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,232 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apsserv.h
+//
+
+#ifndef __APSSERV_H__
+#define __APSSERV_H__
+
+#include "../aplist/aplapplist.h" 	// class MApaAppListObserver
+#include <e32base.h>
+#include <f32file.h>
+#include <apmfndr.h>
+#include <aprulebased.h>
+#include <w32std.h>
+#include <apgaplst.h>
+
+class CCustomAppInfoData;
+class CApaAppList;
+class CApaFsMonitor;
+class CTypeStoreManager;
+class CApaEComMonitor;
+class CBaBackupSessionWrapper;
+class CApsRecognitionCache;
+class CRecognitionResult;
+class CApaAppInstallationMonitor;
+
+
+/**
+KAppListServerName 
+@internalAll
+*/
+_LIT(KAppListServerName,"!AppListServer");
+
+
+/**
+CApaAppArcServer 
+@internalAll 
+*/
+class CApaAppArcServer : public CPolicyServer, public MApaAppListObserver, public MBackupOperationObserver
+	{
+public:
+	IMPORT_C static CApaAppArcServer* NewL();
+	IMPORT_C static CApaAppArcServer* Self();
+
+	inline RWsSession& WsSession();
+	
+	inline const CApaFsMonitor& AppFsMonitor() const {return *iAppFsMonitor;}
+	
+	inline CApaScanningRuleBasedPlugIns* RuleBasedPlugIns();
+		
+	// Application list stuff
+	inline CApaAppList& AppList();
+	void UpdateApps();
+	IMPORT_C TCallBack RescanCallBack();
+	
+	void RegisterNonNativeApplicationTypeL(TUid aApplicationType, const TDesC& aNativeExecutable);
+	void DeregisterNonNativeApplicationTypeL(TUid aApplicationType);
+	TPtrC NativeExecutableL(TUid aNonNativeApplicationType) const;
+	
+	IMPORT_C void HandleInstallationStartEvent();
+	IMPORT_C void HandleInstallationEndEventL();
+	
+	// MIME-type recognition
+	inline CApaDataRecognizer* MimeTypeRecognizer();
+	CRecognitionResult* RecognizeDataAsCRecognitionResultL(RFile& aFile, TInt aPreferredBufSize);
+	TDataRecognitionResult RecognizeDataL(const TDesC& aName, const TDesC8& aBuffer);
+	TDataRecognitionResult RecognizeDataL(RFile& aFile, TInt aPreferredBufSize);
+	TBool RecognizeDataL(const TDesC& aName, const TDesC8& aBuffer, const TDataType& aDataType);
+	TBool RecognizeDataL(RFile& aFile, TInt aPreferredBufSize, const TDataType& aDataType);
+	TInt DataRecognizerPreferredBufSizeL();
+	void DataTypeL(CDataTypeArray& aArray);
+	
+	void GetAppForMimeType(const TDataType& aDataType, TUid& aUid) const;
+	void GetAppForMimeType(const TDataType& aDataType, TUid aServiceUid, TUid& aUid) const;
+	TBool InsertAndStoreIfHigherL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid);
+	void InsertAndStoreDataMappingL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid, TUid aServiceUid);
+	void DeleteAndStoreDataMappingL(const TDataType& aDataType, TUid aServiceUid);
+
+	
+    
+#ifdef _DEBUG
+	void FlushRecognitionCache();
+	void SetLoadRecognizersOnDemandL(TBool aLoadRecognizersOnDemand);
+	void PerformOutstandingRecognizerUnloading();
+#endif //_DEBUG
+public: // from MApaAppListObserver
+	void NotifyUpdate(TInt aReason);
+	void InitialListPopulationComplete();
+public: // from MBackupOperationObserver
+	void HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes);
+public:	//
+	IMPORT_C ~CApaAppArcServer();
+	TBool NonNativeRecovery() const;
+	void SetNonNativeRecovery(TBool aValue);
+	TBool LoadMbmIconsOnDemand() const;
+	void UpdateAppsByForceRegistration();
+private:
+	CApaAppArcServer(TInt aPriority);
+	void ConstructL();
+	virtual CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const;
+	static TInt AppFsNotifyWithForcedRegistrationsResetCallBack(TAny* aPtr);
+	static TInt AppFsNotifyCallBack(TAny* aPtr);
+	static TInt PlugInNotifyCallBack(TAny* aPtr);
+	static TInt TypeStoreNotifyCallback(TAny* aPtr);
+	void UpdatePlugIns();
+	void UpdateTypeStore();
+	void DoUpdateTypeStoreL();
+	void InternalizeNonNativeApplicationTypeArrayL();
+	void ExternalizeNonNativeApplicationTypeArrayL(TInt aIndexToIgnore=-1) const;
+	static void DeleteLastNonNativeApplicationType(TAny* aThis);
+	void NotifyScanComplete();
+	void DeleteCustomAppInfoList();
+	void LoadRecognizersLC();
+	void LoadRecognizersL();
+	static void RecognizerCleanup(TAny* aAny);
+	TInt UnloadRecognizers();
+	static TInt DoUnloadRecognizersCallback(TAny* aAny);
+	TInt DoUnloadRecognizers();
+	TBool CachedRecognitionResult(const TParseBase& aParser, TDataRecognitionResult& aResult) const;
+	CRecognitionResult* CachedRecognitionResult(const RFile& aFile, const TParseBase& aParser) const;
+	void CacheRecognitionResultL(const TParseBase& aParser, const TDataRecognitionResult& aResult);
+	void CacheRecognitionResultL(const RFile& aFile, const TParseBase& aParser, const TDataRecognitionResult& aResult);
+	void ConstructPathsToMonitorL();
+private:
+	enum
+		{
+		EOwnsFileRecognizer=0x01,
+		EOwnsAppList=0x02
+		};
+
+	enum TForceRegistrationStatus
+	    {
+	    EForceRegistrationNone=0x00,
+	    EForceRegistrationRequested=0x01,
+	    EForceRegistrationAppListChanged=0x02
+	    };
+	
+	struct SNonNativeApplicationType
+		{
+		TUid iTypeUid;
+		HBufC* iNativeExecutable;
+		};
+private:
+	RFs iFs;
+	TInt iRecognizerUsageCount;
+	CApaAppList* iAppList;
+	CPeriodic* iRecognizerUnloadTimer;
+	CApaScanningDataRecognizer* iMimeTypeRecognizer;
+	CApaFsMonitor* iAppFsMonitor;
+	CApaFsMonitor* iTypeStoreMonitor;
+	CTypeStoreManager* iMimeTypeToAppMappingsManager;
+	TTime iTypeStoreModified;
+	CBaBackupSessionWrapper* iBaBackupSessionWrapper;
+	CApaEComMonitor* iRecEcomMonitor;
+	CApsRecognitionCache* iRecognitionCache;
+	CApaScanningRuleBasedPlugIns* iRuleBasedPlugIns;
+	RWsSession iWsSession;
+	RArray<SNonNativeApplicationType> iNonNativeApplicationTypeArray;
+	/**
+	This is ETrue if there was a power failure during the non-native applications list
+	update. It means that there is a list fo updated apps that needs to be rolled back.
+	*/
+	TBool iNonNativeRecovery;
+
+	TBool iLoadRecognizersOnDemand;
+	CApaAppInstallationMonitor* iAppInstallationMonitor; //CApaAppInstallationMonitor monitors installation and uninstallation of applications.
+	TBool iLoadMbmIconsOnDemand;
+	RBuf iNonNativeApplicationTypeRegistry;
+	TInt iForceRegistrationStatus;
+	};
+
+
+/**
+The TApaAppViewIconSizeData class encapsulates the attributes that specify how to identify an icon for a particular
+application and view in a certain size.
+
+@internalComponent
+*/
+class TApaAppViewIconSizeData
+	{
+public:
+	inline TApaAppViewIconSizeData();
+	inline TApaAppViewIconSizeData(TUid aAppUid,TUid aViewUid, const TSize& aSize);
+public:
+	TUid iAppUid;
+	TUid iViewUid;
+	TSize iSize;
+	};
+
+typedef TPckgBuf<TApaAppViewIconSizeData> TApaAppViewIconSizeDataBuf;
+
+//
+// inlines
+//
+
+inline TApaAppViewIconSizeData::TApaAppViewIconSizeData()
+	: iAppUid(KNullUid), iViewUid(KNullUid), iSize(TSize(0,0))
+	{}
+
+inline TApaAppViewIconSizeData::TApaAppViewIconSizeData(TUid aAppUid,TUid aViewUid, const TSize& aSize)
+	: iAppUid(aAppUid), iViewUid(aViewUid), iSize(aSize)
+	{}
+
+inline CApaAppList& CApaAppArcServer::AppList()
+	{ return *iAppList; }
+
+inline CApaDataRecognizer* CApaAppArcServer::MimeTypeRecognizer()
+	{ return iMimeTypeRecognizer; }
+
+inline CApaScanningRuleBasedPlugIns* CApaAppArcServer::RuleBasedPlugIns()
+	{ return iRuleBasedPlugIns; }
+
+inline RWsSession& CApaAppArcServer::WsSession()
+		{ return iWsSession; } //lint !e1536 Exposing low access member
+
+
+	
+#endif // __APSSERV_H__
+
+
+
--- a/localisation/apparchitecture/apsexe/APSEXE.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-//
-// APSEXE.MMP server launch code for AppArc server
-//
-
-/**
-@file
-
-@SYMPurpose apsexe.dll Apparc server stub
-*/
-target          apsexe.exe
-targettype      EXE
-CAPABILITY ProtServ
-
-UID		0x1000008D 0x10003A3F
-VENDORID 0x70000001
-
-SOURCEPATH	../apsexe
-
-userinclude		../inc
-systeminclude   /epoc32/include
-
-source			APSMAIN.CPP
-
-library  euser.lib  apserv.lib
-
-
-// Apparc server need extra stack as it has a lot of
-// filenames and parse objects on stack from time to time
-epocstacksize	0x3000
--- a/localisation/apparchitecture/apsexe/APSMAIN.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apsexe/APSMAIN.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,51 +13,22 @@
 // Description:
 // The main startup of the AppArc server
 // 
-//
-
-#include "APASVST.H"
-
-
-#ifdef APA_SERVER_IN_THREAD
-// The server binary is an "EPOCEXE" target type
-// Thus the server parameter passing and startup code for WINS and EPOC are
-// significantly different.
-//
-// In EKA1 WINS, the EPOCEXE target is a DLL with an entry point called WinsMain,
-// taking no parameters and returning TInt. This is not really valid as a thread
-// function which takes a TAny* parameter which we need.
-//
-// So the DLL entry-point WinsMain() is used to return a TInt representing the
-// real thread function within the DLL. This is good as long as
-// sizeof(TInt)>=sizeof(ApaServThreadStart).
+// apsmain.cpp
 //
 
-IMPORT_C TInt WinsMain();
-EXPORT_C TInt WinsMain()
-//
-// WINS DLL entry-point. Just return the real thread function 
-// cast to TInt
-//
-	{
-	return reinterpret_cast<TInt>(&ApaServThreadStart);
-	}
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APA_INTERNAL_H__)
+#include "apainternal.h"
+#endif
+#else
+#include "APASVST.H"
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
-GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
-//
-//	DLL entry point
-//
-	{
-	return(KErrNone);
-	}
-
-#else
-
-TInt E32Main()
 //
 //	EXE entry point
 //
+TInt E32Main()
 	{
-	return ApaServThreadStart(NULL);
+	return ApaServThreadStart();
 	}
 	
-#endif
--- a/localisation/apparchitecture/apstart/apstart.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apstart/apstart.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -91,6 +91,39 @@
 	CleanupStack::PopAndDestroy(&timer);
 	}
 
+/**
+Wait for apparc server to complete initial population of its app list. (Asynchronous). 
+
+@param aStatus 
+*/
+void CApaAppStart::InitApparcServer(TRequestStatus& aStatus)
+	{
+	// Make sure we have a usable session...
+	if (iApaLsSession.Handle()==KNullHandle)
+		{
+		const TInt err = iApaLsSession.Connect(); 
+		if(err != KErrNone)
+			{
+			TRequestStatus* status = &aStatus;
+			User::RequestComplete(status, KErrCouldNotConnect);
+			return;
+			}
+		}
+	iApaLsSession.RegisterListPopulationCompleteObserver(aStatus);
+	}
+
+/**
+Cancel population of app list.
+*/
+void CApaAppStart::InitApparcServerCancel()
+	{
+	if (iApaLsSession.Handle()!=KNullHandle)
+		{
+		// cancel population of app list
+		iApaLsSession.CancelListPopulationCompleteObserver();
+		}
+	}
+
 /** 
 Set up the CApaCommandLine object which will be used to start the app.
 */
@@ -128,8 +161,9 @@
 when the application is actually up and running is given via @c aRequestStatusForRendezvous.
 
 Rule-based launching and non-native applications are supported only after 
-@c WaitForApparcToInitialiseL has been called. 
+@c WaitForApparcToInitialiseL (in case of sysstart) or InitApparcServer (in case of ssma) has been called. 
 @see struct INIT_APPARC.
+@see struct STRUCT SSM_WAIT_FOR_APPARC_INIT
 
 @param aFileName The full filename of the application.
 @param aArgs The arguments passed to the application.
@@ -156,8 +190,9 @@
 about when the application is actually up and running.
 
 Rule-based launching and non-native applications are supported only after 
-@c WaitForApparcToInitialiseL has been called. 
+@c WaitForApparcToInitialiseL (in case of sysstart) or InitApparcServer (in case of ssma) has been called. 
 @see struct INIT_APPARC.
+@see struct STRUCT SSM_WAIT_FOR_APPARC_INIT
 
 @param aFileName The full filename of the application.
 @param aArgs The arguments passed to the application.
--- a/localisation/apparchitecture/apstart/apstart.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apstart/apstart.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -37,7 +37,9 @@
 	void WaitForApparcToInitialiseL();
 	void StartAppL(const TDesC& aFileName, const TDesC& aArgs, TBool aViewLess, TBool aStartInBackground, TThreadId& aThreadId);
 	void StartAppL(const TDesC& aFileName, const TDesC& aArgs, TBool aViewLess, TBool aStartInBackground, TThreadId& aThreadId, TRequestStatus& aRequestStatusForRendezvous);
-	
+	void InitApparcServer(TRequestStatus& aStatus);
+	void InitApparcServerCancel();
+
 private:
 	CApaAppStart();
 	void ConstructL();			
@@ -45,7 +47,7 @@
 	void DoStartAppL(const TDesC &aFileName, const TDesC &aArgs, TBool aViewLess, TBool aStartInBackground, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous);
 
 private:
-	RApaLsSession iApaLsSession;		
+	RApaLsSession iApaLsSession;
 	};
 
 #endif
--- a/localisation/apparchitecture/apstart/apstart.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apstart/apstart.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,14 +17,20 @@
 TARGETTYPE		dll
 TARGETPATH		/sys/bin
 UID				0x1000008D 0x200086A0
+#ifndef SYMBIAN_SYSTEM_STATE_MANAGEMENT
 CAPABILITY 		PowerMgmt ReadDeviceData WriteDeviceData ProtServ SwEvent // same as SysStart.exe
+#else
+CAPABILITY 		PowerMgmt ReadDeviceData WriteDeviceData ProtServ SwEvent DiskAdmin
+#endif
 VENDORID 		0x70000001
 
 USERINCLUDE		../inc
-SYSTEMINCLUDE 	/epoc32/include
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 SOURCEPATH		../apstart
 SOURCE			apstart.cpp
 SOURCE			apststd.cpp
 
 LIBRARY			euser.lib apparc.lib apgrfx.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/apstart/apststd.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apstart/apststd.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/apstart/apststd.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/apstart/apststd.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/bwins/APFILEU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,73 @@
+EXPORTS
+	??0CApaScanningFileRecognizer@@IAE@AAVRFs@@PAVMApaAppStarter@@@Z @ 1 NONAME ABSENT 
+	??1CApaAppLocatorProxy@@UAE@XZ @ 2 NONAME ABSENT
+	??1CApaScanningAppFinder@@UAE@XZ @ 3 NONAME ABSENT
+	??1CApaScanningFileRecognizer@@UAE@XZ @ 4 NONAME ABSENT 
+	?ConstructL@CApaScanningFileRecognizer@@IAEXXZ @ 5 NONAME ABSENT 
+	?DefaultAppInfoFileName@CApaScanningAppFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 6 NONAME ABSENT
+	?FindAllAppsL@CApaScanningAppFinder@@UAEXXZ @ 7 NONAME ABSENT
+	?FindAppL@CApaScanningAppFinder@@UAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 8 NONAME ABSENT
+	?GetAppCapabilityByUid@CApaAppLocatorProxy@@UAEHAAVTDes8@@VTUid@@@Z @ 9 NONAME ABSENT
+	?GetAppEntryByUid@CApaAppLocatorProxy@@UAEHAAVTApaAppEntry@@VTUid@@@Z @ 10 NONAME ABSENT
+	?NewL@CApaAppLocatorProxy@@SAPAV1@AAVRFs@@@Z @ 11 NONAME ABSENT
+	?NewL@CApaScanningAppFinder@@SAPAV1@ABVRFs@@@Z @ 12 NONAME ABSENT
+	?NewL@CApaScanningFileRecognizer@@SAPAV1@AAVRFs@@PAVMApaAppStarter@@@Z @ 13 NONAME ABSENT 
+	?NewLC@CApaScanningAppFinder@@SAPAV1@ABVRFs@@@Z @ 14 NONAME ABSENT
+	?NextL@CApaScanningAppFinder@@UAEHAAVTApaAppEntry@@@Z @ 15 NONAME ABSENT
+	?RecognizerCount@CApaScanningFileRecognizer@@QAEHXZ @ 16 NONAME ABSENT 
+	?RecognizerListLC@CApaScanningFileRecognizer@@QBEPAV?$CArrayFixFlat@VRRecognizer@CApaScanningFileRecognizer@@@@XZ @ 17 NONAME ABSENT 
+	?ScanForRecognizersL@CApaScanningFileRecognizer@@QAEXXZ @ 18 NONAME ABSENT 
+	?SetRecognizersFromListL@CApaScanningFileRecognizer@@QAEXABV?$CArrayFixFlat@VTRecognizer@CApaScanningFileRecognizer@@@@@Z @ 19 NONAME ABSENT
+	?TempPath@CApaScanningAppFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 20 NONAME ABSENT
+	?TempPath@Apfile@@SA?AVTPtrC16@@XZ @ 21 NONAME ABSENT
+	??ACApaScanningFileRecognizer@@QBEABVRRecognizer@0@H@Z @ 22 NONAME ABSENT ; class CApaScanningFileRecognizer::RRecognizer const & CApaScanningFileRecognizer::operator[](int) const
+	?SetRecognizerL@CApaScanningFileRecognizer@@QAEXABVTRecognizer@1@@Z @ 23 NONAME ABSENT
+	?UpdateCounter@CApaScanningFileRecognizer@@QBEHXZ @ 24 NONAME ABSENT 
+	??1CApaScanningControlFinder@@UAE@XZ @ 25 NONAME ABSENT
+	?DefaultAppInfoFileName@CApaScanningControlFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 26 NONAME ABSENT
+	?FindAllAppsL@CApaScanningControlFinder@@UAEXXZ @ 27 NONAME ABSENT
+	?FindAppL@CApaScanningControlFinder@@UAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 28 NONAME ABSENT
+	?NewL@CApaScanningControlFinder@@SAPAV1@ABVRFs@@@Z @ 29 NONAME ABSENT
+	?NewLC@CApaScanningControlFinder@@SAPAV1@ABVRFs@@@Z @ 30 NONAME ABSENT
+	?NextL@CApaScanningControlFinder@@UAEHAAVTApaAppEntry@@@Z @ 31 NONAME ABSENT
+	?TempPath@CApaScanningControlFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 32 NONAME ABSENT
+	?SetEcomRecognizerL@CApaScanningFileRecognizer@@QAEXABVRRecognizer@1@@Z @ 33 NONAME ABSENT 
+	?SetEcomRecognizersFromListL@CApaScanningFileRecognizer@@QAEXABV?$CArrayFixFlat@VRRecognizer@CApaScanningFileRecognizer@@@@@Z @ 34 NONAME ABSENT 
+	?FindAllAppsL@CApaAppRegFinder@@QAEXXZ @ 35 NONAME ABSENT ; void CApaAppRegFinder::FindAllAppsL(void)
+	?FindAppL@CApaAppRegFinder@@QAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 36 NONAME ABSENT ; class TBuf<256> CApaAppRegFinder::FindAppL(class TDesC16 const &, class TUid)
+	?NewL@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 37 NONAME ABSENT ; class CApaAppRegFinder * CApaAppRegFinder::NewL(class RFs const &)
+	?NewLC@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 38 NONAME ABSENT ; class CApaAppRegFinder * CApaAppRegFinder::NewLC(class RFs const &)
+	?NextL@CApaAppRegFinder@@QAEHAAVTApaAppEntry@@ABV?$RPointerArray@VHBufC16@@@@@Z @ 39 NONAME ABSENT ; int CApaAppRegFinder::NextL(class TApaAppEntry &, class RPointerArray<class HBufC16> const &)
+	?TempPath@CApaAppRegFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 40 NONAME ABSENT ; class TBuf<256> CApaAppRegFinder::TempPath(void) const
+	??1CAppLaunchChecker@@UAE@XZ @ 41 NONAME ; CAppLaunchChecker::~CAppLaunchChecker(void)
+	??ACApaScanningRuleBasedPlugIns@@QBEPAVCAppLaunchChecker@@H@Z @ 42 NONAME ; class CAppLaunchChecker * CApaScanningRuleBasedPlugIns::operator[](int) const
+	??1CApaScanningRuleBasedPlugIns@@UAE@XZ @ 43 NONAME ; CApaScanningRuleBasedPlugIns::~CApaScanningRuleBasedPlugIns(void)
+	?NewL@CApaScanningRuleBasedPlugIns@@SAPAV1@XZ @ 44 NONAME ; class CApaScanningRuleBasedPlugIns * CApaScanningRuleBasedPlugIns::NewL(void)
+	?ScanForRuleBasedPlugInsL@CApaScanningRuleBasedPlugIns@@QAEXXZ @ 45 NONAME ; void CApaScanningRuleBasedPlugIns::ScanForRuleBasedPlugInsL(void)
+	?ImplementationCount@CApaScanningRuleBasedPlugIns@@QBEHXZ @ 46 NONAME ; int CApaScanningRuleBasedPlugIns::ImplementationCount(void) const
+	?Reserved_1@CAppLaunchChecker@@EAEXXZ @ 47 NONAME ; void CAppLaunchChecker::Reserved_1(void)
+	?Reserved_2@CAppLaunchChecker@@EAEXXZ @ 48 NONAME ; void CAppLaunchChecker::Reserved_2(void)
+	?Reserved_3@CAppLaunchChecker@@EAEXXZ @ 49 NONAME ; void CAppLaunchChecker::Reserved_3(void)
+	??1CAppSidChecker@@UAE@XZ @ 50 NONAME ABSENT ; CAppSidChecker::~CAppSidChecker(void)
+	?SetRescanCallBackL@CAppSidChecker@@UAEXABVTCallBack@@@Z @ 51 NONAME ABSENT ; void CAppSidChecker::SetRescanCallBackL(class TCallBack const &)
+	?reserved1@CAppSidChecker@@EAEXXZ @ 52 NONAME ABSENT ; void CAppSidChecker::reserved1(void)
+	?reserved2@CAppSidChecker@@EAEXXZ @ 53 NONAME ABSENT ; void CAppSidChecker::reserved2(void)
+	?reserved3@CAppSidChecker@@EAEXXZ @ 54 NONAME ABSENT ; void CAppSidChecker::reserved3(void)
+	?DriveList@CApaAppRegFinder@@QBEABV?$RArray@VTDriveUnitInfo@@@@XZ @ 55 NONAME ABSENT ; class RArray<class TDriveUnitInfo> const & CApaAppRegFinder::DriveList(void) const
+	?FindAllRemovableMediaAppsL@CApaAppRegFinder@@QAEXXZ @ 56 NONAME ABSENT ; void CApaAppRegFinder::FindAllRemovableMediaAppsL(void)
+	??1CApaAppInstallationMonitor@@UAE@XZ @ 57 NONAME ; CApaAppInstallationMonitor::~CApaAppInstallationMonitor(void)
+	?NewL@CApaAppInstallationMonitor@@SAPAV1@PAVCApaAppArcServer@@@Z @ 58  NONAME ; class CApaAppInstallationMonitor * CApaAppInstallationMonitor::NewL(class CApaAppArcServer *)
+	?Start@CApaAppInstallationMonitor@@QAEXXZ @ 59 NONAME ; void CApaAppInstallationMonitor::Start(void)
+	??1CApfMimeContentPolicy@@UAE@XZ @ 60 NONAME ; CApfMimeContentPolicy::~CApfMimeContentPolicy(void)
+	?IsClosedExtension@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 61 NONAME ; int CApfMimeContentPolicy::IsClosedExtension(class TDesC16 const &)
+	?IsClosedFileL@CApfMimeContentPolicy@@QAEHAAVRFile@@@Z @ 62 NONAME ; int CApfMimeContentPolicy::IsClosedFileL(class RFile &)
+	?IsClosedFileL@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 63 NONAME ; int CApfMimeContentPolicy::IsClosedFileL(class TDesC16 const &)
+	?IsClosedType@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 64 NONAME ; int CApfMimeContentPolicy::IsClosedType(class TDesC16 const &)
+	?IsDRMEnvelopeL@CApfMimeContentPolicy@@QAEHAAVRFile@@@Z @ 65 NONAME ; int CApfMimeContentPolicy::IsDRMEnvelopeL(class RFile &)
+	?IsDRMEnvelopeL@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 66 NONAME ; int CApfMimeContentPolicy::IsDRMEnvelopeL(class TDesC16 const &)
+	?NewL@CApfMimeContentPolicy@@SAPAV1@AAVRFs@@@Z @ 67 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewL(class RFs &)
+	?NewL@CApfMimeContentPolicy@@SAPAV1@XZ @ 68 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewL(void)
+	?NewLC@CApfMimeContentPolicy@@SAPAV1@AAVRFs@@@Z @ 69 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(class RFs &)
+	?NewLC@CApfMimeContentPolicy@@SAPAV1@XZ @ 70 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(void)
+	_E32Dll=__E32Dll	; Entry point for emulation
+
--- a/localisation/apparchitecture/bwins/APFILE_9_REMOVE_UI_FRAMEWORKS_V1U.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-EXPORTS
-	??0CApaScanningFileRecognizer@@IAE@AAVRFs@@PAVMApaAppStarter@@@Z @ 1 NONAME
-	??1CApaAppLocatorProxy@@UAE@XZ @ 2 NONAME ABSENT
-	??1CApaScanningAppFinder@@UAE@XZ @ 3 NONAME ABSENT
-	??1CApaScanningFileRecognizer@@UAE@XZ @ 4 NONAME
-	?ConstructL@CApaScanningFileRecognizer@@IAEXXZ @ 5 NONAME
-	?DefaultAppInfoFileName@CApaScanningAppFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 6 NONAME ABSENT
-	?FindAllAppsL@CApaScanningAppFinder@@UAEXXZ @ 7 NONAME ABSENT
-	?FindAppL@CApaScanningAppFinder@@UAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 8 NONAME ABSENT
-	?GetAppCapabilityByUid@CApaAppLocatorProxy@@UAEHAAVTDes8@@VTUid@@@Z @ 9 NONAME ABSENT
-	?GetAppEntryByUid@CApaAppLocatorProxy@@UAEHAAVTApaAppEntry@@VTUid@@@Z @ 10 NONAME ABSENT
-	?NewL@CApaAppLocatorProxy@@SAPAV1@AAVRFs@@@Z @ 11 NONAME ABSENT
-	?NewL@CApaScanningAppFinder@@SAPAV1@ABVRFs@@@Z @ 12 NONAME ABSENT
-	?NewL@CApaScanningFileRecognizer@@SAPAV1@AAVRFs@@PAVMApaAppStarter@@@Z @ 13 NONAME
-	?NewLC@CApaScanningAppFinder@@SAPAV1@ABVRFs@@@Z @ 14 NONAME ABSENT
-	?NextL@CApaScanningAppFinder@@UAEHAAVTApaAppEntry@@@Z @ 15 NONAME ABSENT
-	?RecognizerCount@CApaScanningFileRecognizer@@QAEHXZ @ 16 NONAME
-	?RecognizerListLC@CApaScanningFileRecognizer@@QBEPAV?$CArrayFixFlat@VTRecognizer@CApaScanningFileRecognizer@@@@XZ @ 17 NONAME
-	?ScanForRecognizersL@CApaScanningFileRecognizer@@QAEXXZ @ 18 NONAME
-	?SetRecognizersFromListL@CApaScanningFileRecognizer@@QAEXABV?$CArrayFixFlat@VTRecognizer@CApaScanningFileRecognizer@@@@@Z @ 19 NONAME ABSENT
-	?TempPath@CApaScanningAppFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 20 NONAME ABSENT
-	?TempPath@Apfile@@SA?AVTPtrC16@@XZ @ 21 NONAME ABSENT
-	??ACApaScanningFileRecognizer@@QBEABVTRecognizer@0@H@Z @ 22 NONAME ; class CApaScanningFileRecognizer::TRecognizer const & CApaScanningFileRecognizer::operator[](int) const
-	?SetRecognizerL@CApaScanningFileRecognizer@@QAEXABVTRecognizer@1@@Z @ 23 NONAME ABSENT
-	?UpdateCounter@CApaScanningFileRecognizer@@QBEHXZ @ 24 NONAME
-	??1CApaScanningControlFinder@@UAE@XZ @ 25 NONAME ABSENT
-	?DefaultAppInfoFileName@CApaScanningControlFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 26 NONAME ABSENT
-	?FindAllAppsL@CApaScanningControlFinder@@UAEXXZ @ 27 NONAME ABSENT
-	?FindAppL@CApaScanningControlFinder@@UAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 28 NONAME ABSENT
-	?NewL@CApaScanningControlFinder@@SAPAV1@ABVRFs@@@Z @ 29 NONAME ABSENT
-	?NewLC@CApaScanningControlFinder@@SAPAV1@ABVRFs@@@Z @ 30 NONAME ABSENT
-	?NextL@CApaScanningControlFinder@@UAEHAAVTApaAppEntry@@@Z @ 31 NONAME ABSENT
-	?TempPath@CApaScanningControlFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 32 NONAME ABSENT
-	?SetEcomRecognizerL@CApaScanningFileRecognizer@@QAEXABVTRecognizer@1@@Z @ 33 NONAME
-	?SetEcomRecognizersFromListL@CApaScanningFileRecognizer@@QAEXABV?$CArrayFixFlat@VTRecognizer@CApaScanningFileRecognizer@@@@@Z @ 34 NONAME
-	?FindAllAppsL@CApaAppRegFinder@@QAEXXZ @ 35 NONAME ; void CApaAppRegFinder::FindAllAppsL(void)
-	?FindAppL@CApaAppRegFinder@@QAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 36 NONAME ABSENT ; class TBuf<256> CApaAppRegFinder::FindAppL(class TDesC16 const &, class TUid)
-	?NewL@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 37 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewL(class RFs const &)
-	?NewLC@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 38 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewLC(class RFs const &)
-	?NextL@CApaAppRegFinder@@QAEHAAVTApaAppEntry@@ABV?$RPointerArray@VHBufC16@@@@@Z @ 39 NONAME ; int CApaAppRegFinder::NextL(class TApaAppEntry &, class RPointerArray<class HBufC16> const &)
-	?TempPath@CApaAppRegFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 40 NONAME ABSENT ; class TBuf<256> CApaAppRegFinder::TempPath(void) const
-	??1CAppLaunchChecker@@UAE@XZ @ 41 NONAME ; CAppLaunchChecker::~CAppLaunchChecker(void)
-	??ACApaScanningRuleBasedPlugIns@@QBEPAVCAppLaunchChecker@@H@Z @ 42 NONAME ; class CAppLaunchChecker * CApaScanningRuleBasedPlugIns::operator[](int) const
-	??1CApaScanningRuleBasedPlugIns@@UAE@XZ @ 43 NONAME ; CApaScanningRuleBasedPlugIns::~CApaScanningRuleBasedPlugIns(void)
-	?NewL@CApaScanningRuleBasedPlugIns@@SAPAV1@XZ @ 44 NONAME ; class CApaScanningRuleBasedPlugIns * CApaScanningRuleBasedPlugIns::NewL(void)
-	?ScanForRuleBasedPlugInsL@CApaScanningRuleBasedPlugIns@@QAEXXZ @ 45 NONAME ; void CApaScanningRuleBasedPlugIns::ScanForRuleBasedPlugInsL(void)
-	?ImplementationCount@CApaScanningRuleBasedPlugIns@@QBEHXZ @ 46 NONAME ; int CApaScanningRuleBasedPlugIns::ImplementationCount(void) const
-	?Reserved_1@CAppLaunchChecker@@EAEXXZ @ 47 NONAME ; void CAppLaunchChecker::Reserved_1(void)
-	?Reserved_2@CAppLaunchChecker@@EAEXXZ @ 48 NONAME ; void CAppLaunchChecker::Reserved_2(void)
-	?Reserved_3@CAppLaunchChecker@@EAEXXZ @ 49 NONAME ; void CAppLaunchChecker::Reserved_3(void)
-	??1CAppSidChecker@@UAE@XZ @ 50 NONAME ; CAppSidChecker::~CAppSidChecker(void)
-	?SetRescanCallBackL@CAppSidChecker@@UAEXABVTCallBack@@@Z @ 51 NONAME ; void CAppSidChecker::SetRescanCallBackL(class TCallBack const &)
-	?reserved1@CAppSidChecker@@EAEXXZ @ 52 NONAME ; void CAppSidChecker::reserved1(void)
-	?reserved2@CAppSidChecker@@EAEXXZ @ 53 NONAME ; void CAppSidChecker::reserved2(void)
-	?reserved3@CAppSidChecker@@EAEXXZ @ 54 NONAME ; void CAppSidChecker::reserved3(void)
-	X @ 55 NONAME ABSENT ; dummy entry for DriveList function used for Argus and above releases
-	X @ 56 NONAME ABSENT ; dummy entry for FindAllRemovableMediaAppsL function used for Argus and above releases
-	??1CApaAppUnInstallMonitor@@UAE@XZ @ 57 NONAME ; CApUnInstallMonitor::~CApUnInstallMonitor(void)
-	?Start@CApaAppUnInstallMonitor@@QAEXXZ @ 58 NONAME ; void CApUnInstallMonitor::Start(void)
-	?NewL@CApaAppUnInstallMonitor@@SAPAV1@PAVCApaAppListServer@@@Z @ 59 NONAME ; class CApUnInstallMonitor * CApUnInstallMonitor::NewL(class CApaAppListServer *)
-	??1CApfMimeContentPolicy@@UAE@XZ @ 60 NONAME ; CApfMimeContentPolicy::~CApfMimeContentPolicy(void)
-	?IsClosedExtension@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 61 NONAME ; int CApfMimeContentPolicy::IsClosedExtension(class TDesC16 const &)
-	?IsClosedFileL@CApfMimeContentPolicy@@QAEHAAVRFile@@@Z @ 62 NONAME ; int CApfMimeContentPolicy::IsClosedFileL(class RFile &)
-	?IsClosedFileL@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 63 NONAME ; int CApfMimeContentPolicy::IsClosedFileL(class TDesC16 const &)
-	?IsClosedType@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 64 NONAME ; int CApfMimeContentPolicy::IsClosedType(class TDesC16 const &)
-	?IsDRMEnvelopeL@CApfMimeContentPolicy@@QAEHAAVRFile@@@Z @ 65 NONAME ; int CApfMimeContentPolicy::IsDRMEnvelopeL(class RFile &)
-	?IsDRMEnvelopeL@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 66 NONAME ; int CApfMimeContentPolicy::IsDRMEnvelopeL(class TDesC16 const &)
-	?NewL@CApfMimeContentPolicy@@SAPAV1@AAVRFs@@@Z @ 67 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewL(class RFs &)
-	?NewL@CApfMimeContentPolicy@@SAPAV1@XZ @ 68 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewL(void)
-	?NewLC@CApfMimeContentPolicy@@SAPAV1@AAVRFs@@@Z @ 69 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(class RFs &)
-	?NewLC@CApfMimeContentPolicy@@SAPAV1@XZ @ 70 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(void)
-
--- a/localisation/apparchitecture/bwins/APFILE_UI_FRAMEWORKSU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-EXPORTS
-	??0CApaScanningFileRecognizer@@IAE@AAVRFs@@PAVMApaAppStarter@@@Z @ 1 NONAME
-	??1CApaAppLocatorProxy@@UAE@XZ @ 2 NONAME ABSENT
-	??1CApaScanningAppFinder@@UAE@XZ @ 3 NONAME ABSENT
-	??1CApaScanningFileRecognizer@@UAE@XZ @ 4 NONAME
-	?ConstructL@CApaScanningFileRecognizer@@IAEXXZ @ 5 NONAME
-	?DefaultAppInfoFileName@CApaScanningAppFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 6 NONAME ABSENT
-	?FindAllAppsL@CApaScanningAppFinder@@UAEXXZ @ 7 NONAME ABSENT
-	?FindAppL@CApaScanningAppFinder@@UAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 8 NONAME ABSENT
-	?GetAppCapabilityByUid@CApaAppLocatorProxy@@UAEHAAVTDes8@@VTUid@@@Z @ 9 NONAME ABSENT
-	?GetAppEntryByUid@CApaAppLocatorProxy@@UAEHAAVTApaAppEntry@@VTUid@@@Z @ 10 NONAME ABSENT
-	?NewL@CApaAppLocatorProxy@@SAPAV1@AAVRFs@@@Z @ 11 NONAME ABSENT
-	?NewL@CApaScanningAppFinder@@SAPAV1@ABVRFs@@@Z @ 12 NONAME ABSENT
-	?NewL@CApaScanningFileRecognizer@@SAPAV1@AAVRFs@@PAVMApaAppStarter@@@Z @ 13 NONAME
-	?NewLC@CApaScanningAppFinder@@SAPAV1@ABVRFs@@@Z @ 14 NONAME ABSENT
-	?NextL@CApaScanningAppFinder@@UAEHAAVTApaAppEntry@@@Z @ 15 NONAME ABSENT
-	?RecognizerCount@CApaScanningFileRecognizer@@QAEHXZ @ 16 NONAME
-	?RecognizerListLC@CApaScanningFileRecognizer@@QBEPAV?$CArrayFixFlat@VTRecognizer@CApaScanningFileRecognizer@@@@XZ @ 17 NONAME
-	?ScanForRecognizersL@CApaScanningFileRecognizer@@QAEXXZ @ 18 NONAME
-	?SetRecognizersFromListL@CApaScanningFileRecognizer@@QAEXABV?$CArrayFixFlat@VTRecognizer@CApaScanningFileRecognizer@@@@@Z @ 19 NONAME ABSENT
-	?TempPath@CApaScanningAppFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 20 NONAME ABSENT
-	?TempPath@Apfile@@SA?AVTPtrC16@@XZ @ 21 NONAME ABSENT
-	??ACApaScanningFileRecognizer@@QBEABVTRecognizer@0@H@Z @ 22 NONAME ; class CApaScanningFileRecognizer::TRecognizer const & CApaScanningFileRecognizer::operator[](int) const
-	?SetRecognizerL@CApaScanningFileRecognizer@@QAEXABVTRecognizer@1@@Z @ 23 NONAME ABSENT
-	?UpdateCounter@CApaScanningFileRecognizer@@QBEHXZ @ 24 NONAME
-	??1CApaScanningControlFinder@@UAE@XZ @ 25 NONAME ABSENT
-	?DefaultAppInfoFileName@CApaScanningControlFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 26 NONAME ABSENT
-	?FindAllAppsL@CApaScanningControlFinder@@UAEXXZ @ 27 NONAME ABSENT
-	?FindAppL@CApaScanningControlFinder@@UAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 28 NONAME ABSENT
-	?NewL@CApaScanningControlFinder@@SAPAV1@ABVRFs@@@Z @ 29 NONAME ABSENT
-	?NewLC@CApaScanningControlFinder@@SAPAV1@ABVRFs@@@Z @ 30 NONAME ABSENT
-	?NextL@CApaScanningControlFinder@@UAEHAAVTApaAppEntry@@@Z @ 31 NONAME ABSENT
-	?TempPath@CApaScanningControlFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 32 NONAME ABSENT
-	?SetEcomRecognizerL@CApaScanningFileRecognizer@@QAEXABVTRecognizer@1@@Z @ 33 NONAME
-	?SetEcomRecognizersFromListL@CApaScanningFileRecognizer@@QAEXABV?$CArrayFixFlat@VTRecognizer@CApaScanningFileRecognizer@@@@@Z @ 34 NONAME
-	?FindAllAppsL@CApaAppRegFinder@@QAEXXZ @ 35 NONAME ; void CApaAppRegFinder::FindAllAppsL(void)
-	?FindAppL@CApaAppRegFinder@@QAE?AV?$TBuf@$0BAA@@@ABVTDesC16@@VTUid@@@Z @ 36 NONAME ABSENT ; class TBuf<256> CApaAppRegFinder::FindAppL(class TDesC16 const &, class TUid)
-	?NewL@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 37 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewL(class RFs const &)
-	?NewLC@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 38 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewLC(class RFs const &)
-	?NextL@CApaAppRegFinder@@QAEHAAVTApaAppEntry@@ABV?$RPointerArray@VHBufC16@@@@@Z @ 39 NONAME ; int CApaAppRegFinder::NextL(class TApaAppEntry &, class RPointerArray<class HBufC16> const &)
-	?TempPath@CApaAppRegFinder@@UBE?AV?$TBuf@$0BAA@@@XZ @ 40 NONAME ABSENT ; class TBuf<256> CApaAppRegFinder::TempPath(void) const
-	??1CAppLaunchChecker@@UAE@XZ @ 41 NONAME ; CAppLaunchChecker::~CAppLaunchChecker(void)
-	??ACApaScanningRuleBasedPlugIns@@QBEPAVCAppLaunchChecker@@H@Z @ 42 NONAME ; class CAppLaunchChecker * CApaScanningRuleBasedPlugIns::operator[](int) const
-	??1CApaScanningRuleBasedPlugIns@@UAE@XZ @ 43 NONAME ; CApaScanningRuleBasedPlugIns::~CApaScanningRuleBasedPlugIns(void)
-	?NewL@CApaScanningRuleBasedPlugIns@@SAPAV1@XZ @ 44 NONAME ; class CApaScanningRuleBasedPlugIns * CApaScanningRuleBasedPlugIns::NewL(void)
-	?ScanForRuleBasedPlugInsL@CApaScanningRuleBasedPlugIns@@QAEXXZ @ 45 NONAME ; void CApaScanningRuleBasedPlugIns::ScanForRuleBasedPlugInsL(void)
-	?ImplementationCount@CApaScanningRuleBasedPlugIns@@QBEHXZ @ 46 NONAME ; int CApaScanningRuleBasedPlugIns::ImplementationCount(void) const
-	?Reserved_1@CAppLaunchChecker@@EAEXXZ @ 47 NONAME ; void CAppLaunchChecker::Reserved_1(void)
-	?Reserved_2@CAppLaunchChecker@@EAEXXZ @ 48 NONAME ; void CAppLaunchChecker::Reserved_2(void)
-	?Reserved_3@CAppLaunchChecker@@EAEXXZ @ 49 NONAME ; void CAppLaunchChecker::Reserved_3(void)
-	??1CAppSidChecker@@UAE@XZ @ 50 NONAME ; CAppSidChecker::~CAppSidChecker(void)
-	?SetRescanCallBackL@CAppSidChecker@@UAEXABVTCallBack@@@Z @ 51 NONAME ; void CAppSidChecker::SetRescanCallBackL(class TCallBack const &)
-	?reserved1@CAppSidChecker@@EAEXXZ @ 52 NONAME ; void CAppSidChecker::reserved1(void)
-	?reserved2@CAppSidChecker@@EAEXXZ @ 53 NONAME ; void CAppSidChecker::reserved2(void)
-	?reserved3@CAppSidChecker@@EAEXXZ @ 54 NONAME ; void CAppSidChecker::reserved3(void)
-	?DriveList@CApaAppRegFinder@@QBEABV?$RArray@VTDriveUnitInfo@@@@XZ @ 55 NONAME ; class RArray<class TDriveUnitInfo> const & CApaAppRegFinder::DriveList(void) const
-	?FindAllRemovableMediaAppsL@CApaAppRegFinder@@QAEXXZ @ 56 NONAME ; void CApaAppRegFinder::FindAllRemovableMediaAppsL(void)
-	??1CApaAppUnInstallMonitor@@UAE@XZ @ 57 NONAME ; CApaAppUnInstallMonitor::~CApaAppUnInstallMonitor(void)
-	?NewL@CApaAppUnInstallMonitor@@SAPAV1@PAVCApaAppListServer@@@Z @ 58 NONAME ; class CApaAppUnInstallMonitor * CApaAppUnInstallMonitor::NewL(class CApaAppListServer *)
-	?Start@CApaAppUnInstallMonitor@@QAEXXZ @ 59 NONAME ; void CApaAppUnInstallMonitor::Start(void)
-	??1CApfMimeContentPolicy@@UAE@XZ @ 60 NONAME ; CApfMimeContentPolicy::~CApfMimeContentPolicy(void)
-	?IsClosedExtension@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 61 NONAME ; int CApfMimeContentPolicy::IsClosedExtension(class TDesC16 const &)
-	?IsClosedFileL@CApfMimeContentPolicy@@QAEHAAVRFile@@@Z @ 62 NONAME ; int CApfMimeContentPolicy::IsClosedFileL(class RFile &)
-	?IsClosedFileL@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 63 NONAME ; int CApfMimeContentPolicy::IsClosedFileL(class TDesC16 const &)
-	?IsClosedType@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 64 NONAME ; int CApfMimeContentPolicy::IsClosedType(class TDesC16 const &)
-	?IsDRMEnvelopeL@CApfMimeContentPolicy@@QAEHAAVRFile@@@Z @ 65 NONAME ; int CApfMimeContentPolicy::IsDRMEnvelopeL(class RFile &)
-	?IsDRMEnvelopeL@CApfMimeContentPolicy@@QAEHABVTDesC16@@@Z @ 66 NONAME ; int CApfMimeContentPolicy::IsDRMEnvelopeL(class TDesC16 const &)
-	?NewL@CApfMimeContentPolicy@@SAPAV1@AAVRFs@@@Z @ 67 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewL(class RFs &)
-	?NewL@CApfMimeContentPolicy@@SAPAV1@XZ @ 68 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewL(void)
-	?NewLC@CApfMimeContentPolicy@@SAPAV1@AAVRFs@@@Z @ 69 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(class RFs &)
-	?NewLC@CApfMimeContentPolicy@@SAPAV1@XZ @ 70 NONAME ; class CApfMimeContentPolicy * CApfMimeContentPolicy::NewLC(void)
-	_E32Dll=__E32Dll	; Entry point for emulation
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/bwins/APGRFXU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,337 @@
+EXPORTS
+	??0RApaLsSession@@QAE@XZ @ 1 NONAME ; public: __thiscall RApaLsSession::RApaLsSession(void)
+	??0TApaPictureFactory@@QAE@PAVCApaProcess@@@Z @ 2 NONAME ; public: __thiscall TApaPictureFactory::TApaPictureFactory(class CApaProcess *)
+	??0TApaTask@@QAE@AAVRWsSession@@@Z @ 3 NONAME ; public: __thiscall TApaTask::TApaTask(class RWsSession &)
+	??0TApaTaskList@@QAE@AAVRWsSession@@@Z @ 4 NONAME ; public: __thiscall TApaTaskList::TApaTaskList(class RWsSession &)
+	??1CApaAppInfoFileReader@@UAE@XZ @ 5 NONAME ABSENT ; public: virtual __thiscall CApaAppInfoFileReader::~CApaAppInfoFileReader(void)
+	??1CApaAppInfoFileWriter@@UAE@XZ @ 6 NONAME ABSENT ; public: virtual __thiscall CApaAppInfoFileWriter::~CApaAppInfoFileWriter(void)
+	??1CApaAppList@@UAE@XZ @ 7 NONAME ABSENT ; public: virtual __thiscall CApaAppList::~CApaAppList(void)
+	??1CApaDoor@@UAE@XZ @ 8 NONAME ; public: virtual __thiscall CApaDoor::~CApaDoor(void)
+	??1CApaMaskedBitmap@@UAE@XZ @ 9 NONAME ; public: virtual __thiscall CApaMaskedBitmap::~CApaMaskedBitmap(void)
+	??1CApaWindowGroupName@@UAE@XZ @ 10 NONAME ; public: virtual __thiscall CApaWindowGroupName::~CApaWindowGroupName(void)
+	?AddCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 11 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddCaptionL(enum TLanguage,class TDesC16 const &)
+	?AddIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@@Z @ 12 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class CApaMaskedBitmap &)
+	?AddIconL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 13 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class TDesC16 const &)
+	?AppCount@RApaLsSession@@QBEHAAH@Z @ 14 NONAME ; public: int __thiscall RApaLsSession::AppCount(int &)const 
+	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 15 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::AppDataByUid(class TUid)const 
+	?AppEntry@CApaAppData@@QBE?AVTApaAppEntry@@XZ @ 16 NONAME ABSENT ; public: class TApaAppEntry  __thiscall CApaAppData::AppEntry(void)const 
+	?AppUid@CApaWindowGroupName@@QBE?AVTUid@@XZ @ 17 NONAME ; public: class TUid  __thiscall CApaWindowGroupName::AppUid(void)const 
+	?AppUidL@CApaDoor@@QBE?AVTUid@@XZ @ 18 NONAME ; public: class TUid  __thiscall CApaDoor::AppUidL(void)const 
+	?BringToForeground@TApaTask@@QAEXXZ @ 19 NONAME ; public: void __thiscall TApaTask::BringToForeground(void)
+	?Capability@CApaAppData@@QBEXAAVTDes8@@@Z @ 20 NONAME ABSENT ; public: void __thiscall CApaAppData::Capability(class TDes8 &)const 
+	?Capability@CApaAppInfoFileReader@@QBEXAAVTDes8@@@Z @ 21 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::Capability(class TDes8 &)const 
+	?Caption@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 22 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::Caption(void)const 
+	?CaptionL@CApaAppInfoFileReader@@QAE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 23 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAppInfoFileReader::CaptionL(enum TLanguage)
+	?Connect@RApaLsSession@@QAEHXZ @ 24 NONAME ; public: int __thiscall RApaLsSession::Connect(void)
+	?ConstructFromWgIdL@CApaWindowGroupName@@QAEXH@Z @ 25 NONAME ; public: void __thiscall CApaWindowGroupName::ConstructFromWgIdL(int)
+	?Count@CApaAppList@@QBEHXZ @ 26 NONAME ABSENT ; public: int __thiscall CApaAppList::Count(void)const 
+	?CreateMaskedBitmapL@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 27 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppInfoFileReader::CreateMaskedBitmapL(int)
+	?CycleTasks@TApaTaskList@@QAEHVTUid@@W4TCycleDirection@1@@Z @ 28 NONAME ; public: int __thiscall TApaTaskList::CycleTasks(class TUid,enum TApaTaskList::TCycleDirection)
+	?DocName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 29 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::DocName(void)const 
+	?DocNameIsAFile@CApaWindowGroupName@@QBEHXZ @ 30 NONAME ; public: int __thiscall CApaWindowGroupName::DocNameIsAFile(void)const 
+	?DocumentL@CApaDoor@@QAEPAVCApaDocument@@H@Z @ 31 NONAME ; public: class CApaDocument * __thiscall CApaDoor::DocumentL(int)
+	?EmbeddableAppCount@RApaLsSession@@QBEHAAH@Z @ 32 NONAME ; public: int __thiscall RApaLsSession::EmbeddableAppCount(int &)const 
+	?EndTask@TApaTask@@QAEXXZ @ 33 NONAME ; public: void __thiscall TApaTask::EndTask(void)
+	?Exists@TApaTask@@QBEHXZ @ 34 NONAME ; public: int __thiscall TApaTask::Exists(void)const 
+	?ExternalizeL@CApaMaskedBitmap@@QBEXAAVRWriteStream@@@Z @ 35 NONAME ; public: void __thiscall CApaMaskedBitmap::ExternalizeL(class RWriteStream &)const 
+	?FindApp@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 36 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TDesC16 const &)
+	?FindApp@TApaTaskList@@QAE?AVTApaTask@@VTUid@@@Z @ 37 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TUid)
+	?FindByAppUid@CApaWindowGroupName@@SAXVTUid@@AAVRWsSession@@AAH@Z @ 38 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByAppUid(class TUid,class RWsSession &,int &)
+	?FindByCaption@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 39 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByCaption(class TDesC16 const &,class RWsSession &,int &)
+	?FindByDocName@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 40 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByDocName(class TDesC16 const &,class RWsSession &,int &)
+	?FindByPos@TApaTaskList@@QAE?AVTApaTask@@H@Z @ 41 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindByPos(int)
+	?FindDoc@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 42 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindDoc(class TDesC16 const &)
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 43 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(void)const 
+	?GetAllApps@RApaLsSession@@QBEHXZ @ 44 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(void)const 
+	?GetAppCapability@RApaLsSession@@QBEHAAVTDes8@@VTUid@@@Z @ 45 NONAME ; public: int __thiscall RApaLsSession::GetAppCapability(class TDes8 &,class TUid)const 
+	?GetAppInfo@RApaLsSession@@QBEHAAVTApaAppInfo@@VTUid@@@Z @ 46 NONAME ; public: int __thiscall RApaLsSession::GetAppInfo(class TApaAppInfo &,class TUid)const 
+	?GetEmbeddableApps@RApaLsSession@@QBEHXZ @ 47 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(void)const 
+	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@@Z @ 48 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &)const 
+	?InternalizeL@CApaMaskedBitmap@@QAEXAAVRReadStream@@@Z @ 49 NONAME ; public: void __thiscall CApaMaskedBitmap::InternalizeL(class RReadStream &)
+	?IsBusy@CApaWindowGroupName@@QBEHXZ @ 50 NONAME ; public: int __thiscall CApaWindowGroupName::IsBusy(void)const 
+	?IsSystem@CApaWindowGroupName@@QBEHXZ @ 51 NONAME ; public: int __thiscall CApaWindowGroupName::IsSystem(void)const 
+	?KillTask@TApaTask@@QAEXXZ @ 52 NONAME ; public: void __thiscall TApaTask::KillTask(void)
+	?Mask@CApaMaskedBitmap@@QBEPAVCFbsBitmap@@XZ @ 53 NONAME ; public: class CFbsBitmap * __thiscall CApaMaskedBitmap::Mask(void)const 
+	?New@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@PAVHBufC16@@@Z @ 54 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::New(class RWsSession const &,class HBufC16 *)
+	?NewL@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 55 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewL(class RFs &,class TDesC16 const &,class TUid)
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppRegFinder@@HH@Z @ 56 NONAME ABSENT ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppRegFinder *, int, int)
+	?NewL@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 57 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CApaDocument &,class TSize const &)
+	?NewL@CApaDoor@@SAPAV1@AAVRFs@@ABVCStreamStore@@VTStreamId@@AAVCApaProcess@@@Z @ 58 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CStreamStore const &,class TStreamId,class CApaProcess &)
+	?NewL@CApaMaskedBitmap@@SAPAV1@PBV1@@Z @ 59 NONAME ; class CApaMaskedBitmap * CApaMaskedBitmap::NewL(class CApaMaskedBitmap const *)
+	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 60 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &)
+	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 61 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,class TDesC16 const &)
+	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 62 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,int)
+	?NewLC@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 63 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewLC(class RFs &,class TDesC16 const &,class TUid)
+	?NewLC@CApaAppInfoFileWriter@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 64 NONAME ABSENT ; public: static class CApaAppInfoFileWriter * __cdecl CApaAppInfoFileWriter::NewLC(class RFs &,class TDesC16 const &,class TUid)
+	?NewLC@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 65 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewLC(class RFs &,class CApaDocument &,class TSize const &)
+	?NewLC@CApaMaskedBitmap@@SAPAV1@XZ @ 66 NONAME ; public: static class CApaMaskedBitmap * __cdecl CApaMaskedBitmap::NewLC(void)
+	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 67 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &)
+	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 68 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,class TDesC16 const &)
+	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 69 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,int)
+	?NewPictureL@TApaPictureFactory@@UBEXAAVTPictureHeader@@ABVCStreamStore@@@Z @ 70 NONAME ; public: virtual void __thiscall TApaPictureFactory::NewPictureL(class TPictureHeader &,class CStreamStore const &)const 
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@@Z @ 71 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *)const 
+	?PurgeL@CApaAppList@@QAEXXZ @ 72 NONAME ABSENT ; public: void __thiscall CApaAppList::PurgeL(void)
+	?RespondsToShutdownEvent@CApaWindowGroupName@@QBEHXZ @ 73 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToShutdownEvent(void)const 
+	?RespondsToSwitchFilesEvent@CApaWindowGroupName@@QBEHXZ @ 74 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToSwitchFilesEvent(void)const 
+	?RestoreL@CApaDoor@@QAEXABVCStreamStore@@VTStreamId@@@Z @ 75 NONAME ; public: void __thiscall CApaDoor::RestoreL(class CStreamStore const &,class TStreamId)
+	?SendKey@TApaTask@@QAEXABUTKeyEvent@@@Z @ 76 NONAME ; public: void __thiscall TApaTask::SendKey(struct TKeyEvent const &)
+	?SendKey@TApaTask@@QAEXHH@Z @ 77 NONAME ; public: void __thiscall TApaTask::SendKey(int,int)
+	?SendMessage@TApaTask@@QAEHVTUid@@ABVTDesC8@@@Z @ 78 NONAME ; public: int __thiscall TApaTask::SendMessage(class TUid,class TDesC8 const &)
+	?SendSystemEvent@TApaTask@@QAEXW4TApaSystemEvent@@@Z @ 79 NONAME ; public: void __thiscall TApaTask::SendSystemEvent(enum TApaSystemEvent)
+	?SendToBackground@TApaTask@@QAEXXZ @ 80 NONAME ; public: void __thiscall TApaTask::SendToBackground(void)
+	?SetAppUid@CApaWindowGroupName@@QAEXVTUid@@@Z @ 81 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppUid(class TUid)
+	?SetBusy@CApaWindowGroupName@@QAEXH@Z @ 82 NONAME ; public: void __thiscall CApaWindowGroupName::SetBusy(int)
+	?SetCapability@CApaAppInfoFileWriter@@QAEHABVTDesC8@@@Z @ 83 NONAME ABSENT ; public: int __thiscall CApaAppInfoFileWriter::SetCapability(class TDesC8 const &)
+	?SetCaptionL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 84 NONAME ; public: void __thiscall CApaWindowGroupName::SetCaptionL(class TDesC16 const &)
+	?SetDocNameIsAFile@CApaWindowGroupName@@QAEXH@Z @ 85 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameIsAFile(int)
+	?SetDocNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 86 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameL(class TDesC16 const &)
+	?SetFormatToGlassL@CApaDoor@@QAEXXZ @ 87 NONAME ; public: void __thiscall CApaDoor::SetFormatToGlassL(void)
+	?SetFormatToIconL@CApaDoor@@QAEXXZ @ 88 NONAME ; public: void __thiscall CApaDoor::SetFormatToIconL(void)
+	?SetFormatToTemporaryIconL@CApaDoor@@QAEXH@Z @ 89 NONAME ; public: void __thiscall CApaDoor::SetFormatToTemporaryIconL(int)
+	?SetRespondsToShutdownEvent@CApaWindowGroupName@@QAEXH@Z @ 90 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToShutdownEvent(int)
+	?SetRespondsToSwitchFilesEvent@CApaWindowGroupName@@QAEXH@Z @ 91 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToSwitchFilesEvent(int)
+	?SetSystem@CApaWindowGroupName@@QAEXH@Z @ 92 NONAME ; public: void __thiscall CApaWindowGroupName::SetSystem(int)
+	?SetWgId@TApaTask@@QAEXH@Z @ 93 NONAME ; public: void __thiscall TApaTask::SetWgId(int)
+	?SetWindowGroupName@CApaWindowGroupName@@QAEXPAVHBufC16@@@Z @ 94 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupName(class HBufC16 *)
+	?SetWindowGroupName@CApaWindowGroupName@@QBEHAAVRWindowGroup@@@Z @ 95 NONAME ; public: int __thiscall CApaWindowGroupName::SetWindowGroupName(class RWindowGroup &)const 
+	?SetWindowGroupNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 96 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupNameL(class TDesC16 const &)
+	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@@Z @ 97 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &)
+	?StoreL@CApaAppInfoFileWriter@@QAEXXZ @ 98 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::StoreL(void)
+	?StretchDrawL@CApaAppInfoFileReader@@SAXPAVCFbsBitmap@@0VTSize@@@Z @ 99 NONAME ABSENT ; public: static void __cdecl CApaAppInfoFileReader::StretchDrawL(class CFbsBitmap *,class CFbsBitmap *,class TSize)
+	?SwitchCreateFile@TApaTask@@QAEHABVTDesC16@@@Z @ 100 NONAME ; public: int __thiscall TApaTask::SwitchCreateFile(class TDesC16 const &)
+	?SwitchOpenFile@TApaTask@@QAEHABVTDesC16@@@Z @ 101 NONAME ; public: int __thiscall TApaTask::SwitchOpenFile(class TDesC16 const &)
+	?ThreadId@TApaTask@@QBE?AVTThreadId@@XZ @ 102 NONAME ; public: class TThreadId  __thiscall TApaTask::ThreadId(void)const 
+	?UpdateCounter@CApaAppList@@QBEHXZ @ 103 NONAME ABSENT ; public: int __thiscall CApaAppList::UpdateCounter(void)const 
+	?UpdateL@CApaAppList@@QAEXXZ @ 104 NONAME ABSENT ; public: void __thiscall CApaAppList::UpdateL(void)
+	?Version@RApaLsSession@@QBE?AVTVersion@@XZ @ 105 NONAME ; public: class TVersion  __thiscall RApaLsSession::Version(void)const 
+	?WgId@TApaTask@@QBEHXZ @ 106 NONAME ; public: int __thiscall TApaTask::WgId(void)const 
+	?WindowGroupName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 107 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::WindowGroupName(void)const 
+	??1CApaSystemControlList@@UAE@XZ @ 108 NONAME ; public: virtual __thiscall CApaSystemControlList::~CApaSystemControlList(void)
+	?Caption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 109 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::Caption(void)const 
+	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@H@Z @ 110 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(int)const 
+	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@VTUid@@@Z @ 111 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(class TUid)const 
+	?Count@CApaSystemControlList@@QBEHXZ @ 112 NONAME ; public: int __thiscall CApaSystemControlList::Count(void)const 
+	?CreateL@CApaSystemControl@@QAEXXZ @ 113 NONAME ; public: void __thiscall CApaSystemControl::CreateL(void)
+	?FileName@CApaSystemControl@@QBE?AV?$TBuf@$0BAA@@@XZ @ 114 NONAME ; public: class TBuf<256>  __thiscall CApaSystemControl::FileName(void)const 
+	?Icon@CApaSystemControl@@QBEPAVCApaMaskedBitmap@@XZ @ 115 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaSystemControl::Icon(void)const 
+	?Index@CApaSystemControlList@@QBEHVTUid@@@Z @ 116 NONAME ; public: int __thiscall CApaSystemControlList::Index(class TUid)const 
+	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@AAVCApaAppFinder@@ABVTDesC16@@@Z @ 117 NONAME ABSENT ; public: static class CApaSystemControlList * __cdecl CApaSystemControlList::NewL(class RFs &,class CApaAppFinder &,class TDesC16 const &)
+	?Type@CApaSystemControl@@QBE?AVTUid@@XZ @ 118 NONAME ; public: class TUid  __thiscall CApaSystemControl::Type(void)const 
+	?UpdateL@CApaSystemControlList@@QAEXXZ @ 119 NONAME ; public: void __thiscall CApaSystemControlList::UpdateL(void)
+	?AddDataTypeL@CApaAppInfoFileWriter@@QAEXABVTDataTypeWithPriority@@@Z @ 120 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddDataTypeL(class TDataTypeWithPriority const &)
+	?AppForDataType@RApaLsSession@@QBEHABVTDataType@@AAVTUid@@@Z @ 121 NONAME ; public: int __thiscall RApaLsSession::AppForDataType(class TDataType const &,class TUid &)const 
+	?AppForDocument@RApaLsSession@@QBEHABVTDesC16@@AAVTUid@@AAVTDataType@@@Z @ 122 NONAME ; public: int __thiscall RApaLsSession::AppForDocument(class TDesC16 const &,class TUid &,class TDataType &)const 
+	?CreateDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 123 NONAME ; public: int __thiscall RApaLsSession::CreateDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
+	?DataType@CApaAppData@@QBEJABVTDataType@@@Z @ 124 NONAME ABSENT ; long CApaAppData::DataType(class TDataType const &) const
+	?DataTypesSupportedL@CApaAppInfoFileReader@@QBEXAAV?$CArrayFix@VTDataTypeWithPriority@@@@@Z @ 125 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::DataTypesSupportedL(class CArrayFix<class TDataTypeWithPriority> &)const 
+	?GetAcceptedConfidence@RApaLsSession@@QBEHAAH@Z @ 126 NONAME ; public: int __thiscall RApaLsSession::GetAcceptedConfidence(int &)const 
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@HAAVCApaMaskedBitmap@@@Z @ 127 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,int,class CApaMaskedBitmap &)const 
+	?GetMaxDataBufSize@RApaLsSession@@QBEHAAH@Z @ 128 NONAME ; public: int __thiscall RApaLsSession::GetMaxDataBufSize(int &)const 
+	?GetSupportedDataTypesL@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTDataType@@@@@Z @ 129 NONAME ; public: int __thiscall RApaLsSession::GetSupportedDataTypesL(class CArrayFixFlat<class TDataType> &)const 
+	?IsProgram@RApaLsSession@@QBEHABVTDesC16@@AAH@Z @ 130 NONAME ; public: int __thiscall RApaLsSession::IsProgram(class TDesC16 const &,int &)const 
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 131 NONAME ABSENT ; public: class TUid  __thiscall CApaAppList::PreferredDataHandlerL(class TDataType const &)const 
+	?RecognizeData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVTDataRecognitionResult@@@Z @ 132 NONAME ; public: int __thiscall RApaLsSession::RecognizeData(class TDesC16 const &,class TDesC8 const &,class TDataRecognitionResult &)const 
+	?RecognizeSpecificData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@ABVTDataType@@AAH@Z @ 133 NONAME ; public: int __thiscall RApaLsSession::RecognizeSpecificData(class TDesC16 const &,class TDesC8 const &,class TDataType const &,int &)const 
+	?SetAcceptedConfidence@RApaLsSession@@QAEHH@Z @ 134 NONAME ; public: int __thiscall RApaLsSession::SetAcceptedConfidence(int)
+	?SetMaxDataBufSize@RApaLsSession@@QAEHH@Z @ 135 NONAME ; public: int __thiscall RApaLsSession::SetMaxDataBufSize(int)
+	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@AAVTThreadId@@W4TLaunchType@1@@Z @ 136 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TThreadId &,enum RApaLsSession::TLaunchType)
+	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@ABVTDataType@@AAVTThreadId@@W4TLaunchType@1@@Z @ 137 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TDataType const &,class TThreadId &,enum RApaLsSession::TLaunchType)
+	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 138 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
+	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 139 NONAME ABSENT ; public: void __thiscall CApaAppList::StartIdleUpdateL(void)
+	??1CApaAppListNotifier@@UAE@XZ @ 140 NONAME ; public: virtual __thiscall CApaAppListNotifier::~CApaAppListNotifier(void)
+	?NewL@CApaAppListNotifier@@SAPAV1@PAVMApaAppListServObserver@@W4TPriority@CActive@@@Z @ 141 NONAME ; public: static class CApaAppListNotifier * __cdecl CApaAppListNotifier::NewL(class MApaAppListServObserver *,enum CActive::TPriority)
+	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 142 NONAME ABSENT ; public: void __thiscall CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@VTSize@@AAVCApaMaskedBitmap@@@Z @ 143 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,class TSize,class CApaMaskedBitmap &)const 
+	?GetAppIconSizes@RApaLsSession@@QBEHVTUid@@AAV?$CArrayFixFlat@VTSize@@@@@Z @ 144 NONAME ; public: int __thiscall RApaLsSession::GetAppIconSizes(class TUid,class CArrayFixFlat<class TSize> &)const 
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@VTSize@@@Z @ 145 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(class TSize)const 
+	?IconSizesL@CApaAppData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 146 NONAME ABSENT ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppData::IconSizesL(void)const 
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@H@Z @ 147 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(int)const 
+	?Hidden@CApaWindowGroupName@@QBEHXZ @ 148 NONAME ; int CApaWindowGroupName::Hidden(void) const
+	?SetHidden@CApaWindowGroupName@@QAEXH@Z @ 149 NONAME ; public: void __thiscall CApaWindowGroupName::SetHidden(int)
+	?AddViewCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@VTUid@@@Z @ 150 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewCaptionL(enum TLanguage,class TDesC16 const &,class TUid)
+	?AddViewIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@VTUid@@@Z @ 151 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewIconL(class CApaMaskedBitmap &,class TUid)
+	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 152 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid)
+	?CaptionL@CApaAIFViewData@@QBE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 153 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAIFViewData::CaptionL(enum TLanguage)const 
+	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0ABVTSize@@AAVCApaMaskedBitmap@@@Z @ 154 NONAME ; public: int __thiscall RApaLsSession::GetAppViewIcon(class TUid,class TUid,class TSize const &,class CApaMaskedBitmap &)const 
+	?GetAppViews@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTApaAppViewInfo@@@@VTUid@@@Z @ 155 NONAME ; public: int __thiscall RApaLsSession::GetAppViews(class CArrayFixFlat<class TApaAppViewInfo> &,class TUid)const 
+	?GetViewsL@CApaAppInfoFileReader@@QBEXAAV?$CArrayPtr@VCApaAIFViewData@@@@@Z @ 156 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetViewsL(class CArrayPtr<class CApaAIFViewData> &)const 
+	?Icon@CApaAppViewData@@QBEPAVCApaMaskedBitmap@@ABVTSize@@@Z @ 157 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppViewData::Icon(class TSize const &)const 
+	?IconByIndexL@CApaAIFViewData@@QBEPAVCApaMaskedBitmap@@H@Z @ 158 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAIFViewData::IconByIndexL(int)const 
+	?IconSizesL@CApaAppViewData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 159 NONAME ABSENT ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppViewData::IconSizesL(void)const 
+	?NumberOfIcons@CApaAIFViewData@@QBEHXZ @ 160 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::NumberOfIcons(void)const 
+	?StoreViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 161 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::StoreViewL(class TUid)
+	?Uid@CApaAppViewData@@QBE?AVTUid@@XZ @ 162 NONAME ABSENT ; public: class TUid  __thiscall CApaAppViewData::Uid(void)const 
+	?ViewUid@CApaAIFViewData@@QBE?AVTUid@@XZ @ 163 NONAME ABSENT ; public: class TUid  __thiscall CApaAIFViewData::ViewUid(void)const 
+	?Views@CApaAppData@@QBEPAV?$CArrayPtrFlat@VCApaAppViewData@@@@XZ @ 164 NONAME ABSENT ; public: class CArrayPtrFlat<class CApaAppViewData> * __thiscall CApaAppData::Views(void)const 
+	?AddOwnedFileL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 165 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddOwnedFileL(class TDesC16 const &)
+	?GetOwnedFilesL@CApaAppInfoFileReader@@QBEXAAVCDesC16Array@@@Z @ 166 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetOwnedFilesL(class CDesC16Array &)const 
+	?OwnedFiles@CApaAppData@@QBEPAVCDesC16Array@@XZ @ 167 NONAME ABSENT ; public: class CDesC16Array * __thiscall CApaAppData::OwnedFiles(void)const 
+	?GetAppOwnedFiles@RApaLsSession@@QBEHAAVCDesC16Array@@VTUid@@@Z @ 168 NONAME ; public: int __thiscall RApaLsSession::GetAppOwnedFiles(class CDesC16Array &,class TUid)const 
+	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@@Z @ 169 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &,class TThreadId &)
+	?GetAifFileName@AppInfoFileUtils@@SAXABVRFs@@AAVTDes16@@@Z @ 170 NONAME ABSENT ; public: static void __cdecl AppInfoFileUtils::GetAifFileName(class RFs const &,class TDes16 &)
+	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@H@Z @ 171 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid,int)
+	?CanUseScreenMode@CApaAppData@@QAEHH@Z @ 172 NONAME ABSENT ; public: int __thiscall CApaAppData::CanUseScreenMode(int)
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 173 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(int)const 
+	?GetAllApps@RApaLsSession@@QBEHH@Z @ 174 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(int)const 
+	?GetEmbeddableApps@RApaLsSession@@QBEHH@Z @ 175 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(int)const 
+	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@H@Z @ 176 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &,int)const 
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@H@Z @ 177 NONAME ABSENT ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *,int)const 
+	?ScreenMode@CApaAIFViewData@@QBEHXZ @ 178 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::ScreenMode(void)const 
+	?ScreenMode@CApaAppViewData@@QBEHXZ @ 179 NONAME ABSENT ; public: int __thiscall CApaAppViewData::ScreenMode(void)const 
+	?ShortCaption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 180 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::ShortCaption(void)const 
+	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 181 NONAME ABSENT ; public: int __thiscall CApaAppList::IsIdleUpdateComplete(void)const 
+	?IsAppReady@CApaWindowGroupName@@QBEHXZ @ 182 NONAME ; public: int __thiscall CApaWindowGroupName::IsAppReady(void)const 
+	?SetAppReady@CApaWindowGroupName@@QAEXH@Z @ 183 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppReady(int)
+	?InitListL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 184 NONAME ABSENT ; public: void __thiscall CApaAppList::InitListL(class MApaAppListObserver *)
+	?NumberOfBitmaps@CApaAppInfoFileReader@@QBEHXZ @ 185 NONAME ABSENT ; public: int __thiscall CApaAppInfoFileReader::NumberOfBitmaps(void)const 
+	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 186 NONAME ABSENT ; public: int __thiscall CApaAppList::IsFirstScanComplete(void)const 
+	?SetMaskBitmap@CApaMaskedBitmap@@QAEXPAVCFbsBitmap@@@Z @ 187 NONAME ; public: void __thiscall CApaMaskedBitmap::SetMaskBitmap(class CFbsBitmap *)
+	?GetAppInfo_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@VTUid@@@Z @ 188 NONAME ABSENT ; int RApaLsSession::GetAppInfo_7_0(class TApaAppInfo_7_0 &, class TUid) const
+	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@@Z @ 189 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &) const
+	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@H@Z @ 190 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &, int) const
+	?GetIconInfo@CApaAppData@@QBEXAAH0@Z @ 191 NONAME ABSENT ; void CApaAppData::GetIconInfo(int &, int &) const
+	?NumberOfOwnDefinedIcons@RApaLsSession@@QBEHVTUid@@AAH@Z @ 192 NONAME ; public: int __thiscall RApaLsSession::NumberOfOwnDefinedIcons(class TUid,int &)const 
+	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@@Z @ 193 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &)const 
+	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@H@Z @ 194 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &,int)const 
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppFinder@@PAVCApaAppRegFinder@@H@Z @ 195 NONAME ABSENT ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppFinder *, class CApaAppRegFinder *, int)	
+	?DefaultScreenNumber@CApaAppData@@QBEIXZ @ 196 NONAME ABSENT ; unsigned int CApaAppData::DefaultScreenNumber(void) const
+	?GetFilteredApps@RApaLsSession@@QBEHII@Z @ 197 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int) const
+	?GetFilteredApps@RApaLsSession@@QBEHIIH@Z @ 198 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int, int) const
+	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 199 NONAME ABSENT ; int CApaAppData::RegistrationFileUsed(void) const
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAPAVHBufC16@@@Z @ 200 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class HBufC16 * &) const
+	?IconFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 201 NONAME ABSENT ; class TPtrC16 CApaAppData::IconFileName(void) const
+	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0AAPAVHBufC16@@@Z @ 202 NONAME ; int RApaLsSession::GetAppViewIcon(class TUid, class TUid, class HBufC16 * &) const
+	?IconFileName@CApaAppViewData@@QBE?AVTPtrC16@@XZ @ 203 NONAME ABSENT ; class TPtrC16 CApaAppViewData::IconFileName(void) const
+	?NonMbmIconFile@CApaAppData@@QBEHXZ @ 204 NONAME ABSENT ; int CApaAppData::NonMbmIconFile(void) const
+	?NonMbmIconFile@CApaAppViewData@@QBEHXZ @ 205 NONAME ABSENT ; int CApaAppViewData::NonMbmIconFile(void) const
+	?StartupApaServer@@YAHAAVMApaAppStarter@@@Z @ 206 NONAME ABSENT ; int StartupApaServer(class MApaAppStarter &)
+	?StartupApaServerProcess@@YAHXZ @ 207 NONAME ; int StartupApaServerProcess(void)
+	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@@Z @ 208 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &)
+	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@@Z @ 209 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid)
+	?InsertDataMappingIfHigher@RApaLsSession@@QAEHABVTDataType@@JVTUid@@AAH@Z @ 210 NONAME ; int RApaLsSession::InsertDataMappingIfHigher(class TDataType const &, long, class TUid, int &)
+	?ApplicationLanguage@CApaAppData@@QBE?AW4TLanguage@@XZ @ 211 NONAME ABSENT ; enum TLanguage CApaAppData::ApplicationLanguage(void) const
+	?ApplicationLanguage@RApaLsSession@@QBEHVTUid@@AAW4TLanguage@@@Z @ 212 NONAME ; int RApaLsSession::ApplicationLanguage(class TUid, enum TLanguage &) const
+	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@@Z @ 213 NONAME ; class CApaSystemControlList * CApaSystemControlList::NewL(class RFs &)
+	?AppForDataTypeAndService@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 214 NONAME ; int RApaLsSession::AppForDataTypeAndService(class TDataType const &, class TUid, class TUid &) const
+	?AppForDocumentAndService@RApaLsSession@@QBEHABVRFile@@VTUid@@AAV3@AAVTDataType@@@Z @ 215 NONAME ; int RApaLsSession::AppForDocumentAndService(class RFile const &, class TUid, class TUid &, class TDataType &) const
+	?AppForDocumentAndService@RApaLsSession@@QBEHABVTDesC16@@VTUid@@AAV3@AAVTDataType@@@Z @ 216 NONAME ; int RApaLsSession::AppForDocumentAndService(class TDesC16 const &, class TUid, class TUid &, class TDataType &) const
+	?GetAppServiceOpaqueDataLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@0@Z @ 217 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServiceOpaqueDataLC(class TUid, class TUid) const
+	?GetAppServicesL@RApaLsSession@@QBEXVTUid@@AAV?$CArrayFixFlat@VTUid@@@@@Z @ 218 NONAME ; void RApaLsSession::GetAppServicesL(class TUid, class CArrayFixFlat<class TUid> &) const
+	?GetAppServicesLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 219 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServicesLC(class TUid) const
+	?GetServerApps@RApaLsSession@@QBEHVTUid@@@Z @ 220 NONAME ; int RApaLsSession::GetServerApps(class TUid) const
+	?GetServerApps@RApaLsSession@@QBEHVTUid@@H@Z @ 221 NONAME ; int RApaLsSession::GetServerApps(class TUid, int) const
+	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 222 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid) const
+	?ImplementsService@CApaAppData@@QBEHVTUid@@@Z @ 223 NONAME ABSENT ; int CApaAppData::ImplementsService(class TUid) const
+	?OpaqueData@TApaAppServiceInfo@@QBEABVTDesC8@@XZ @ 224 NONAME ABSENT ; class TDesC8 const & TApaAppServiceInfo::OpaqueData(void) const
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@AAH@Z @ 225 NONAME ABSENT ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *, int &) const
+	?ServiceArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 226 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceArrayBufferL(class TUid) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 227 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid) const
+	?ServiceOpaqueDataBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@0@Z @ 228 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceOpaqueDataBufferL(class TUid, class TUid) const
+	?ServiceUidBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 229 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceUidBufferL(class TUid) const
+	?Uid@TApaAppServiceInfo@@QBE?AVTUid@@XZ @ 230 NONAME ABSENT ; class TUid TApaAppServiceInfo::Uid(void) const
+	?StartDocument@RApaLsSession@@QAEHAAVRFile@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 231 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TThreadId &, class TRequestStatus *)
+	?CreateMaskedBitmapByIndexLC@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 232 NONAME ABSENT ; class CApaMaskedBitmap * CApaAppInfoFileReader::CreateMaskedBitmapByIndexLC(int)
+	?CancelListPopulationCompleteObserver@RApaLsSession@@QBEHXZ @ 233 NONAME ; int RApaLsSession::CancelListPopulationCompleteObserver(void) const
+	?RegisterListPopulationCompleteObserver@RApaLsSession@@QBEXAAVTRequestStatus@@@Z @ 234 NONAME ; void RApaLsSession::RegisterListPopulationCompleteObserver(class TRequestStatus &) const
+	?NewInterimFormatFileWriterLC@ForJavaMIDletInstaller@@SAPAVCApaAppInfoFileWriter@@AAVRFs@@ABVTDesC16@@VTUid@@KH@Z @ 235 NONAME ABSENT ; class CApaAppInfoFileWriter * ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(class RFs &, class TDesC16 const &, class TUid, unsigned long, int)
+	?CheckInterimFormatFileNotCorruptL@ForJavaMIDletInstaller@@SAXAAVRFile@@@Z @ 236 NONAME ABSENT ; void ForJavaMIDletInstaller::CheckInterimFormatFileNotCorruptL(class RFile &)
+	?RegisterJavaMIDletViaIterimFormat@RApaLsSession@@QAEHABVTDesC16@@AAVRFile@@@Z @ 237 NONAME ABSENT ; int RApaLsSession::RegisterJavaMIDletViaIterimFormat(class TDesC16 const &, class RFile &)
+	?DeregisterJavaMIDlet@RApaLsSession@@QAEHABVTDesC16@@@Z @ 238 NONAME ABSENT ; int RApaLsSession::DeregisterJavaMIDlet(class TDesC16 const &)
+	?AppForDocument@RApaLsSession@@QBEHABVRFile@@AAVTUid@@AAVTDataType@@@Z @ 239 NONAME ; int RApaLsSession::AppForDocument(class RFile const &, class TUid &, class TDataType &) const
+	?ClearFsSession@RApaLsSession@@SAXXZ @ 240 NONAME ; void RApaLsSession::ClearFsSession(void)
+	?FsSession@RApaLsSession@@SAPAVRFs@@XZ @ 241 NONAME ; class RFs * RApaLsSession::FsSession(void)
+	?RecognizeData@RApaLsSession@@QBEHABVRFile@@AAVTDataRecognitionResult@@@Z @ 242 NONAME ; int RApaLsSession::RecognizeData(class RFile const &, class TDataRecognitionResult &) const	
+	?RecognizeSpecificData@RApaLsSession@@QBEHABVRFile@@ABVTDataType@@AAH@Z @ 243 NONAME ; int RApaLsSession::RecognizeSpecificData(class RFile const &, class TDataType const &, int &) const
+	?SetFsSessionL@RApaLsSession@@SAXAAVRFs@@@Z @ 244 NONAME ; void RApaLsSession::SetFsSessionL(class RFs &)
+	?StartDocument@RApaLsSession@@QAEHAAVRFile@@ABVTDataType@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 245 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TDataType const &, class TThreadId &, class TRequestStatus *)
+	?StartDocument@RApaLsSession@@QAEHAAVRFile@@VTUid@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 246 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TUid, class TThreadId &, class TRequestStatus *)
+	?GetPreferredBufSize@RApaLsSession@@QBEHAAH@Z @ 247 NONAME ; public: int __thiscall RApaLsSession::GetPreferredBufSize(int &)const 
+	?GetJavaMIDletInfoL@ForJavaMIDletInstaller@@SAXAAVRFs@@ABVTDesC16@@AAK2@Z @ 248 NONAME ABSENT ; void ForJavaMIDletInstaller::GetJavaMIDletInfoL(class RFs &, class TDesC16 const &, unsigned long &, unsigned long &)
+	?HandleAsRegistrationFile@ApaUtils@@SAHABVTUidType@@@Z @ 249 NONAME ABSENT ; int ApaUtils::HandleAsRegistrationFile(class TUidType const &)
+	?DataTypes@TApaAppServiceInfo@@QBEABV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 250 NONAME ABSENT ; class CArrayFixFlat<class TDataTypeWithPriority> const & TApaAppServiceInfo::DataTypes(void) const
+	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@ABVTDataType@@@Z @ 251 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid, class TDataType const &) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@ABVTDataType@@@Z @ 252 NONAME ABSENT ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid, class TDataType const &) const
+	?Close@RApaLsSession@@QAEXXZ @ 253 NONAME ; void RApaLsSession::Close(void)
+	??0MApaAppListServObserver@@IAE@XZ @ 254 NONAME ; MApaAppListServObserver::MApaAppListServObserver(void)
+	??0TApaPictureFactory@@IAE@XZ @ 255 NONAME ; TApaPictureFactory::TApaPictureFactory(void)
+	?MApaAppListServObserver_Reserved1@MApaAppListServObserver@@EAEXXZ @ 256 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved1(void)
+	?MApaAppListServObserver_Reserved2@MApaAppListServObserver@@EAEXXZ @ 257 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved2(void)
+	?RApaLsSession_Reserved1@RApaLsSession@@EAEXXZ @ 258 NONAME ; void RApaLsSession::RApaLsSession_Reserved1(void)
+	?RApaLsSession_Reserved2@RApaLsSession@@EAEXXZ @ 259 NONAME ; void RApaLsSession::RApaLsSession_Reserved2(void)
+	??0CDataRecognitionResultArray@@QAE@XZ @ 260 NONAME ; CDataRecognitionResultArray::CDataRecognitionResultArray(void)
+	??1CDataRecognitionResultArray@@UAE@XZ @ 261 NONAME ; CDataRecognitionResultArray::~CDataRecognitionResultArray(void)
+	?CancelRecognizeFiles@RApaLsSession@@QAEXXZ @ 262 NONAME ; void RApaLsSession::CancelRecognizeFiles(void)
+	?Count@CDataRecognitionResultArray@@QBEIXZ @ 263 NONAME ; unsigned int CDataRecognitionResultArray::Count(void) const
+	?GetDataRecognitionResultL@CDataRecognitionResultArray@@QBEXAAVTDataRecognitionResult@@I@Z @ 264 NONAME ; void CDataRecognitionResultArray::GetDataRecognitionResultL(class TDataRecognitionResult &, unsigned int) const
+	?GetFileNameL@CDataRecognitionResultArray@@QBEXAAV?$TBuf@$0BAA@@@I@Z @ 265 NONAME ; void CDataRecognitionResultArray::GetFileNameL(class TBuf<256> &, unsigned int) const
+	?Path@CDataRecognitionResultArray@@QBEABV?$TBuf@$0BAA@@@XZ @ 266 NONAME ; class TBuf<256> const & CDataRecognitionResultArray::Path(void) const
+	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@AAVCDataRecognitionResultArray@@@Z @ 267 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &) const
+	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@@Z @ 268 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &) const
+	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 269 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
+	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 270 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
+	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@1@Z @ 271 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid, class TUid)
+	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@VTUid@@@Z @ 272 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &, class TUid)
+	?GetAppByDataType@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 273 NONAME ; int RApaLsSession::GetAppByDataType(class TDataType const &, class TUid, class TUid &) const
+	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 274 NONAME ; int RApaLsSession::StartApp(class CApaCommandLine const &, class TThreadId &, class TRequestStatus *)
+	?RegisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@ABVTDesC16@@@Z @ 275 NONAME ; void RApaLsSession::RegisterNonNativeApplicationTypeL(class TUid, class TDesC16 const &)
+	?DeregisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@@Z @ 276 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationTypeL(class TUid)
+	?RegisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@ABVTDriveUnit@@AAVCApaRegistrationResourceFileWriter@@PAVCApaLocalisableResourceFileWriter@@PBVRFile@@@Z @ 277 NONAME ; void RApaLsSession::RegisterNonNativeApplicationL(class TUid, class TDriveUnit const &, class CApaRegistrationResourceFileWriter &, class CApaLocalisableResourceFileWriter *, class RFile const *)
+	?DeregisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@@Z @ 278 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationL(class TUid)
+	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 279 NONAME ABSENT ; class CApaAppData* CApaAppList::AppDataByFileName(class TDesC16 const &) const
+	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 280 NONAME ABSENT ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
+	?OpaqueData@CApaAppData@@QBE?AVTPtrC8@@XZ @ 281 NONAME ABSENT ; class TPtrC8 CApaAppData::OpaqueData(void) const
+	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 282 NONAME ABSENT ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
+	?GetDefaultScreenNumber@RApaLsSession@@QBEHAAHVTUid@@@Z @ 283 NONAME ; int RApaLsSession::GetDefaultScreenNumber(int &, class TUid) const
+	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 284 NONAME ABSENT ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
+	?MatchesSecurityPolicy@RApaLsSession@@QBEHAAHVTUid@@ABVTSecurityPolicy@@@Z @ 285 NONAME ; int RApaLsSession::MatchesSecurityPolicy(int &, class TUid, class TSecurityPolicy const &) const
+	?AddDataTypeL@CApaRegistrationResourceFileWriter@@QAEXHABVTDesC8@@@Z @ 286 NONAME ; void CApaRegistrationResourceFileWriter::AddDataTypeL(int, class TDesC8 const &)
+	?AddFileOwnershipInfoL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 287 NONAME ; void CApaRegistrationResourceFileWriter::AddFileOwnershipInfoL(class TDesC16 const &)
+	?NewL@CApaLocalisableResourceFileWriter@@SAPAV1@ABVTDesC16@@0H0@Z @ 288 NONAME ; class CApaLocalisableResourceFileWriter * CApaLocalisableResourceFileWriter::NewL(class TDesC16 const &, class TDesC16 const &, int, class TDesC16 const &)
+	?NewL@CApaRegistrationResourceFileWriter@@SAPAV1@VTUid@@ABVTDesC16@@I@Z @ 289 NONAME ; class CApaRegistrationResourceFileWriter * CApaRegistrationResourceFileWriter::NewL(class TUid, class TDesC16 const &, unsigned int)
+	?NonNativeApplicationType@CApaAppData@@QBE?AVTUid@@XZ @ 290 NONAME ABSENT ; class TUid CApaAppData::NonNativeApplicationType(void) const
+	?SetAppIsHiddenL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 291 NONAME ; void CApaRegistrationResourceFileWriter::SetAppIsHiddenL(int)
+	?SetDefaultScreenNumberL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 292 NONAME ; void CApaRegistrationResourceFileWriter::SetDefaultScreenNumberL(int)
+	?SetEmbeddabilityL@CApaRegistrationResourceFileWriter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 293 NONAME ; void CApaRegistrationResourceFileWriter::SetEmbeddabilityL(enum TApaAppCapability::TEmbeddability)
+	?SetGroupNameL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 294 NONAME ; void CApaRegistrationResourceFileWriter::SetGroupNameL(class TDesC16 const &)
+	?SetLaunchInBackgroundL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 295 NONAME ; void CApaRegistrationResourceFileWriter::SetLaunchInBackgroundL(int)
+	?SetOpaqueDataL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC8@@@Z @ 296 NONAME ; void CApaRegistrationResourceFileWriter::SetOpaqueDataL(class TDesC8 const &)
+	?SetSupportsNewFileL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 297 NONAME ; void CApaRegistrationResourceFileWriter::SetSupportsNewFileL(int)
+	??1CApaLocalisableResourceFileWriter@@UAE@XZ @ 298 NONAME ; CApaLocalisableResourceFileWriter::~CApaLocalisableResourceFileWriter(void)
+	??1CApaRegistrationResourceFileWriter@@UAE@XZ @ 299 NONAME ; CApaRegistrationResourceFileWriter::~CApaRegistrationResourceFileWriter(void)
+	?AppScanInProgress@CApaAppList@@QBEHXZ @ 300 NONAME ABSENT ; int CApaAppList::AppScanInProgress(void) const
+	?CancelNotify@RApaLsSession@@QAEXXZ @ 301 NONAME ; void RApaLsSession::CancelNotify(void)
+	?SetNotify@RApaLsSession@@QAEXHAAVTRequestStatus@@@Z @ 302 NONAME ; void RApaLsSession::SetNotify(int, class TRequestStatus &)
+	?CancelNotifyOnDataMappingChange@RApaLsSession@@QAEXXZ @ 303 NONAME ; void RApaLsSession::CancelNotifyOnDataMappingChange(void)
+	?NotifyOnDataMappingChange@RApaLsSession@@QAEXAAVTRequestStatus@@@Z @ 304 NONAME ; void RApaLsSession::NotifyOnDataMappingChange(class TRequestStatus &)
+	?GetAppType@RApaLsSession@@QBEHAAVTUid@@V2@@Z @ 305 NONAME ; int RApaLsSession::GetAppType(class TUid &, class TUid) const
+	?CommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 306 NONAME ; void RApaLsSession::CommitNonNativeApplicationsUpdatesL(void)
+	?PrepareNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 307 NONAME ; void RApaLsSession::PrepareNonNativeApplicationsUpdatesL(void)
+	?RollbackNonNativeApplicationsUpdates@RApaLsSession@@QAEHXZ @ 308 NONAME ; int RApaLsSession::RollbackNonNativeApplicationsUpdates(void)
+	?SetUpdatedAppsList@CApaAppList@@QAEXPAVCUpdatedAppsList@@@Z @ 309 NONAME ABSENT ; void CApaAppList::SetUpdatedAppsList(class CUpdatedAppsList *)
+	?UpdatedAppsList@CApaAppList@@QAEPAVCUpdatedAppsList@@XZ @ 310 NONAME ABSENT ; class CUpdatedAppsList * CApaAppList::UpdatedAppsList(void)
+	??1CApaAppData@@UAE@XZ @ 311 NONAME ABSENT ; CApaAppData::~CApaAppData(void)
+	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 312 NONAME ABSENT ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
+	?Self@CApaAppList@@SAPAV1@XZ @ 313 NONAME ABSENT ; class CApaAppList * CApaAppList::Self(void)
+	?ShareProtectedFileServer@CApaAppList@@QAEAAVRFs@@XZ @ 314 NONAME ABSENT ; class RFs & CApaAppList::ShareProtectedFileServer(void)
+	X @ 315 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
+	X @ 316 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
+	X @ 317 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
+	X @ 318 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
+	?SetAppShortCaption@RApaLsSession@@QAEHABVTDesC16@@W4TLanguage@@VTUid@@@Z @ 319 NONAME ; int RApaLsSession::SetAppShortCaption(class TDesC16 const &, enum TLanguage, class TUid)
+	?SetShortCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 320 NONAME ABSENT ; void CApaAppData::SetShortCaptionL(class TDesC16 const &)
+	?ForceRegistration@RApaLsSession@@QAEHABV?$RPointerArray@VTDesC16@@@@@Z @ 321 NONAME ; int RApaLsSession::ForceRegistration(class RPointerArray<class TDesC16> const &)
+	?AddForcedRegistrationL@CApaAppList@@QAEXPAVHBufC16@@@Z @ 322 NONAME ABSENT ; void CApaAppList::AddForcedRegistrationL(class HBufC16 *)
+	?CompareStrings@CApaAppList@@SAHABVHBufC16@@0@Z @ 323 NONAME ABSENT ; int CApaAppList::CompareStrings(class HBufC16 const &, class HBufC16 const &)
+	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 324 NONAME ABSENT ; void CApaAppList::ResetForcedRegistrations(void)
+	?RestartScanL@CApaAppList@@QAEXXZ @ 325 NONAME ABSENT ; void CApaAppList::RestartScanL(void)
+	?StopScan@CApaAppList@@QAEXXZ @ 326 NONAME ABSENT ; void CApaAppList::StopScan(void)
+	?MinApplicationStackSize@@YAIXZ @ 327 NONAME ; unsigned int MinApplicationStackSize(void)
+	?KMinApplicationStackSize@@3HB @ 328 NONAME ; int const KMinApplicationStackSize
+	?IsLanguageChangePending@CApaAppList@@QBEHXZ @ 329 NONAME ABSENT ; int CApaAppList::IsLanguageChangePending(void) const
+	?IsPending@CApaAppData@@QBEHXZ @ 330 NONAME ABSENT ; int CApaAppData::IsPending(void) const
+	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAVRFile@@@Z @ 331 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class RFile &) const
+	?CheckAppSecurity@CApaSecurityUtils@@SAHABVTPtrC16@@AAH1@Z @ 332 NONAME ; int CApaSecurityUtils::CheckAppSecurity(class TPtrC16 const &, int &, int &)
+	X @ 333 NONAME ABSENT ;
+	X @ 334 NONAME ABSENT ;
+	?ForceCommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 335 NONAME ; void RApaLsSession::ForceCommitNonNativeApplicationsUpdatesL(void)
+	?RecognizeData@RApaLsSession@@QBEHABVTDesC8@@AAVTDataRecognitionResult@@@Z @336 NONAME;TInt RecognizeData(const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const
--- a/localisation/apparchitecture/bwins/APGRFX_9_REMOVE_UI_FRAMEWORKS_V1U.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-EXPORTS
-	??0RApaLsSession@@QAE@XZ @ 1 NONAME ; public: __thiscall RApaLsSession::RApaLsSession(void)
-	??0TApaPictureFactory@@QAE@PAVCApaProcess@@@Z @ 2 NONAME ; public: __thiscall TApaPictureFactory::TApaPictureFactory(class CApaProcess *)
-	??0TApaTask@@QAE@AAVRWsSession@@@Z @ 3 NONAME ; public: __thiscall TApaTask::TApaTask(class RWsSession &)
-	??0TApaTaskList@@QAE@AAVRWsSession@@@Z @ 4 NONAME ; public: __thiscall TApaTaskList::TApaTaskList(class RWsSession &)
-	??1CApaAppInfoFileReader@@UAE@XZ @ 5 NONAME ABSENT ; public: virtual __thiscall CApaAppInfoFileReader::~CApaAppInfoFileReader(void)
-	??1CApaAppInfoFileWriter@@UAE@XZ @ 6 NONAME ABSENT ; public: virtual __thiscall CApaAppInfoFileWriter::~CApaAppInfoFileWriter(void)
-	??1CApaAppList@@UAE@XZ @ 7 NONAME ; public: virtual __thiscall CApaAppList::~CApaAppList(void)
-	??1CApaDoor@@UAE@XZ @ 8 NONAME ; public: virtual __thiscall CApaDoor::~CApaDoor(void)
-	??1CApaMaskedBitmap@@UAE@XZ @ 9 NONAME ; public: virtual __thiscall CApaMaskedBitmap::~CApaMaskedBitmap(void)
-	??1CApaWindowGroupName@@UAE@XZ @ 10 NONAME ; public: virtual __thiscall CApaWindowGroupName::~CApaWindowGroupName(void)
-	?AddCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 11 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddCaptionL(enum TLanguage,class TDesC16 const &)
-	?AddIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@@Z @ 12 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class CApaMaskedBitmap &)
-	?AddIconL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 13 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class TDesC16 const &)
-	?AppCount@RApaLsSession@@QBEHAAH@Z @ 14 NONAME ; public: int __thiscall RApaLsSession::AppCount(int &)const 
-	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 15 NONAME ; public: class CApaAppData * __thiscall CApaAppList::AppDataByUid(class TUid)const 
-	?AppEntry@CApaAppData@@QBE?AVTApaAppEntry@@XZ @ 16 NONAME ; public: class TApaAppEntry  __thiscall CApaAppData::AppEntry(void)const 
-	?AppUid@CApaWindowGroupName@@QBE?AVTUid@@XZ @ 17 NONAME ; public: class TUid  __thiscall CApaWindowGroupName::AppUid(void)const 
-	?AppUidL@CApaDoor@@QBE?AVTUid@@XZ @ 18 NONAME ; public: class TUid  __thiscall CApaDoor::AppUidL(void)const 
-	?BringToForeground@TApaTask@@QAEXXZ @ 19 NONAME ; public: void __thiscall TApaTask::BringToForeground(void)
-	?Capability@CApaAppData@@QBEXAAVTDes8@@@Z @ 20 NONAME ; public: void __thiscall CApaAppData::Capability(class TDes8 &)const 
-	?Capability@CApaAppInfoFileReader@@QBEXAAVTDes8@@@Z @ 21 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::Capability(class TDes8 &)const 
-	?Caption@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 22 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::Caption(void)const 
-	?CaptionL@CApaAppInfoFileReader@@QAE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 23 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAppInfoFileReader::CaptionL(enum TLanguage)
-	?Connect@RApaLsSession@@QAEHXZ @ 24 NONAME ; public: int __thiscall RApaLsSession::Connect(void)
-	?ConstructFromWgIdL@CApaWindowGroupName@@QAEXH@Z @ 25 NONAME ; public: void __thiscall CApaWindowGroupName::ConstructFromWgIdL(int)
-	?Count@CApaAppList@@QBEHXZ @ 26 NONAME ; public: int __thiscall CApaAppList::Count(void)const 
-	?CreateMaskedBitmapL@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 27 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppInfoFileReader::CreateMaskedBitmapL(int)
-	?CycleTasks@TApaTaskList@@QAEHVTUid@@W4TCycleDirection@1@@Z @ 28 NONAME ; public: int __thiscall TApaTaskList::CycleTasks(class TUid,enum TApaTaskList::TCycleDirection)
-	?DocName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 29 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::DocName(void)const 
-	?DocNameIsAFile@CApaWindowGroupName@@QBEHXZ @ 30 NONAME ; public: int __thiscall CApaWindowGroupName::DocNameIsAFile(void)const 
-	?DocumentL@CApaDoor@@QAEPAVCApaDocument@@H@Z @ 31 NONAME ; public: class CApaDocument * __thiscall CApaDoor::DocumentL(int)
-	?EmbeddableAppCount@RApaLsSession@@QBEHAAH@Z @ 32 NONAME ; public: int __thiscall RApaLsSession::EmbeddableAppCount(int &)const 
-	?EndTask@TApaTask@@QAEXXZ @ 33 NONAME ; public: void __thiscall TApaTask::EndTask(void)
-	?Exists@TApaTask@@QBEHXZ @ 34 NONAME ; public: int __thiscall TApaTask::Exists(void)const 
-	?ExternalizeL@CApaMaskedBitmap@@QBEXAAVRWriteStream@@@Z @ 35 NONAME ; public: void __thiscall CApaMaskedBitmap::ExternalizeL(class RWriteStream &)const 
-	?FindApp@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 36 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TDesC16 const &)
-	?FindApp@TApaTaskList@@QAE?AVTApaTask@@VTUid@@@Z @ 37 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TUid)
-	?FindByAppUid@CApaWindowGroupName@@SAXVTUid@@AAVRWsSession@@AAH@Z @ 38 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByAppUid(class TUid,class RWsSession &,int &)
-	?FindByCaption@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 39 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByCaption(class TDesC16 const &,class RWsSession &,int &)
-	?FindByDocName@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 40 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByDocName(class TDesC16 const &,class RWsSession &,int &)
-	?FindByPos@TApaTaskList@@QAE?AVTApaTask@@H@Z @ 41 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindByPos(int)
-	?FindDoc@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 42 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindDoc(class TDesC16 const &)
-	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 43 NONAME ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(void)const 
-	?GetAllApps@RApaLsSession@@QBEHXZ @ 44 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(void)const 
-	?GetAppCapability@RApaLsSession@@QBEHAAVTDes8@@VTUid@@@Z @ 45 NONAME ; public: int __thiscall RApaLsSession::GetAppCapability(class TDes8 &,class TUid)const 
-	?GetAppInfo@RApaLsSession@@QBEHAAVTApaAppInfo@@VTUid@@@Z @ 46 NONAME ; public: int __thiscall RApaLsSession::GetAppInfo(class TApaAppInfo &,class TUid)const 
-	?GetEmbeddableApps@RApaLsSession@@QBEHXZ @ 47 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(void)const 
-	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@@Z @ 48 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &)const 
-	?InternalizeL@CApaMaskedBitmap@@QAEXAAVRReadStream@@@Z @ 49 NONAME ; public: void __thiscall CApaMaskedBitmap::InternalizeL(class RReadStream &)
-	?IsBusy@CApaWindowGroupName@@QBEHXZ @ 50 NONAME ; public: int __thiscall CApaWindowGroupName::IsBusy(void)const 
-	?IsSystem@CApaWindowGroupName@@QBEHXZ @ 51 NONAME ; public: int __thiscall CApaWindowGroupName::IsSystem(void)const 
-	?KillTask@TApaTask@@QAEXXZ @ 52 NONAME ; public: void __thiscall TApaTask::KillTask(void)
-	?Mask@CApaMaskedBitmap@@QBEPAVCFbsBitmap@@XZ @ 53 NONAME ; public: class CFbsBitmap * __thiscall CApaMaskedBitmap::Mask(void)const 
-	?New@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@PAVHBufC16@@@Z @ 54 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::New(class RWsSession const &,class HBufC16 *)
-	?NewL@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 55 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewL(class RFs &,class TDesC16 const &,class TUid)
-	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppFinder@@@Z @ 56 NONAME ; public: static class CApaAppList * __cdecl CApaAppList::NewL(class RFs &,class CApaAppFinder *)
-	?NewL@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 57 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CApaDocument &,class TSize const &)
-	?NewL@CApaDoor@@SAPAV1@AAVRFs@@ABVCStreamStore@@VTStreamId@@AAVCApaProcess@@@Z @ 58 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CStreamStore const &,class TStreamId,class CApaProcess &)
-	?NewL@CApaMaskedBitmap@@SAPAV1@PAV1@@Z @ 59 NONAME ; public: static class CApaMaskedBitmap * __cdecl CApaMaskedBitmap::NewL(class CApaMaskedBitmap *)
-	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 60 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &)
-	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 61 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,class TDesC16 const &)
-	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 62 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,int)
-	?NewLC@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 63 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewLC(class RFs &,class TDesC16 const &,class TUid)
-	?NewLC@CApaAppInfoFileWriter@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 64 NONAME ABSENT ; public: static class CApaAppInfoFileWriter * __cdecl CApaAppInfoFileWriter::NewLC(class RFs &,class TDesC16 const &,class TUid)
-	?NewLC@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 65 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewLC(class RFs &,class CApaDocument &,class TSize const &)
-	?NewLC@CApaMaskedBitmap@@SAPAV1@XZ @ 66 NONAME ; public: static class CApaMaskedBitmap * __cdecl CApaMaskedBitmap::NewLC(void)
-	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 67 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &)
-	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 68 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,class TDesC16 const &)
-	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 69 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,int)
-	?NewPictureL@TApaPictureFactory@@UBEXAAVTPictureHeader@@ABVCStreamStore@@@Z @ 70 NONAME ; public: virtual void __thiscall TApaPictureFactory::NewPictureL(class TPictureHeader &,class CStreamStore const &)const 
-	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@@Z @ 71 NONAME ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *)const 
-	?PurgeL@CApaAppList@@QAEXXZ @ 72 NONAME ; public: void __thiscall CApaAppList::PurgeL(void)
-	?RespondsToShutdownEvent@CApaWindowGroupName@@QBEHXZ @ 73 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToShutdownEvent(void)const 
-	?RespondsToSwitchFilesEvent@CApaWindowGroupName@@QBEHXZ @ 74 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToSwitchFilesEvent(void)const 
-	?RestoreL@CApaDoor@@QAEXABVCStreamStore@@VTStreamId@@@Z @ 75 NONAME ; public: void __thiscall CApaDoor::RestoreL(class CStreamStore const &,class TStreamId)
-	?SendKey@TApaTask@@QAEXABUTKeyEvent@@@Z @ 76 NONAME ; public: void __thiscall TApaTask::SendKey(struct TKeyEvent const &)
-	?SendKey@TApaTask@@QAEXHH@Z @ 77 NONAME ; public: void __thiscall TApaTask::SendKey(int,int)
-	?SendMessage@TApaTask@@QAEHVTUid@@ABVTDesC8@@@Z @ 78 NONAME ; public: int __thiscall TApaTask::SendMessage(class TUid,class TDesC8 const &)
-	?SendSystemEvent@TApaTask@@QAEXW4TApaSystemEvent@@@Z @ 79 NONAME ; public: void __thiscall TApaTask::SendSystemEvent(enum TApaSystemEvent)
-	?SendToBackground@TApaTask@@QAEXXZ @ 80 NONAME ; public: void __thiscall TApaTask::SendToBackground(void)
-	?SetAppUid@CApaWindowGroupName@@QAEXVTUid@@@Z @ 81 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppUid(class TUid)
-	?SetBusy@CApaWindowGroupName@@QAEXH@Z @ 82 NONAME ; public: void __thiscall CApaWindowGroupName::SetBusy(int)
-	?SetCapability@CApaAppInfoFileWriter@@QAEHABVTDesC8@@@Z @ 83 NONAME ABSENT ; public: int __thiscall CApaAppInfoFileWriter::SetCapability(class TDesC8 const &)
-	?SetCaptionL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 84 NONAME ; public: void __thiscall CApaWindowGroupName::SetCaptionL(class TDesC16 const &)
-	?SetDocNameIsAFile@CApaWindowGroupName@@QAEXH@Z @ 85 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameIsAFile(int)
-	?SetDocNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 86 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameL(class TDesC16 const &)
-	?SetFormatToGlassL@CApaDoor@@QAEXXZ @ 87 NONAME ; public: void __thiscall CApaDoor::SetFormatToGlassL(void)
-	?SetFormatToIconL@CApaDoor@@QAEXXZ @ 88 NONAME ; public: void __thiscall CApaDoor::SetFormatToIconL(void)
-	?SetFormatToTemporaryIconL@CApaDoor@@QAEXH@Z @ 89 NONAME ; public: void __thiscall CApaDoor::SetFormatToTemporaryIconL(int)
-	?SetRespondsToShutdownEvent@CApaWindowGroupName@@QAEXH@Z @ 90 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToShutdownEvent(int)
-	?SetRespondsToSwitchFilesEvent@CApaWindowGroupName@@QAEXH@Z @ 91 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToSwitchFilesEvent(int)
-	?SetSystem@CApaWindowGroupName@@QAEXH@Z @ 92 NONAME ; public: void __thiscall CApaWindowGroupName::SetSystem(int)
-	?SetWgId@TApaTask@@QAEXH@Z @ 93 NONAME ; public: void __thiscall TApaTask::SetWgId(int)
-	?SetWindowGroupName@CApaWindowGroupName@@QAEXPAVHBufC16@@@Z @ 94 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupName(class HBufC16 *)
-	?SetWindowGroupName@CApaWindowGroupName@@QBEHAAVRWindowGroup@@@Z @ 95 NONAME ; public: int __thiscall CApaWindowGroupName::SetWindowGroupName(class RWindowGroup &)const 
-	?SetWindowGroupNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 96 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupNameL(class TDesC16 const &)
-	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@@Z @ 97 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &)
-	?StoreL@CApaAppInfoFileWriter@@QAEXXZ @ 98 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::StoreL(void)
-	?StretchDrawL@CApaAppInfoFileReader@@SAXPAVCFbsBitmap@@0VTSize@@@Z @ 99 NONAME ABSENT ; public: static void __cdecl CApaAppInfoFileReader::StretchDrawL(class CFbsBitmap *,class CFbsBitmap *,class TSize)
-	?SwitchCreateFile@TApaTask@@QAEHABVTDesC16@@@Z @ 100 NONAME ; public: int __thiscall TApaTask::SwitchCreateFile(class TDesC16 const &)
-	?SwitchOpenFile@TApaTask@@QAEHABVTDesC16@@@Z @ 101 NONAME ; public: int __thiscall TApaTask::SwitchOpenFile(class TDesC16 const &)
-	?ThreadId@TApaTask@@QBE?AVTThreadId@@XZ @ 102 NONAME ; public: class TThreadId  __thiscall TApaTask::ThreadId(void)const 
-	?UpdateCounter@CApaAppList@@QBEHXZ @ 103 NONAME ; public: int __thiscall CApaAppList::UpdateCounter(void)const 
-	?UpdateL@CApaAppList@@QAEXXZ @ 104 NONAME ; public: void __thiscall CApaAppList::UpdateL(void)
-	?Version@RApaLsSession@@QBE?AVTVersion@@XZ @ 105 NONAME ; public: class TVersion  __thiscall RApaLsSession::Version(void)const 
-	?WgId@TApaTask@@QBEHXZ @ 106 NONAME ; public: int __thiscall TApaTask::WgId(void)const 
-	?WindowGroupName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 107 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::WindowGroupName(void)const 
-	??1CApaSystemControlList@@UAE@XZ @ 108 NONAME ; public: virtual __thiscall CApaSystemControlList::~CApaSystemControlList(void)
-	?Caption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 109 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::Caption(void)const 
-	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@H@Z @ 110 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(int)const 
-	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@VTUid@@@Z @ 111 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(class TUid)const 
-	?Count@CApaSystemControlList@@QBEHXZ @ 112 NONAME ; public: int __thiscall CApaSystemControlList::Count(void)const 
-	?CreateL@CApaSystemControl@@QAEXXZ @ 113 NONAME ; public: void __thiscall CApaSystemControl::CreateL(void)
-	?FileName@CApaSystemControl@@QBE?AV?$TBuf@$0BAA@@@XZ @ 114 NONAME ; public: class TBuf<256>  __thiscall CApaSystemControl::FileName(void)const 
-	?Icon@CApaSystemControl@@QBEPAVCApaMaskedBitmap@@XZ @ 115 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaSystemControl::Icon(void)const 
-	?Index@CApaSystemControlList@@QBEHVTUid@@@Z @ 116 NONAME ; public: int __thiscall CApaSystemControlList::Index(class TUid)const 
-	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@AAVCApaAppFinder@@ABVTDesC16@@@Z @ 117 NONAME ABSENT ; public: static class CApaSystemControlList * __cdecl CApaSystemControlList::NewL(class RFs &,class CApaAppFinder &,class TDesC16 const &)
-	?Type@CApaSystemControl@@QBE?AVTUid@@XZ @ 118 NONAME ; public: class TUid  __thiscall CApaSystemControl::Type(void)const 
-	?UpdateL@CApaSystemControlList@@QAEXXZ @ 119 NONAME ; public: void __thiscall CApaSystemControlList::UpdateL(void)
-	?AddDataTypeL@CApaAppInfoFileWriter@@QAEXABVTDataTypeWithPriority@@@Z @ 120 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddDataTypeL(class TDataTypeWithPriority const &)
-	?AppForDataType@RApaLsSession@@QBEHABVTDataType@@AAVTUid@@@Z @ 121 NONAME ; public: int __thiscall RApaLsSession::AppForDataType(class TDataType const &,class TUid &)const 
-	?AppForDocument@RApaLsSession@@QBEHABVTDesC16@@AAVTUid@@AAVTDataType@@@Z @ 122 NONAME ; public: int __thiscall RApaLsSession::AppForDocument(class TDesC16 const &,class TUid &,class TDataType &)const 
-	?CreateDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 123 NONAME ; public: int __thiscall RApaLsSession::CreateDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?DataType@CApaAppData@@QBEFABVTDataType@@@Z @ 124 NONAME ; public: short __thiscall CApaAppData::DataType(class TDataType const &)const 
-	?DataTypesSupportedL@CApaAppInfoFileReader@@QBEXAAV?$CArrayFix@VTDataTypeWithPriority@@@@@Z @ 125 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::DataTypesSupportedL(class CArrayFix<class TDataTypeWithPriority> &)const 
-	?GetAcceptedConfidence@RApaLsSession@@QBEHAAH@Z @ 126 NONAME ; public: int __thiscall RApaLsSession::GetAcceptedConfidence(int &)const 
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@HAAVCApaMaskedBitmap@@@Z @ 127 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,int,class CApaMaskedBitmap &)const 
-	?GetMaxDataBufSize@RApaLsSession@@QBEHAAH@Z @ 128 NONAME ; public: int __thiscall RApaLsSession::GetMaxDataBufSize(int &)const 
-	?GetSupportedDataTypesL@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTDataType@@@@@Z @ 129 NONAME ; public: int __thiscall RApaLsSession::GetSupportedDataTypesL(class CArrayFixFlat<class TDataType> &)const 
-	?IsProgram@RApaLsSession@@QBEHABVTDesC16@@AAH@Z @ 130 NONAME ; public: int __thiscall RApaLsSession::IsProgram(class TDesC16 const &,int &)const 
-	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 131 NONAME ; public: class TUid  __thiscall CApaAppList::PreferredDataHandlerL(class TDataType const &)const 
-	?RecognizeData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVTDataRecognitionResult@@@Z @ 132 NONAME ; public: int __thiscall RApaLsSession::RecognizeData(class TDesC16 const &,class TDesC8 const &,class TDataRecognitionResult &)const 
-	?RecognizeSpecificData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@ABVTDataType@@AAH@Z @ 133 NONAME ; public: int __thiscall RApaLsSession::RecognizeSpecificData(class TDesC16 const &,class TDesC8 const &,class TDataType const &,int &)const 
-	?SetAcceptedConfidence@RApaLsSession@@QAEHH@Z @ 134 NONAME ; public: int __thiscall RApaLsSession::SetAcceptedConfidence(int)
-	?SetMaxDataBufSize@RApaLsSession@@QAEHH@Z @ 135 NONAME ; public: int __thiscall RApaLsSession::SetMaxDataBufSize(int)
-	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@AAVTThreadId@@W4TLaunchType@1@@Z @ 136 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@ABVTDataType@@AAVTThreadId@@W4TLaunchType@1@@Z @ 137 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TDataType const &,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 138 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 139 NONAME ; public: void __thiscall CApaAppList::StartIdleUpdateL(void)
-	??1CApaAppListNotifier@@UAE@XZ @ 140 NONAME ; public: virtual __thiscall CApaAppListNotifier::~CApaAppListNotifier(void)
-	?NewL@CApaAppListNotifier@@SAPAV1@PAVMApaAppListServObserver@@W4TPriority@CActive@@@Z @ 141 NONAME ; public: static class CApaAppListNotifier * __cdecl CApaAppListNotifier::NewL(class MApaAppListServObserver *,enum CActive::TPriority)
-	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 142 NONAME ; public: void __thiscall CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@VTSize@@AAVCApaMaskedBitmap@@@Z @ 143 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,class TSize,class CApaMaskedBitmap &)const 
-	?GetAppIconSizes@RApaLsSession@@QBEHVTUid@@AAV?$CArrayFixFlat@VTSize@@@@@Z @ 144 NONAME ; public: int __thiscall RApaLsSession::GetAppIconSizes(class TUid,class CArrayFixFlat<class TSize> &)const 
-	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@VTSize@@@Z @ 145 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(class TSize)const 
-	?IconSizesL@CApaAppData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 146 NONAME ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppData::IconSizesL(void)const 
-	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@H@Z @ 147 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(int)const 
-	?Hidden@CApaWindowGroupName@@QAEHXZ @ 148 NONAME ; public: int __thiscall CApaWindowGroupName::Hidden(void)
-	?SetHidden@CApaWindowGroupName@@QAEXH@Z @ 149 NONAME ; public: void __thiscall CApaWindowGroupName::SetHidden(int)
-	?AddViewCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@VTUid@@@Z @ 150 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewCaptionL(enum TLanguage,class TDesC16 const &,class TUid)
-	?AddViewIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@VTUid@@@Z @ 151 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewIconL(class CApaMaskedBitmap &,class TUid)
-	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 152 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid)
-	?CaptionL@CApaAIFViewData@@QBE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 153 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAIFViewData::CaptionL(enum TLanguage)const 
-	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0ABVTSize@@AAVCApaMaskedBitmap@@@Z @ 154 NONAME ; public: int __thiscall RApaLsSession::GetAppViewIcon(class TUid,class TUid,class TSize const &,class CApaMaskedBitmap &)const 
-	?GetAppViews@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTApaAppViewInfo@@@@VTUid@@@Z @ 155 NONAME ; public: int __thiscall RApaLsSession::GetAppViews(class CArrayFixFlat<class TApaAppViewInfo> &,class TUid)const 
-	?GetViewsL@CApaAppInfoFileReader@@QBEXAAV?$CArrayPtr@VCApaAIFViewData@@@@@Z @ 156 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetViewsL(class CArrayPtr<class CApaAIFViewData> &)const 
-	?Icon@CApaAppViewData@@QBEPAVCApaMaskedBitmap@@ABVTSize@@@Z @ 157 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaAppViewData::Icon(class TSize const &)const 
-	?IconByIndexL@CApaAIFViewData@@QBEPAVCApaMaskedBitmap@@H@Z @ 158 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAIFViewData::IconByIndexL(int)const 
-	?IconSizesL@CApaAppViewData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 159 NONAME ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppViewData::IconSizesL(void)const 
-	?NumberOfIcons@CApaAIFViewData@@QBEHXZ @ 160 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::NumberOfIcons(void)const 
-	?StoreViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 161 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::StoreViewL(class TUid)
-	?Uid@CApaAppViewData@@QBE?AVTUid@@XZ @ 162 NONAME ; public: class TUid  __thiscall CApaAppViewData::Uid(void)const 
-	?ViewUid@CApaAIFViewData@@QBE?AVTUid@@XZ @ 163 NONAME ABSENT ; public: class TUid  __thiscall CApaAIFViewData::ViewUid(void)const 
-	?Views@CApaAppData@@QBEPAV?$CArrayPtrFlat@VCApaAppViewData@@@@XZ @ 164 NONAME ; public: class CArrayPtrFlat<class CApaAppViewData> * __thiscall CApaAppData::Views(void)const 
-	?AddOwnedFileL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 165 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddOwnedFileL(class TDesC16 const &)
-	?GetOwnedFilesL@CApaAppInfoFileReader@@QBEXAAVCDesC16Array@@@Z @ 166 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetOwnedFilesL(class CDesC16Array &)const 
-	?OwnedFiles@CApaAppData@@QBEPAVCDesC16Array@@XZ @ 167 NONAME ; public: class CDesC16Array * __thiscall CApaAppData::OwnedFiles(void)const 
-	?GetAppOwnedFiles@RApaLsSession@@QBEHAAVCDesC16Array@@VTUid@@@Z @ 168 NONAME ; public: int __thiscall RApaLsSession::GetAppOwnedFiles(class CDesC16Array &,class TUid)const 
-	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@@Z @ 169 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &,class TThreadId &)
-	?GetAifFileName@AppInfoFileUtils@@SAXABVRFs@@AAVTDes16@@@Z @ 170 NONAME ABSENT ; public: static void __cdecl AppInfoFileUtils::GetAifFileName(class RFs const &,class TDes16 &)
-	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@H@Z @ 171 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid,int)
-	?CanUseScreenMode@CApaAppData@@QAEHH@Z @ 172 NONAME ; public: int __thiscall CApaAppData::CanUseScreenMode(int)
-	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 173 NONAME ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(int)const 
-	?GetAllApps@RApaLsSession@@QBEHH@Z @ 174 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(int)const 
-	?GetEmbeddableApps@RApaLsSession@@QBEHH@Z @ 175 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(int)const 
-	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@H@Z @ 176 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &,int)const 
-	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@H@Z @ 177 NONAME ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *,int)const 
-	?ScreenMode@CApaAIFViewData@@QBEHXZ @ 178 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::ScreenMode(void)const 
-	?ScreenMode@CApaAppViewData@@QBEHXZ @ 179 NONAME ; public: int __thiscall CApaAppViewData::ScreenMode(void)const 
-	?ShortCaption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 180 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::ShortCaption(void)const 
-	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 181 NONAME ; public: int __thiscall CApaAppList::IsIdleUpdateComplete(void)const 
-	?IsAppReady@CApaWindowGroupName@@QBEHXZ @ 182 NONAME ; public: int __thiscall CApaWindowGroupName::IsAppReady(void)const 
-	?SetAppReady@CApaWindowGroupName@@QAEXH@Z @ 183 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppReady(int)
-	?InitListL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 184 NONAME ; public: void __thiscall CApaAppList::InitListL(class MApaAppListObserver *)
-	?NumberOfBitmaps@CApaAppInfoFileReader@@QBEHXZ @ 185 NONAME ABSENT ; public: int __thiscall CApaAppInfoFileReader::NumberOfBitmaps(void)const 
-	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 186 NONAME ; public: int __thiscall CApaAppList::IsFirstScanComplete(void)const 
-	?SetMaskBitmap@CApaMaskedBitmap@@QAEXPAVCFbsBitmap@@@Z @ 187 NONAME ; public: void __thiscall CApaMaskedBitmap::SetMaskBitmap(class CFbsBitmap *)
-	?GetAppInfo_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@VTUid@@@Z @ 188 NONAME ABSENT ; int RApaLsSession::GetAppInfo_7_0(class TApaAppInfo_7_0 &, class TUid) const
-	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@@Z @ 189 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &) const
-	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@H@Z @ 190 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &, int) const
-	?GetIconInfo@CApaAppData@@QAEXAAH0@Z @ 191 NONAME ; public: void __thiscall CApaAppData::GetIconInfo(int &,int &)
-	?NumberOfOwnDefinedIcons@RApaLsSession@@QBEHVTUid@@AAH@Z @ 192 NONAME ; public: int __thiscall RApaLsSession::NumberOfOwnDefinedIcons(class TUid,int &)const 
-	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@@Z @ 193 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &)const 
-	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@H@Z @ 194 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &,int)const 
-	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppFinder@@PAVCApaAppRegFinder@@@Z @ 195 NONAME ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppFinder *, class CApaAppRegFinder *)
-	?DefaultScreenNumber@CApaAppData@@QBEIXZ @ 196 NONAME ; unsigned int CApaAppData::DefaultScreenNumber(void) const
-	?GetFilteredApps@RApaLsSession@@QBEHII@Z @ 197 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int) const
-	?GetFilteredApps@RApaLsSession@@QBEHIIH@Z @ 198 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int, int) const
-	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 199 NONAME ; int CApaAppData::RegistrationFileUsed(void) const
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAPAVHBufC16@@@Z @ 200 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class HBufC16 * &) const
-	?IconFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 201 NONAME ; class TPtrC16 CApaAppData::IconFileName(void) const
-	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0AAPAVHBufC16@@@Z @ 202 NONAME ; int RApaLsSession::GetAppViewIcon(class TUid, class TUid, class HBufC16 * &) const
-	?IconFileName@CApaAppViewData@@QBE?AVTPtrC16@@XZ @ 203 NONAME ; class TPtrC16 CApaAppViewData::IconFileName(void) const
-	?NonMbmIconFile@CApaAppData@@QBEHXZ @ 204 NONAME ; int CApaAppData::NonMbmIconFile(void) const
-	?NonMbmIconFile@CApaAppViewData@@QBEHXZ @ 205 NONAME ; int CApaAppViewData::NonMbmIconFile(void) const
-	?StartupApaServer@@YAHAAVMApaAppStarter@@@Z @ 206 NONAME ; int StartupApaServer(class MApaAppStarter &)
-	?StartupApaServerProcess@@YAHXZ @ 207 NONAME ; int StartupApaServerProcess(void)
-	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@@Z @ 208 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &)
-	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@FVTUid@@@Z @ 209 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, short, class TUid)
-	?InsertDataMappingIfHigher@RApaLsSession@@QAEHABVTDataType@@FVTUid@@AAH@Z @ 210 NONAME ; int RApaLsSession::InsertDataMappingIfHigher(class TDataType const &, short, class TUid, int &)
-	?ApplicationLanguage@CApaAppData@@QBE?AW4TLanguage@@XZ @ 211 NONAME ; enum TLanguage CApaAppData::ApplicationLanguage(void) const
-	?ApplicationLanguage@RApaLsSession@@QBEHVTUid@@AAW4TLanguage@@@Z @ 212 NONAME ; int RApaLsSession::ApplicationLanguage(class TUid, enum TLanguage &) const
-	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@@Z @ 213 NONAME ; class CApaSystemControlList * CApaSystemControlList::NewL(class RFs &)
-	?AppForDataTypeAndService@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 214 NONAME ; int RApaLsSession::AppForDataTypeAndService(class TDataType const &, class TUid, class TUid &) const
-	?AppForDocumentAndService@RApaLsSession@@QBEHAAVRFile@@VTUid@@AAV3@AAVTDataType@@@Z @ 215 NONAME ; int RApaLsSession::AppForDocumentAndService(class RFile &, class TUid, class TUid &, class TDataType &) const
-	?AppForDocumentAndService@RApaLsSession@@QBEHABVTDesC16@@VTUid@@AAV3@AAVTDataType@@@Z @ 216 NONAME ; int RApaLsSession::AppForDocumentAndService(class TDesC16 const &, class TUid, class TUid &, class TDataType &) const
-	?GetAppServiceOpaqueDataLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@0@Z @ 217 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServiceOpaqueDataLC(class TUid, class TUid) const
-	?GetAppServicesL@RApaLsSession@@QBEXVTUid@@AAV?$CArrayFixFlat@VTUid@@@@@Z @ 218 NONAME ; void RApaLsSession::GetAppServicesL(class TUid, class CArrayFixFlat<class TUid> &) const
-	?GetAppServicesLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 219 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServicesLC(class TUid) const
-	?GetServerApps@RApaLsSession@@QBEHVTUid@@@Z @ 220 NONAME ; int RApaLsSession::GetServerApps(class TUid) const
-	?GetServerApps@RApaLsSession@@QBEHVTUid@@H@Z @ 221 NONAME ; int RApaLsSession::GetServerApps(class TUid, int) const
-	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 222 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid) const
-	?ImplementsService@CApaAppData@@QBEHVTUid@@@Z @ 223 NONAME ; int CApaAppData::ImplementsService(class TUid) const
-	?OpaqueData@TApaAppServiceInfo@@QBEABVTDesC8@@XZ @ 224 NONAME ; class TDesC8 const & TApaAppServiceInfo::OpaqueData(void) const
-	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@@Z @ 225 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *) const
-	?ServiceArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 226 NONAME ; class CBufFlat * CApaAppList::ServiceArrayBufferL(class TUid) const
-	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 227 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid) const
-	?ServiceOpaqueDataBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@0@Z @ 228 NONAME ; class CBufFlat * CApaAppList::ServiceOpaqueDataBufferL(class TUid, class TUid) const
-	?ServiceUidBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 229 NONAME ; class CBufFlat * CApaAppList::ServiceUidBufferL(class TUid) const
-	?Uid@TApaAppServiceInfo@@QBE?AVTUid@@XZ @ 230 NONAME ; class TUid TApaAppServiceInfo::Uid(void) const
-	?StartDocument@RApaLsSession@@QAEHAAVRFile@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 231 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TThreadId &, class TRequestStatus *)
-	?CreateMaskedBitmapByIndexLC@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 232 NONAME ABSENT ; class CApaMaskedBitmap * CApaAppInfoFileReader::CreateMaskedBitmapByIndexLC(int)
-	?CancelListPopulationCompleteObserver@RApaLsSession@@QBEHXZ @ 233 NONAME ; int RApaLsSession::CancelListPopulationCompleteObserver(void) const
-	?RegisterListPopulationCompleteObserver@RApaLsSession@@QBEXAAVTRequestStatus@@@Z @ 234 NONAME ; void RApaLsSession::RegisterListPopulationCompleteObserver(class TRequestStatus &) const
-	?NewInterimFormatFileWriterLC@ForJavaMIDletInstaller@@SAPAVCApaAppInfoFileWriter@@AAVRFs@@ABVTDesC16@@VTUid@@KH@Z @ 235 NONAME ABSENT ; class CApaAppInfoFileWriter * ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(class RFs &, class TDesC16 const &, class TUid, unsigned long, int)
-	?CheckInterimFormatFileNotCorruptL@ForJavaMIDletInstaller@@SAXAAVRFile@@@Z @ 236 NONAME ABSENT ; void ForJavaMIDletInstaller::CheckInterimFormatFileNotCorruptL(class RFile &)
-	?RegisterJavaMIDletViaIterimFormat@RApaLsSession@@QAEHABVTDesC16@@AAVRFile@@@Z @ 237 NONAME ABSENT ; int RApaLsSession::RegisterJavaMIDletViaIterimFormat(class TDesC16 const &, class RFile &)
-	?DeregisterJavaMIDlet@RApaLsSession@@QAEHABVTDesC16@@@Z @ 238 NONAME ABSENT ; int RApaLsSession::DeregisterJavaMIDlet(class TDesC16 const &)
-	?AppForDocument@RApaLsSession@@QBEHAAVRFile@@AAVTUid@@AAVTDataType@@@Z @ 239 NONAME ; int RApaLsSession::AppForDocument(class RFile &, class TUid &, class TDataType &) const
-	?ClearFsSession@RApaLsSession@@SAXXZ @ 240 NONAME ; void RApaLsSession::ClearFsSession(void)
-	?FsSession@RApaLsSession@@SAPAVRFs@@XZ @ 241 NONAME ; class RFs * RApaLsSession::FsSession(void)
-	?RecognizeData@RApaLsSession@@QBEHAAVRFile@@AAVTDataRecognitionResult@@@Z @ 242 NONAME ; int RApaLsSession::RecognizeData(class RFile &, class TDataRecognitionResult &) const
-	?RecognizeSpecificData@RApaLsSession@@QBEHAAVRFile@@ABVTDataType@@AAH@Z @ 243 NONAME ; int RApaLsSession::RecognizeSpecificData(class RFile &, class TDataType const &, int &) const
-	?SetFsSessionL@RApaLsSession@@SAXAAVRFs@@@Z @ 244 NONAME ; void RApaLsSession::SetFsSessionL(class RFs &)
-	?StartDocument@RApaLsSession@@QAEHAAVRFile@@ABVTDataType@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 245 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TDataType const &, class TThreadId &, class TRequestStatus *)
-	?StartDocument@RApaLsSession@@QAEHAAVRFile@@VTUid@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 246 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TUid, class TThreadId &, class TRequestStatus *)
-	?GetPreferredBufSize@RApaLsSession@@QBEHAAH@Z @ 247 NONAME ; public: int __thiscall RApaLsSession::GetPreferredBufSize(int &)const 
-	?GetJavaMIDletInfoL@ForJavaMIDletInstaller@@SAXAAVRFs@@ABVTDesC16@@AAK2@Z @ 248 NONAME ABSENT ; void ForJavaMIDletInstaller::GetJavaMIDletInfoL(class RFs &, class TDesC16 const &, unsigned long &, unsigned long &)
-	?HandleAsRegistrationFile@ApaUtils@@SAHABVTUidType@@@Z @ 249 NONAME ; int ApaUtils::HandleAsRegistrationFile(class TUidType const &)
-	?DataTypes@TApaAppServiceInfo@@QBEABV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 250 NONAME ; class CArrayFixFlat<class TDataTypeWithPriority> const & TApaAppServiceInfo::DataTypes(void) const
-	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@ABVTDataType@@@Z @ 251 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid, class TDataType const &) const
-	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@ABVTDataType@@@Z @ 252 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid, class TDataType const &) const
-	?Close@RApaLsSession@@QAEXXZ @ 253 NONAME ; void RApaLsSession::Close(void)
-	?RegisterNonNativeApplicationType@RApaLsSession@@QAEHVTUid@@ABVTDesC16@@@Z @ 254 NONAME ; int RApaLsSession::RegisterNonNativeApplicationType(class TUid, class TDesC16 const &)
-	?DeregisterNonNativeApplicationType@RApaLsSession@@QAEHVTUid@@@Z @ 255 NONAME ; int RApaLsSession::DeregisterNonNativeApplicationType(class TUid)
-	?RegisterNonNativeApplication@RApaLsSession@@QAEHVTUid@@AAVRFile@@PAV3@2@Z @ 256 NONAME ; int RApaLsSession::RegisterNonNativeApplication(class TUid, class RFile &, class RFile &, class RFile &)
-	?DeregisterNonNativeApplication@RApaLsSession@@QAEHVTUid@@@Z @ 257 NONAME ; int RApaLsSession::DeregisterNonNativeApplication(class TUid)
-	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 258 NONAME ; class CApaAppData* CApaAppList::AppDataByFileName(class TDesC16 const &) const
-	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 259 NONAME ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
-	?OpaqueData@CApaAppData@@QBE?AVTPtrC8@@XZ @ 260 NONAME ; class TPtrC8 CApaAppData::OpaqueData(void) const
-	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 261 NONAME ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
-	?SetAppShortCaption@RApaLsSession@@QAEHABVTDesC16@@W4TLanguage@@VTUid@@@Z @ 262 NONAME ; int RApaLsSession::SetAppShortCaption(class TDesC16 const &, enum TLanguage, class TUid)
-	?CheckAppSecurity@CApaSecurityUtils@@SAHABVTPtrC16@@AAH1@Z @ 263 NONAME ; int CApaSecurityUtils::CheckAppSecurity(class TPtrC16 const &, int &, int &)
--- a/localisation/apparchitecture/bwins/APGRFX_9_REMOVE_UI_FRAMEWORKS_V1_EXCEPT_REMNANT_FOR_JAVA_MIDLET_INSTALLERU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,334 +0,0 @@
-EXPORTS
-	??0RApaLsSession@@QAE@XZ @ 1 NONAME ; public: __thiscall RApaLsSession::RApaLsSession(void)
-	??0TApaPictureFactory@@QAE@PAVCApaProcess@@@Z @ 2 NONAME ; public: __thiscall TApaPictureFactory::TApaPictureFactory(class CApaProcess *)
-	??0TApaTask@@QAE@AAVRWsSession@@@Z @ 3 NONAME ; public: __thiscall TApaTask::TApaTask(class RWsSession &)
-	??0TApaTaskList@@QAE@AAVRWsSession@@@Z @ 4 NONAME ; public: __thiscall TApaTaskList::TApaTaskList(class RWsSession &)
-	??1CApaAppInfoFileReader@@UAE@XZ @ 5 NONAME ABSENT ; public: virtual __thiscall CApaAppInfoFileReader::~CApaAppInfoFileReader(void)
-	??1CApaAppInfoFileWriter@@UAE@XZ @ 6 NONAME ; public: virtual __thiscall CApaAppInfoFileWriter::~CApaAppInfoFileWriter(void)
-	??1CApaAppList@@UAE@XZ @ 7 NONAME ; public: virtual __thiscall CApaAppList::~CApaAppList(void)
-	??1CApaDoor@@UAE@XZ @ 8 NONAME ; public: virtual __thiscall CApaDoor::~CApaDoor(void)
-	??1CApaMaskedBitmap@@UAE@XZ @ 9 NONAME ; public: virtual __thiscall CApaMaskedBitmap::~CApaMaskedBitmap(void)
-	??1CApaWindowGroupName@@UAE@XZ @ 10 NONAME ; public: virtual __thiscall CApaWindowGroupName::~CApaWindowGroupName(void)
-	?AddCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 11 NONAME ; public: void __thiscall CApaAppInfoFileWriter::AddCaptionL(enum TLanguage,class TDesC16 const &)
-	?AddIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@@Z @ 12 NONAME ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class CApaMaskedBitmap &)
-	?AddIconL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 13 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class TDesC16 const &)
-	?AppCount@RApaLsSession@@QBEHAAH@Z @ 14 NONAME ; public: int __thiscall RApaLsSession::AppCount(int &)const 
-	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 15 NONAME ; public: class CApaAppData * __thiscall CApaAppList::AppDataByUid(class TUid)const 
-	?AppEntry@CApaAppData@@QBE?AVTApaAppEntry@@XZ @ 16 NONAME ; public: class TApaAppEntry  __thiscall CApaAppData::AppEntry(void)const 
-	?AppUid@CApaWindowGroupName@@QBE?AVTUid@@XZ @ 17 NONAME ; public: class TUid  __thiscall CApaWindowGroupName::AppUid(void)const 
-	?AppUidL@CApaDoor@@QBE?AVTUid@@XZ @ 18 NONAME ; public: class TUid  __thiscall CApaDoor::AppUidL(void)const 
-	?BringToForeground@TApaTask@@QAEXXZ @ 19 NONAME ; public: void __thiscall TApaTask::BringToForeground(void)
-	?Capability@CApaAppData@@QBEXAAVTDes8@@@Z @ 20 NONAME ; public: void __thiscall CApaAppData::Capability(class TDes8 &)const 
-	?Capability@CApaAppInfoFileReader@@QBEXAAVTDes8@@@Z @ 21 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::Capability(class TDes8 &)const 
-	?Caption@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 22 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::Caption(void)const 
-	?CaptionL@CApaAppInfoFileReader@@QAE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 23 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAppInfoFileReader::CaptionL(enum TLanguage)
-	?Connect@RApaLsSession@@QAEHXZ @ 24 NONAME ; public: int __thiscall RApaLsSession::Connect(void)
-	?ConstructFromWgIdL@CApaWindowGroupName@@QAEXH@Z @ 25 NONAME ; public: void __thiscall CApaWindowGroupName::ConstructFromWgIdL(int)
-	?Count@CApaAppList@@QBEHXZ @ 26 NONAME ; public: int __thiscall CApaAppList::Count(void)const 
-	?CreateMaskedBitmapL@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 27 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppInfoFileReader::CreateMaskedBitmapL(int)
-	?CycleTasks@TApaTaskList@@QAEHVTUid@@W4TCycleDirection@1@@Z @ 28 NONAME ; public: int __thiscall TApaTaskList::CycleTasks(class TUid,enum TApaTaskList::TCycleDirection)
-	?DocName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 29 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::DocName(void)const 
-	?DocNameIsAFile@CApaWindowGroupName@@QBEHXZ @ 30 NONAME ; public: int __thiscall CApaWindowGroupName::DocNameIsAFile(void)const 
-	?DocumentL@CApaDoor@@QAEPAVCApaDocument@@H@Z @ 31 NONAME ; public: class CApaDocument * __thiscall CApaDoor::DocumentL(int)
-	?EmbeddableAppCount@RApaLsSession@@QBEHAAH@Z @ 32 NONAME ; public: int __thiscall RApaLsSession::EmbeddableAppCount(int &)const 
-	?EndTask@TApaTask@@QAEXXZ @ 33 NONAME ; public: void __thiscall TApaTask::EndTask(void)
-	?Exists@TApaTask@@QBEHXZ @ 34 NONAME ; public: int __thiscall TApaTask::Exists(void)const 
-	?ExternalizeL@CApaMaskedBitmap@@QBEXAAVRWriteStream@@@Z @ 35 NONAME ; public: void __thiscall CApaMaskedBitmap::ExternalizeL(class RWriteStream &)const 
-	?FindApp@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 36 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TDesC16 const &)
-	?FindApp@TApaTaskList@@QAE?AVTApaTask@@VTUid@@@Z @ 37 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TUid)
-	?FindByAppUid@CApaWindowGroupName@@SAXVTUid@@AAVRWsSession@@AAH@Z @ 38 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByAppUid(class TUid,class RWsSession &,int &)
-	?FindByCaption@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 39 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByCaption(class TDesC16 const &,class RWsSession &,int &)
-	?FindByDocName@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 40 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByDocName(class TDesC16 const &,class RWsSession &,int &)
-	?FindByPos@TApaTaskList@@QAE?AVTApaTask@@H@Z @ 41 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindByPos(int)
-	?FindDoc@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 42 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindDoc(class TDesC16 const &)
-	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 43 NONAME ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(void)const 
-	?GetAllApps@RApaLsSession@@QBEHXZ @ 44 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(void)const 
-	?GetAppCapability@RApaLsSession@@QBEHAAVTDes8@@VTUid@@@Z @ 45 NONAME ; public: int __thiscall RApaLsSession::GetAppCapability(class TDes8 &,class TUid)const 
-	?GetAppInfo@RApaLsSession@@QBEHAAVTApaAppInfo@@VTUid@@@Z @ 46 NONAME ; public: int __thiscall RApaLsSession::GetAppInfo(class TApaAppInfo &,class TUid)const 
-	?GetEmbeddableApps@RApaLsSession@@QBEHXZ @ 47 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(void)const 
-	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@@Z @ 48 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &)const 
-	?InternalizeL@CApaMaskedBitmap@@QAEXAAVRReadStream@@@Z @ 49 NONAME ; public: void __thiscall CApaMaskedBitmap::InternalizeL(class RReadStream &)
-	?IsBusy@CApaWindowGroupName@@QBEHXZ @ 50 NONAME ; public: int __thiscall CApaWindowGroupName::IsBusy(void)const 
-	?IsSystem@CApaWindowGroupName@@QBEHXZ @ 51 NONAME ; public: int __thiscall CApaWindowGroupName::IsSystem(void)const 
-	?KillTask@TApaTask@@QAEXXZ @ 52 NONAME ; public: void __thiscall TApaTask::KillTask(void)
-	?Mask@CApaMaskedBitmap@@QBEPAVCFbsBitmap@@XZ @ 53 NONAME ; public: class CFbsBitmap * __thiscall CApaMaskedBitmap::Mask(void)const 
-	?New@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@PAVHBufC16@@@Z @ 54 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::New(class RWsSession const &,class HBufC16 *)
-	?NewL@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 55 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewL(class RFs &,class TDesC16 const &,class TUid)
-	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppRegFinder@@HH@Z @ 56 NONAME ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppRegFinder *, int,int)
-	?NewL@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 57 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CApaDocument &,class TSize const &)
-	?NewL@CApaDoor@@SAPAV1@AAVRFs@@ABVCStreamStore@@VTStreamId@@AAVCApaProcess@@@Z @ 58 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CStreamStore const &,class TStreamId,class CApaProcess &)
-	?NewL@CApaMaskedBitmap@@SAPAV1@PBV1@@Z @ 59 NONAME ; class CApaMaskedBitmap * CApaMaskedBitmap::NewL(class CApaMaskedBitmap const *)
-	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 60 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &)
-	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 61 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,class TDesC16 const &)
-	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 62 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,int)
-	?NewLC@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 63 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewLC(class RFs &,class TDesC16 const &,class TUid)
-	?NewLC@CApaAppInfoFileWriter@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 64 NONAME ABSENT ; public: static class CApaAppInfoFileWriter * __cdecl CApaAppInfoFileWriter::NewLC(class RFs &,class TDesC16 const &,class TUid)
-	?NewLC@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 65 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewLC(class RFs &,class CApaDocument &,class TSize const &)
-	?NewLC@CApaMaskedBitmap@@SAPAV1@XZ @ 66 NONAME ; public: static class CApaMaskedBitmap * __cdecl CApaMaskedBitmap::NewLC(void)
-	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 67 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &)
-	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 68 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,class TDesC16 const &)
-	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 69 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,int)
-	?NewPictureL@TApaPictureFactory@@UBEXAAVTPictureHeader@@ABVCStreamStore@@@Z @ 70 NONAME ; public: virtual void __thiscall TApaPictureFactory::NewPictureL(class TPictureHeader &,class CStreamStore const &)const 
-	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@@Z @ 71 NONAME ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *)const 
-	?PurgeL@CApaAppList@@QAEXXZ @ 72 NONAME ; public: void __thiscall CApaAppList::PurgeL(void)
-	?RespondsToShutdownEvent@CApaWindowGroupName@@QBEHXZ @ 73 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToShutdownEvent(void)const 
-	?RespondsToSwitchFilesEvent@CApaWindowGroupName@@QBEHXZ @ 74 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToSwitchFilesEvent(void)const 
-	?RestoreL@CApaDoor@@QAEXABVCStreamStore@@VTStreamId@@@Z @ 75 NONAME ; public: void __thiscall CApaDoor::RestoreL(class CStreamStore const &,class TStreamId)
-	?SendKey@TApaTask@@QAEXABUTKeyEvent@@@Z @ 76 NONAME ; public: void __thiscall TApaTask::SendKey(struct TKeyEvent const &)
-	?SendKey@TApaTask@@QAEXHH@Z @ 77 NONAME ; public: void __thiscall TApaTask::SendKey(int,int)
-	?SendMessage@TApaTask@@QAEHVTUid@@ABVTDesC8@@@Z @ 78 NONAME ; public: int __thiscall TApaTask::SendMessage(class TUid,class TDesC8 const &)
-	?SendSystemEvent@TApaTask@@QAEXW4TApaSystemEvent@@@Z @ 79 NONAME ; public: void __thiscall TApaTask::SendSystemEvent(enum TApaSystemEvent)
-	?SendToBackground@TApaTask@@QAEXXZ @ 80 NONAME ; public: void __thiscall TApaTask::SendToBackground(void)
-	?SetAppUid@CApaWindowGroupName@@QAEXVTUid@@@Z @ 81 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppUid(class TUid)
-	?SetBusy@CApaWindowGroupName@@QAEXH@Z @ 82 NONAME ; public: void __thiscall CApaWindowGroupName::SetBusy(int)
-	?SetCapability@CApaAppInfoFileWriter@@QAEHABVTDesC8@@@Z @ 83 NONAME ; public: int __thiscall CApaAppInfoFileWriter::SetCapability(class TDesC8 const &)
-	?SetCaptionL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 84 NONAME ; public: void __thiscall CApaWindowGroupName::SetCaptionL(class TDesC16 const &)
-	?SetDocNameIsAFile@CApaWindowGroupName@@QAEXH@Z @ 85 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameIsAFile(int)
-	?SetDocNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 86 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameL(class TDesC16 const &)
-	?SetFormatToGlassL@CApaDoor@@QAEXXZ @ 87 NONAME ; public: void __thiscall CApaDoor::SetFormatToGlassL(void)
-	?SetFormatToIconL@CApaDoor@@QAEXXZ @ 88 NONAME ; public: void __thiscall CApaDoor::SetFormatToIconL(void)
-	?SetFormatToTemporaryIconL@CApaDoor@@QAEXH@Z @ 89 NONAME ; public: void __thiscall CApaDoor::SetFormatToTemporaryIconL(int)
-	?SetRespondsToShutdownEvent@CApaWindowGroupName@@QAEXH@Z @ 90 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToShutdownEvent(int)
-	?SetRespondsToSwitchFilesEvent@CApaWindowGroupName@@QAEXH@Z @ 91 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToSwitchFilesEvent(int)
-	?SetSystem@CApaWindowGroupName@@QAEXH@Z @ 92 NONAME ; public: void __thiscall CApaWindowGroupName::SetSystem(int)
-	?SetWgId@TApaTask@@QAEXH@Z @ 93 NONAME ; public: void __thiscall TApaTask::SetWgId(int)
-	?SetWindowGroupName@CApaWindowGroupName@@QAEXPAVHBufC16@@@Z @ 94 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupName(class HBufC16 *)
-	?SetWindowGroupName@CApaWindowGroupName@@QBEHAAVRWindowGroup@@@Z @ 95 NONAME ; public: int __thiscall CApaWindowGroupName::SetWindowGroupName(class RWindowGroup &)const 
-	?SetWindowGroupNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 96 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupNameL(class TDesC16 const &)
-	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@@Z @ 97 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &)
-	?StoreL@CApaAppInfoFileWriter@@QAEXXZ @ 98 NONAME ; public: void __thiscall CApaAppInfoFileWriter::StoreL(void)
-	?StretchDrawL@CApaAppInfoFileReader@@SAXPAVCFbsBitmap@@0VTSize@@@Z @ 99 NONAME ABSENT ; public: static void __cdecl CApaAppInfoFileReader::StretchDrawL(class CFbsBitmap *,class CFbsBitmap *,class TSize)
-	?SwitchCreateFile@TApaTask@@QAEHABVTDesC16@@@Z @ 100 NONAME ; public: int __thiscall TApaTask::SwitchCreateFile(class TDesC16 const &)
-	?SwitchOpenFile@TApaTask@@QAEHABVTDesC16@@@Z @ 101 NONAME ; public: int __thiscall TApaTask::SwitchOpenFile(class TDesC16 const &)
-	?ThreadId@TApaTask@@QBE?AVTThreadId@@XZ @ 102 NONAME ; public: class TThreadId  __thiscall TApaTask::ThreadId(void)const 
-	?UpdateCounter@CApaAppList@@QBEHXZ @ 103 NONAME ; public: int __thiscall CApaAppList::UpdateCounter(void)const 
-	?UpdateL@CApaAppList@@QAEXXZ @ 104 NONAME ABSENT ; public: void __thiscall CApaAppList::UpdateL(void)
-	?Version@RApaLsSession@@QBE?AVTVersion@@XZ @ 105 NONAME ; public: class TVersion  __thiscall RApaLsSession::Version(void)const 
-	?WgId@TApaTask@@QBEHXZ @ 106 NONAME ; public: int __thiscall TApaTask::WgId(void)const 
-	?WindowGroupName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 107 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::WindowGroupName(void)const 
-	??1CApaSystemControlList@@UAE@XZ @ 108 NONAME ; public: virtual __thiscall CApaSystemControlList::~CApaSystemControlList(void)
-	?Caption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 109 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::Caption(void)const 
-	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@H@Z @ 110 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(int)const 
-	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@VTUid@@@Z @ 111 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(class TUid)const 
-	?Count@CApaSystemControlList@@QBEHXZ @ 112 NONAME ; public: int __thiscall CApaSystemControlList::Count(void)const 
-	?CreateL@CApaSystemControl@@QAEXXZ @ 113 NONAME ; public: void __thiscall CApaSystemControl::CreateL(void)
-	?FileName@CApaSystemControl@@QBE?AV?$TBuf@$0BAA@@@XZ @ 114 NONAME ; public: class TBuf<256>  __thiscall CApaSystemControl::FileName(void)const 
-	?Icon@CApaSystemControl@@QBEPAVCApaMaskedBitmap@@XZ @ 115 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaSystemControl::Icon(void)const 
-	?Index@CApaSystemControlList@@QBEHVTUid@@@Z @ 116 NONAME ; public: int __thiscall CApaSystemControlList::Index(class TUid)const 
-	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@AAVCApaAppFinder@@ABVTDesC16@@@Z @ 117 NONAME ABSENT ; public: static class CApaSystemControlList * __cdecl CApaSystemControlList::NewL(class RFs &,class CApaAppFinder &,class TDesC16 const &)
-	?Type@CApaSystemControl@@QBE?AVTUid@@XZ @ 118 NONAME ; public: class TUid  __thiscall CApaSystemControl::Type(void)const 
-	?UpdateL@CApaSystemControlList@@QAEXXZ @ 119 NONAME ; public: void __thiscall CApaSystemControlList::UpdateL(void)
-	?AddDataTypeL@CApaAppInfoFileWriter@@QAEXABVTDataTypeWithPriority@@@Z @ 120 NONAME ; public: void __thiscall CApaAppInfoFileWriter::AddDataTypeL(class TDataTypeWithPriority const &)
-	?AppForDataType@RApaLsSession@@QBEHABVTDataType@@AAVTUid@@@Z @ 121 NONAME ; public: int __thiscall RApaLsSession::AppForDataType(class TDataType const &,class TUid &)const 
-	?AppForDocument@RApaLsSession@@QBEHABVTDesC16@@AAVTUid@@AAVTDataType@@@Z @ 122 NONAME ; public: int __thiscall RApaLsSession::AppForDocument(class TDesC16 const &,class TUid &,class TDataType &)const 
-	?CreateDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 123 NONAME ; public: int __thiscall RApaLsSession::CreateDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?DataType@CApaAppData@@QBEJABVTDataType@@@Z @ 124 NONAME ; long CApaAppData::DataType(class TDataType const &) const
-	?DataTypesSupportedL@CApaAppInfoFileReader@@QBEXAAV?$CArrayFix@VTDataTypeWithPriority@@@@@Z @ 125 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::DataTypesSupportedL(class CArrayFix<class TDataTypeWithPriority> &)const 
-	?GetAcceptedConfidence@RApaLsSession@@QBEHAAH@Z @ 126 NONAME ; public: int __thiscall RApaLsSession::GetAcceptedConfidence(int &)const 
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@HAAVCApaMaskedBitmap@@@Z @ 127 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,int,class CApaMaskedBitmap &)const 
-	?GetMaxDataBufSize@RApaLsSession@@QBEHAAH@Z @ 128 NONAME ; public: int __thiscall RApaLsSession::GetMaxDataBufSize(int &)const 
-	?GetSupportedDataTypesL@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTDataType@@@@@Z @ 129 NONAME ; public: int __thiscall RApaLsSession::GetSupportedDataTypesL(class CArrayFixFlat<class TDataType> &)const 
-	?IsProgram@RApaLsSession@@QBEHABVTDesC16@@AAH@Z @ 130 NONAME ; public: int __thiscall RApaLsSession::IsProgram(class TDesC16 const &,int &)const 
-	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 131 NONAME ; public: class TUid  __thiscall CApaAppList::PreferredDataHandlerL(class TDataType const &)const 
-	?RecognizeData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVTDataRecognitionResult@@@Z @ 132 NONAME ; public: int __thiscall RApaLsSession::RecognizeData(class TDesC16 const &,class TDesC8 const &,class TDataRecognitionResult &)const 
-	?RecognizeSpecificData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@ABVTDataType@@AAH@Z @ 133 NONAME ; public: int __thiscall RApaLsSession::RecognizeSpecificData(class TDesC16 const &,class TDesC8 const &,class TDataType const &,int &)const 
-	?SetAcceptedConfidence@RApaLsSession@@QAEHH@Z @ 134 NONAME ; public: int __thiscall RApaLsSession::SetAcceptedConfidence(int)
-	?SetMaxDataBufSize@RApaLsSession@@QAEHH@Z @ 135 NONAME ; public: int __thiscall RApaLsSession::SetMaxDataBufSize(int)
-	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@AAVTThreadId@@W4TLaunchType@1@@Z @ 136 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@ABVTDataType@@AAVTThreadId@@W4TLaunchType@1@@Z @ 137 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TDataType const &,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 138 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 139 NONAME ; public: void __thiscall CApaAppList::StartIdleUpdateL(void)
-	??1CApaAppListNotifier@@UAE@XZ @ 140 NONAME ; public: virtual __thiscall CApaAppListNotifier::~CApaAppListNotifier(void)
-	?NewL@CApaAppListNotifier@@SAPAV1@PAVMApaAppListServObserver@@W4TPriority@CActive@@@Z @ 141 NONAME ; public: static class CApaAppListNotifier * __cdecl CApaAppListNotifier::NewL(class MApaAppListServObserver *,enum CActive::TPriority)
-	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 142 NONAME ; public: void __thiscall CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@VTSize@@AAVCApaMaskedBitmap@@@Z @ 143 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,class TSize,class CApaMaskedBitmap &)const 
-	?GetAppIconSizes@RApaLsSession@@QBEHVTUid@@AAV?$CArrayFixFlat@VTSize@@@@@Z @ 144 NONAME ; public: int __thiscall RApaLsSession::GetAppIconSizes(class TUid,class CArrayFixFlat<class TSize> &)const 
-	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@VTSize@@@Z @ 145 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(class TSize)const 
-	?IconSizesL@CApaAppData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 146 NONAME ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppData::IconSizesL(void)const 
-	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@H@Z @ 147 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(int)const 
-	?Hidden@CApaWindowGroupName@@QBEHXZ @ 148 NONAME ; int CApaWindowGroupName::Hidden(void) const
-	?SetHidden@CApaWindowGroupName@@QAEXH@Z @ 149 NONAME ; public: void __thiscall CApaWindowGroupName::SetHidden(int)
-	?AddViewCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@VTUid@@@Z @ 150 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewCaptionL(enum TLanguage,class TDesC16 const &,class TUid)
-	?AddViewIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@VTUid@@@Z @ 151 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewIconL(class CApaMaskedBitmap &,class TUid)
-	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 152 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid)
-	?CaptionL@CApaAIFViewData@@QBE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 153 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAIFViewData::CaptionL(enum TLanguage)const 
-	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0ABVTSize@@AAVCApaMaskedBitmap@@@Z @ 154 NONAME ; public: int __thiscall RApaLsSession::GetAppViewIcon(class TUid,class TUid,class TSize const &,class CApaMaskedBitmap &)const 
-	?GetAppViews@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTApaAppViewInfo@@@@VTUid@@@Z @ 155 NONAME ; public: int __thiscall RApaLsSession::GetAppViews(class CArrayFixFlat<class TApaAppViewInfo> &,class TUid)const 
-	?GetViewsL@CApaAppInfoFileReader@@QBEXAAV?$CArrayPtr@VCApaAIFViewData@@@@@Z @ 156 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetViewsL(class CArrayPtr<class CApaAIFViewData> &)const 
-	?Icon@CApaAppViewData@@QBEPAVCApaMaskedBitmap@@ABVTSize@@@Z @ 157 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaAppViewData::Icon(class TSize const &)const 
-	?IconByIndexL@CApaAIFViewData@@QBEPAVCApaMaskedBitmap@@H@Z @ 158 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAIFViewData::IconByIndexL(int)const 
-	?IconSizesL@CApaAppViewData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 159 NONAME ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppViewData::IconSizesL(void)const 
-	?NumberOfIcons@CApaAIFViewData@@QBEHXZ @ 160 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::NumberOfIcons(void)const 
-	?StoreViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 161 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::StoreViewL(class TUid)
-	?Uid@CApaAppViewData@@QBE?AVTUid@@XZ @ 162 NONAME ; public: class TUid  __thiscall CApaAppViewData::Uid(void)const 
-	?ViewUid@CApaAIFViewData@@QBE?AVTUid@@XZ @ 163 NONAME ABSENT ; public: class TUid  __thiscall CApaAIFViewData::ViewUid(void)const 
-	?Views@CApaAppData@@QBEPAV?$CArrayPtrFlat@VCApaAppViewData@@@@XZ @ 164 NONAME ; public: class CArrayPtrFlat<class CApaAppViewData> * __thiscall CApaAppData::Views(void)const 
-	?AddOwnedFileL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 165 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddOwnedFileL(class TDesC16 const &)
-	?GetOwnedFilesL@CApaAppInfoFileReader@@QBEXAAVCDesC16Array@@@Z @ 166 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetOwnedFilesL(class CDesC16Array &)const 
-	?OwnedFiles@CApaAppData@@QBEPAVCDesC16Array@@XZ @ 167 NONAME ; public: class CDesC16Array * __thiscall CApaAppData::OwnedFiles(void)const 
-	?GetAppOwnedFiles@RApaLsSession@@QBEHAAVCDesC16Array@@VTUid@@@Z @ 168 NONAME ; public: int __thiscall RApaLsSession::GetAppOwnedFiles(class CDesC16Array &,class TUid)const 
-	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@@Z @ 169 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &,class TThreadId &)
-	?GetAifFileName@AppInfoFileUtils@@SAXABVRFs@@AAVTDes16@@@Z @ 170 NONAME ABSENT ; public: static void __cdecl AppInfoFileUtils::GetAifFileName(class RFs const &,class TDes16 &)
-	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@H@Z @ 171 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid,int)
-	?CanUseScreenMode@CApaAppData@@QAEHH@Z @ 172 NONAME ; public: int __thiscall CApaAppData::CanUseScreenMode(int)
-	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 173 NONAME ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(int)const 
-	?GetAllApps@RApaLsSession@@QBEHH@Z @ 174 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(int)const 
-	?GetEmbeddableApps@RApaLsSession@@QBEHH@Z @ 175 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(int)const 
-	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@H@Z @ 176 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &,int)const 
-	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@H@Z @ 177 NONAME ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *,int)const 
-	?ScreenMode@CApaAIFViewData@@QBEHXZ @ 178 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::ScreenMode(void)const 
-	?ScreenMode@CApaAppViewData@@QBEHXZ @ 179 NONAME ; public: int __thiscall CApaAppViewData::ScreenMode(void)const 
-	?ShortCaption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 180 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::ShortCaption(void)const 
-	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 181 NONAME ; public: int __thiscall CApaAppList::IsIdleUpdateComplete(void)const 
-	?IsAppReady@CApaWindowGroupName@@QBEHXZ @ 182 NONAME ; public: int __thiscall CApaWindowGroupName::IsAppReady(void)const 
-	?SetAppReady@CApaWindowGroupName@@QAEXH@Z @ 183 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppReady(int)
-	?InitListL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 184 NONAME ; public: void __thiscall CApaAppList::InitListL(class MApaAppListObserver *)
-	?NumberOfBitmaps@CApaAppInfoFileReader@@QBEHXZ @ 185 NONAME ABSENT ; public: int __thiscall CApaAppInfoFileReader::NumberOfBitmaps(void)const 
-	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 186 NONAME ; public: int __thiscall CApaAppList::IsFirstScanComplete(void)const 
-	?SetMaskBitmap@CApaMaskedBitmap@@QAEXPAVCFbsBitmap@@@Z @ 187 NONAME ; public: void __thiscall CApaMaskedBitmap::SetMaskBitmap(class CFbsBitmap *)
-	?GetAppInfo_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@VTUid@@@Z @ 188 NONAME ABSENT ; int RApaLsSession::GetAppInfo_7_0(class TApaAppInfo_7_0 &, class TUid) const
-	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@@Z @ 189 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &) const
-	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@H@Z @ 190 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &, int) const
-	?GetIconInfo@CApaAppData@@QBEXAAH0@Z @ 191 NONAME ; void CApaAppData::GetIconInfo(int &, int &) const
-	?NumberOfOwnDefinedIcons@RApaLsSession@@QBEHVTUid@@AAH@Z @ 192 NONAME ; public: int __thiscall RApaLsSession::NumberOfOwnDefinedIcons(class TUid,int &)const 
-	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@@Z @ 193 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &)const 
-	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@H@Z @ 194 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &,int)const 
-	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppFinder@@PAVCApaAppRegFinder@@H@Z @ 195 NONAME ABSENT ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppFinder *, class CApaAppRegFinder *, int)	
-	?DefaultScreenNumber@CApaAppData@@QBEIXZ @ 196 NONAME ; unsigned int CApaAppData::DefaultScreenNumber(void) const
-	?GetFilteredApps@RApaLsSession@@QBEHII@Z @ 197 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int) const
-	?GetFilteredApps@RApaLsSession@@QBEHIIH@Z @ 198 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int, int) const
-	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 199 NONAME ; int CApaAppData::RegistrationFileUsed(void) const
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAPAVHBufC16@@@Z @ 200 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class HBufC16 * &) const
-	?IconFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 201 NONAME ; class TPtrC16 CApaAppData::IconFileName(void) const
-	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0AAPAVHBufC16@@@Z @ 202 NONAME ; int RApaLsSession::GetAppViewIcon(class TUid, class TUid, class HBufC16 * &) const
-	?IconFileName@CApaAppViewData@@QBE?AVTPtrC16@@XZ @ 203 NONAME ; class TPtrC16 CApaAppViewData::IconFileName(void) const
-	?NonMbmIconFile@CApaAppData@@QBEHXZ @ 204 NONAME ; int CApaAppData::NonMbmIconFile(void) const
-	?NonMbmIconFile@CApaAppViewData@@QBEHXZ @ 205 NONAME ; int CApaAppViewData::NonMbmIconFile(void) const
-	?StartupApaServer@@YAHAAVMApaAppStarter@@@Z @ 206 NONAME ; int StartupApaServer(class MApaAppStarter &)
-	?StartupApaServerProcess@@YAHXZ @ 207 NONAME ; int StartupApaServerProcess(void)
-	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@@Z @ 208 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &)
-	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@@Z @ 209 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid)
-	?InsertDataMappingIfHigher@RApaLsSession@@QAEHABVTDataType@@JVTUid@@AAH@Z @ 210 NONAME ; int RApaLsSession::InsertDataMappingIfHigher(class TDataType const &, long, class TUid, int &)
-	?ApplicationLanguage@CApaAppData@@QBE?AW4TLanguage@@XZ @ 211 NONAME ; enum TLanguage CApaAppData::ApplicationLanguage(void) const
-	?ApplicationLanguage@RApaLsSession@@QBEHVTUid@@AAW4TLanguage@@@Z @ 212 NONAME ; int RApaLsSession::ApplicationLanguage(class TUid, enum TLanguage &) const
-	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@@Z @ 213 NONAME ; class CApaSystemControlList * CApaSystemControlList::NewL(class RFs &)
-	?AppForDataTypeAndService@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 214 NONAME ; int RApaLsSession::AppForDataTypeAndService(class TDataType const &, class TUid, class TUid &) const
-	?AppForDocumentAndService@RApaLsSession@@QBEHABVRFile@@VTUid@@AAV3@AAVTDataType@@@Z @ 215 NONAME ; int RApaLsSession::AppForDocumentAndService(class RFile const &, class TUid, class TUid &, class TDataType &) const
-	?AppForDocumentAndService@RApaLsSession@@QBEHABVTDesC16@@VTUid@@AAV3@AAVTDataType@@@Z @ 216 NONAME ; int RApaLsSession::AppForDocumentAndService(class TDesC16 const &, class TUid, class TUid &, class TDataType &) const
-	?GetAppServiceOpaqueDataLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@0@Z @ 217 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServiceOpaqueDataLC(class TUid, class TUid) const
-	?GetAppServicesL@RApaLsSession@@QBEXVTUid@@AAV?$CArrayFixFlat@VTUid@@@@@Z @ 218 NONAME ; void RApaLsSession::GetAppServicesL(class TUid, class CArrayFixFlat<class TUid> &) const
-	?GetAppServicesLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 219 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServicesLC(class TUid) const
-	?GetServerApps@RApaLsSession@@QBEHVTUid@@@Z @ 220 NONAME ; int RApaLsSession::GetServerApps(class TUid) const
-	?GetServerApps@RApaLsSession@@QBEHVTUid@@H@Z @ 221 NONAME ; int RApaLsSession::GetServerApps(class TUid, int) const
-	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 222 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid) const
-	?ImplementsService@CApaAppData@@QBEHVTUid@@@Z @ 223 NONAME ; int CApaAppData::ImplementsService(class TUid) const
-	?OpaqueData@TApaAppServiceInfo@@QBEABVTDesC8@@XZ @ 224 NONAME ; class TDesC8 const & TApaAppServiceInfo::OpaqueData(void) const
-	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@AAH@Z @ 225 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *, int &) const
-	?ServiceArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 226 NONAME ; class CBufFlat * CApaAppList::ServiceArrayBufferL(class TUid) const
-	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 227 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid) const
-	?ServiceOpaqueDataBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@0@Z @ 228 NONAME ; class CBufFlat * CApaAppList::ServiceOpaqueDataBufferL(class TUid, class TUid) const
-	?ServiceUidBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 229 NONAME ; class CBufFlat * CApaAppList::ServiceUidBufferL(class TUid) const
-	?Uid@TApaAppServiceInfo@@QBE?AVTUid@@XZ @ 230 NONAME ; class TUid TApaAppServiceInfo::Uid(void) const
-	?StartDocument@RApaLsSession@@QAEHAAVRFile@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 231 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TThreadId &, class TRequestStatus *)
-	?CreateMaskedBitmapByIndexLC@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 232 NONAME ABSENT ; class CApaMaskedBitmap * CApaAppInfoFileReader::CreateMaskedBitmapByIndexLC(int)
-	?CancelListPopulationCompleteObserver@RApaLsSession@@QBEHXZ @ 233 NONAME ; int RApaLsSession::CancelListPopulationCompleteObserver(void) const
-	?RegisterListPopulationCompleteObserver@RApaLsSession@@QBEXAAVTRequestStatus@@@Z @ 234 NONAME ; void RApaLsSession::RegisterListPopulationCompleteObserver(class TRequestStatus &) const
-	?NewInterimFormatFileWriterLC@ForJavaMIDletInstaller@@SAPAVCApaAppInfoFileWriter@@AAVRFs@@ABVTDesC16@@VTUid@@KH@Z @ 235 NONAME ; class CApaAppInfoFileWriter * ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(class RFs &, class TDesC16 const &, class TUid, unsigned long, int)
-	?CheckInterimFormatFileNotCorruptL@ForJavaMIDletInstaller@@SAXAAVRFile@@@Z @ 236 NONAME ; void ForJavaMIDletInstaller::CheckInterimFormatFileNotCorruptL(class RFile &)
-	?RegisterJavaMIDletViaIterimFormat@RApaLsSession@@QAEHABVTDesC16@@AAVRFile@@@Z @ 237 NONAME ABSENT ; int RApaLsSession::RegisterJavaMIDletViaIterimFormat(class TDesC16 const &, class RFile &)
-	?DeregisterJavaMIDlet@RApaLsSession@@QAEHABVTDesC16@@@Z @ 238 NONAME ABSENT ; int RApaLsSession::DeregisterJavaMIDlet(class TDesC16 const &)
-	?AppForDocument@RApaLsSession@@QBEHABVRFile@@AAVTUid@@AAVTDataType@@@Z @ 239 NONAME ; int RApaLsSession::AppForDocument(class RFile const &, class TUid &, class TDataType &) const
-	?ClearFsSession@RApaLsSession@@SAXXZ @ 240 NONAME ; void RApaLsSession::ClearFsSession(void)
-	?FsSession@RApaLsSession@@SAPAVRFs@@XZ @ 241 NONAME ; class RFs * RApaLsSession::FsSession(void)
-	?RecognizeData@RApaLsSession@@QBEHABVRFile@@AAVTDataRecognitionResult@@@Z @ 242 NONAME ; int RApaLsSession::RecognizeData(class RFile const &, class TDataRecognitionResult &) const	
-	?RecognizeSpecificData@RApaLsSession@@QBEHABVRFile@@ABVTDataType@@AAH@Z @ 243 NONAME ; int RApaLsSession::RecognizeSpecificData(class RFile const &, class TDataType const &, int &) const
-	?SetFsSessionL@RApaLsSession@@SAXAAVRFs@@@Z @ 244 NONAME ; void RApaLsSession::SetFsSessionL(class RFs &)
-	?StartDocument@RApaLsSession@@QAEHAAVRFile@@ABVTDataType@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 245 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TDataType const &, class TThreadId &, class TRequestStatus *)
-	?StartDocument@RApaLsSession@@QAEHAAVRFile@@VTUid@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 246 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TUid, class TThreadId &, class TRequestStatus *)
-	?GetPreferredBufSize@RApaLsSession@@QBEHAAH@Z @ 247 NONAME ; public: int __thiscall RApaLsSession::GetPreferredBufSize(int &)const 
-	?GetJavaMIDletInfoL@ForJavaMIDletInstaller@@SAXAAVRFs@@ABVTDesC16@@AAK2@Z @ 248 NONAME ; void ForJavaMIDletInstaller::GetJavaMIDletInfoL(class RFs &, class TDesC16 const &, unsigned long &, unsigned long &)
-	?HandleAsRegistrationFile@ApaUtils@@SAHABVTUidType@@@Z @ 249 NONAME ; int ApaUtils::HandleAsRegistrationFile(class TUidType const &)
-	?DataTypes@TApaAppServiceInfo@@QBEABV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 250 NONAME ; class CArrayFixFlat<class TDataTypeWithPriority> const & TApaAppServiceInfo::DataTypes(void) const
-	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@ABVTDataType@@@Z @ 251 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid, class TDataType const &) const
-	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@ABVTDataType@@@Z @ 252 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid, class TDataType const &) const
-	?Close@RApaLsSession@@QAEXXZ @ 253 NONAME ; void RApaLsSession::Close(void)
-	??0MApaAppListServObserver@@IAE@XZ @ 254 NONAME ; MApaAppListServObserver::MApaAppListServObserver(void)
-	??0TApaPictureFactory@@IAE@XZ @ 255 NONAME ; TApaPictureFactory::TApaPictureFactory(void)
-	?MApaAppListServObserver_Reserved1@MApaAppListServObserver@@EAEXXZ @ 256 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved1(void)
-	?MApaAppListServObserver_Reserved2@MApaAppListServObserver@@EAEXXZ @ 257 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved2(void)
-	?RApaLsSession_Reserved1@RApaLsSession@@EAEXXZ @ 258 NONAME ; void RApaLsSession::RApaLsSession_Reserved1(void)
-	?RApaLsSession_Reserved2@RApaLsSession@@EAEXXZ @ 259 NONAME ; void RApaLsSession::RApaLsSession_Reserved2(void)
-	??0CDataRecognitionResultArray@@QAE@XZ @ 260 NONAME ; CDataRecognitionResultArray::CDataRecognitionResultArray(void)
-	??1CDataRecognitionResultArray@@UAE@XZ @ 261 NONAME ; CDataRecognitionResultArray::~CDataRecognitionResultArray(void)
-	?CancelRecognizeFiles@RApaLsSession@@QAEXXZ @ 262 NONAME ; void RApaLsSession::CancelRecognizeFiles(void)
-	?Count@CDataRecognitionResultArray@@QBEIXZ @ 263 NONAME ; unsigned int CDataRecognitionResultArray::Count(void) const
-	?GetDataRecognitionResultL@CDataRecognitionResultArray@@QBEXAAVTDataRecognitionResult@@I@Z @ 264 NONAME ; void CDataRecognitionResultArray::GetDataRecognitionResultL(class TDataRecognitionResult &, unsigned int) const
-	?GetFileNameL@CDataRecognitionResultArray@@QBEXAAV?$TBuf@$0BAA@@@I@Z @ 265 NONAME ; void CDataRecognitionResultArray::GetFileNameL(class TBuf<256> &, unsigned int) const
-	?Path@CDataRecognitionResultArray@@QBEABV?$TBuf@$0BAA@@@XZ @ 266 NONAME ; class TBuf<256> const & CDataRecognitionResultArray::Path(void) const
-	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@AAVCDataRecognitionResultArray@@@Z @ 267 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &) const
-	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@@Z @ 268 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &) const
-	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 269 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
-	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 270 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
-	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@1@Z @ 271 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid, class TUid)
-	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@VTUid@@@Z @ 272 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &, class TUid)
-	?GetAppByDataType@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 273 NONAME ; int RApaLsSession::GetAppByDataType(class TDataType const &, class TUid, class TUid &) const
-	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 274 NONAME ; int RApaLsSession::StartApp(class CApaCommandLine const &, class TThreadId &, class TRequestStatus *)
-	?RegisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@ABVTDesC16@@@Z @ 275 NONAME ; void RApaLsSession::RegisterNonNativeApplicationTypeL(class TUid, class TDesC16 const &)
-	?DeregisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@@Z @ 276 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationTypeL(class TUid)
-	?RegisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@ABVTDriveUnit@@AAVCApaRegistrationResourceFileWriter@@PAVCApaLocalisableResourceFileWriter@@PBVRFile@@@Z @ 277 NONAME ; void RApaLsSession::RegisterNonNativeApplicationL(class TUid, class TDriveUnit const &, class CApaRegistrationResourceFileWriter &, class CApaLocalisableResourceFileWriter *, class RFile const *)
-	?DeregisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@@Z @ 278 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationL(class TUid)
-	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 279 NONAME ; class CApaAppData* CApaAppList::AppDataByFileName(class TDesC16 const &) const
-	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 280 NONAME ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
-	?OpaqueData@CApaAppData@@QBE?AVTPtrC8@@XZ @ 281 NONAME ; class TPtrC8 CApaAppData::OpaqueData(void) const
-	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 282 NONAME ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
-	?GetDefaultScreenNumber@RApaLsSession@@QBEHAAHVTUid@@@Z @ 283 NONAME ; int RApaLsSession::GetDefaultScreenNumber(int &, class TUid) const
-	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 284 NONAME ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
-	?MatchesSecurityPolicy@RApaLsSession@@QBEHAAHVTUid@@ABVTSecurityPolicy@@@Z @ 285 NONAME ; int RApaLsSession::MatchesSecurityPolicy(int &, class TUid, class TSecurityPolicy const &) const
-	?AddDataTypeL@CApaRegistrationResourceFileWriter@@QAEXHABVTDesC8@@@Z @ 286 NONAME ; void CApaRegistrationResourceFileWriter::AddDataTypeL(int, class TDesC8 const &)
-	?AddFileOwnershipInfoL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 287 NONAME ; void CApaRegistrationResourceFileWriter::AddFileOwnershipInfoL(class TDesC16 const &)
-	?NewL@CApaLocalisableResourceFileWriter@@SAPAV1@ABVTDesC16@@0H0@Z @ 288 NONAME ; class CApaLocalisableResourceFileWriter * CApaLocalisableResourceFileWriter::NewL(class TDesC16 const &, class TDesC16 const &, int, class TDesC16 const &)
-	?NewL@CApaRegistrationResourceFileWriter@@SAPAV1@VTUid@@ABVTDesC16@@I@Z @ 289 NONAME ; class CApaRegistrationResourceFileWriter * CApaRegistrationResourceFileWriter::NewL(class TUid, class TDesC16 const &, unsigned int)
-	?NonNativeApplicationType@CApaAppData@@QBE?AVTUid@@XZ @ 290 NONAME ; class TUid CApaAppData::NonNativeApplicationType(void) const
-	?SetAppIsHiddenL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 291 NONAME ; void CApaRegistrationResourceFileWriter::SetAppIsHiddenL(int)
-	?SetDefaultScreenNumberL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 292 NONAME ; void CApaRegistrationResourceFileWriter::SetDefaultScreenNumberL(int)
-	?SetEmbeddabilityL@CApaRegistrationResourceFileWriter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 293 NONAME ; void CApaRegistrationResourceFileWriter::SetEmbeddabilityL(enum TApaAppCapability::TEmbeddability)
-	?SetGroupNameL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 294 NONAME ; void CApaRegistrationResourceFileWriter::SetGroupNameL(class TDesC16 const &)
-	?SetLaunchInBackgroundL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 295 NONAME ; void CApaRegistrationResourceFileWriter::SetLaunchInBackgroundL(int)
-	?SetOpaqueDataL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC8@@@Z @ 296 NONAME ; void CApaRegistrationResourceFileWriter::SetOpaqueDataL(class TDesC8 const &)
-	?SetSupportsNewFileL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 297 NONAME ; void CApaRegistrationResourceFileWriter::SetSupportsNewFileL(int)
-	??1CApaLocalisableResourceFileWriter@@UAE@XZ @ 298 NONAME ; CApaLocalisableResourceFileWriter::~CApaLocalisableResourceFileWriter(void)
-	??1CApaRegistrationResourceFileWriter@@UAE@XZ @ 299 NONAME ; CApaRegistrationResourceFileWriter::~CApaRegistrationResourceFileWriter(void)
-	?AppScanInProgress@CApaAppList@@QBEHXZ @ 300 NONAME ; int CApaAppList::AppScanInProgress(void) const
-	?CancelNotify@RApaLsSession@@QAEXXZ @ 301 NONAME ; void RApaLsSession::CancelNotify(void)
-	?SetNotify@RApaLsSession@@QAEXHAAVTRequestStatus@@@Z @ 302 NONAME ; void RApaLsSession::SetNotify(int, class TRequestStatus &)
-	?CancelNotifyOnDataMappingChange@RApaLsSession@@QAEXXZ @ 303 NONAME ; void RApaLsSession::CancelNotifyOnDataMappingChange(void)
-	?NotifyOnDataMappingChange@RApaLsSession@@QAEXAAVTRequestStatus@@@Z @ 304 NONAME ; void RApaLsSession::NotifyOnDataMappingChange(class TRequestStatus &)
-	?GetAppType@RApaLsSession@@QBEHAAVTUid@@V2@@Z @ 305 NONAME ; int RApaLsSession::GetAppType(class TUid &, class TUid) const
-	?CommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 306 NONAME ; void RApaLsSession::CommitNonNativeApplicationsUpdatesL(void)
-	?PrepareNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 307 NONAME ; void RApaLsSession::PrepareNonNativeApplicationsUpdatesL(void)
-	?RollbackNonNativeApplicationsUpdates@RApaLsSession@@QAEHXZ @ 308 NONAME ; int RApaLsSession::RollbackNonNativeApplicationsUpdates(void)
-	?SetUpdatedAppsList@CApaAppList@@QAEXPAVCUpdatedAppsList@@@Z @ 309 NONAME ABSENT ; void CApaAppList::SetUpdatedAppsList(class CUpdatedAppsList *)
-	?UpdatedAppsList@CApaAppList@@QAEPAVCUpdatedAppsList@@XZ @ 310 NONAME ABSENT ; class CUpdatedAppsList * CApaAppList::UpdatedAppsList(void)
-	??1CApaAppData@@UAE@XZ @ 311 NONAME ; CApaAppData::~CApaAppData(void)
-	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@ABVTDesC16@@@Z @ 312 NONAME ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &, class TDesC16 const &)
-	?Self@CApaAppList@@SAPAV1@XZ @ 313 NONAME ; class CApaAppList * CApaAppList::Self(void)
-	?ShareProtectedFileServer@CApaAppList@@QAEAAVRFs@@XZ @ 314 NONAME ABSENT ; class RFs & CApaAppList::ShareProtectedFileServer(void)
-	X @ 315 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
-	X @ 316 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
-	X @ 317 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
-	X @ 318 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
-	?SetAppShortCaption@RApaLsSession@@QAEHABVTDesC16@@W4TLanguage@@VTUid@@@Z @ 319 NONAME ; int RApaLsSession::SetAppShortCaption(class TDesC16 const &, enum TLanguage, class TUid)
-	?SetShortCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 320 NONAME ; void CApaAppData::SetShortCaptionL(class TDesC16 const &)
-	?ForceRegistration@RApaLsSession@@QAEHABV?$RPointerArray@VTDesC16@@@@@Z @ 321 NONAME ; int RApaLsSession::ForceRegistration(class RPointerArray<class TDesC16> const &)
-	?AddForcedRegistrationL@CApaAppList@@QAEXPAVHBufC16@@@Z @ 322 NONAME ; void CApaAppList::AddForcedRegistrationL(class HBufC16 *)
-	?CompareStrings@CApaAppList@@SAHABVHBufC16@@0@Z @ 323 NONAME ; int CApaAppList::CompareStrings(class HBufC16 const &, class HBufC16 const &)
-	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 324 NONAME ; void CApaAppList::ResetForcedRegistrations(void)
-	?RestartScanL@CApaAppList@@QAEXXZ @ 325 NONAME ; void CApaAppList::RestartScanL(void)
-	?StopScan@CApaAppList@@QAEXXZ @ 326 NONAME ; void CApaAppList::StopScan(void)
-	?MinApplicationStackSize@@YAIXZ @ 327 NONAME ; unsigned int MinApplicationStackSize(void)
-	?KMinApplicationStackSize@@3HB @ 328 NONAME ; int const KMinApplicationStackSize
-	?CheckAppSecurity@CApaSecurityUtils@@SAHABVTPtrC16@@AAH1@Z @ 329 NONAME ; int CApaSecurityUtils::CheckAppSecurity(class TPtrC16 const &, int &, int &)
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAVRFile@@@Z @ 330 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class RFile &) const
-	?IsLanguageChangePending@CApaAppList@@QBEHXZ @ 331 NONAME ; int CApaAppList::IsLanguageChangePending(void) const
-	?IsPending@CApaAppData@@QBEHXZ @ 332 NONAME ; int CApaAppData::IsPending(void) const
-
--- a/localisation/apparchitecture/bwins/APGRFX_UI_FRAMEWORKSU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,338 +0,0 @@
-EXPORTS
-	??0RApaLsSession@@QAE@XZ @ 1 NONAME ; public: __thiscall RApaLsSession::RApaLsSession(void)
-	??0TApaPictureFactory@@QAE@PAVCApaProcess@@@Z @ 2 NONAME ; public: __thiscall TApaPictureFactory::TApaPictureFactory(class CApaProcess *)
-	??0TApaTask@@QAE@AAVRWsSession@@@Z @ 3 NONAME ; public: __thiscall TApaTask::TApaTask(class RWsSession &)
-	??0TApaTaskList@@QAE@AAVRWsSession@@@Z @ 4 NONAME ; public: __thiscall TApaTaskList::TApaTaskList(class RWsSession &)
-	??1CApaAppInfoFileReader@@UAE@XZ @ 5 NONAME ABSENT ; public: virtual __thiscall CApaAppInfoFileReader::~CApaAppInfoFileReader(void)
-	??1CApaAppInfoFileWriter@@UAE@XZ @ 6 NONAME ; public: virtual __thiscall CApaAppInfoFileWriter::~CApaAppInfoFileWriter(void)
-	??1CApaAppList@@UAE@XZ @ 7 NONAME ; public: virtual __thiscall CApaAppList::~CApaAppList(void)
-	??1CApaDoor@@UAE@XZ @ 8 NONAME ; public: virtual __thiscall CApaDoor::~CApaDoor(void)
-	??1CApaMaskedBitmap@@UAE@XZ @ 9 NONAME ; public: virtual __thiscall CApaMaskedBitmap::~CApaMaskedBitmap(void)
-	??1CApaWindowGroupName@@UAE@XZ @ 10 NONAME ; public: virtual __thiscall CApaWindowGroupName::~CApaWindowGroupName(void)
-	?AddCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 11 NONAME ; public: void __thiscall CApaAppInfoFileWriter::AddCaptionL(enum TLanguage,class TDesC16 const &)
-	?AddIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@@Z @ 12 NONAME ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class CApaMaskedBitmap &)
-	?AddIconL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 13 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddIconL(class TDesC16 const &)
-	?AppCount@RApaLsSession@@QBEHAAH@Z @ 14 NONAME ; public: int __thiscall RApaLsSession::AppCount(int &)const 
-	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 15 NONAME ; public: class CApaAppData * __thiscall CApaAppList::AppDataByUid(class TUid)const 
-	?AppEntry@CApaAppData@@QBE?AVTApaAppEntry@@XZ @ 16 NONAME ; public: class TApaAppEntry  __thiscall CApaAppData::AppEntry(void)const 
-	?AppUid@CApaWindowGroupName@@QBE?AVTUid@@XZ @ 17 NONAME ; public: class TUid  __thiscall CApaWindowGroupName::AppUid(void)const 
-	?AppUidL@CApaDoor@@QBE?AVTUid@@XZ @ 18 NONAME ; public: class TUid  __thiscall CApaDoor::AppUidL(void)const 
-	?BringToForeground@TApaTask@@QAEXXZ @ 19 NONAME ; public: void __thiscall TApaTask::BringToForeground(void)
-	?Capability@CApaAppData@@QBEXAAVTDes8@@@Z @ 20 NONAME ; public: void __thiscall CApaAppData::Capability(class TDes8 &)const 
-	?Capability@CApaAppInfoFileReader@@QBEXAAVTDes8@@@Z @ 21 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::Capability(class TDes8 &)const 
-	?Caption@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 22 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::Caption(void)const 
-	?CaptionL@CApaAppInfoFileReader@@QAE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 23 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAppInfoFileReader::CaptionL(enum TLanguage)
-	?Connect@RApaLsSession@@QAEHXZ @ 24 NONAME ; public: int __thiscall RApaLsSession::Connect(void)
-	?ConstructFromWgIdL@CApaWindowGroupName@@QAEXH@Z @ 25 NONAME ; public: void __thiscall CApaWindowGroupName::ConstructFromWgIdL(int)
-	?Count@CApaAppList@@QBEHXZ @ 26 NONAME ; public: int __thiscall CApaAppList::Count(void)const 
-	?CreateMaskedBitmapL@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 27 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAppInfoFileReader::CreateMaskedBitmapL(int)
-	?CycleTasks@TApaTaskList@@QAEHVTUid@@W4TCycleDirection@1@@Z @ 28 NONAME ; public: int __thiscall TApaTaskList::CycleTasks(class TUid,enum TApaTaskList::TCycleDirection)
-	?DocName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 29 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::DocName(void)const 
-	?DocNameIsAFile@CApaWindowGroupName@@QBEHXZ @ 30 NONAME ; public: int __thiscall CApaWindowGroupName::DocNameIsAFile(void)const 
-	?DocumentL@CApaDoor@@QAEPAVCApaDocument@@H@Z @ 31 NONAME ; public: class CApaDocument * __thiscall CApaDoor::DocumentL(int)
-	?EmbeddableAppCount@RApaLsSession@@QBEHAAH@Z @ 32 NONAME ; public: int __thiscall RApaLsSession::EmbeddableAppCount(int &)const 
-	?EndTask@TApaTask@@QAEXXZ @ 33 NONAME ; public: void __thiscall TApaTask::EndTask(void)
-	?Exists@TApaTask@@QBEHXZ @ 34 NONAME ; public: int __thiscall TApaTask::Exists(void)const 
-	?ExternalizeL@CApaMaskedBitmap@@QBEXAAVRWriteStream@@@Z @ 35 NONAME ; public: void __thiscall CApaMaskedBitmap::ExternalizeL(class RWriteStream &)const 
-	?FindApp@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 36 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TDesC16 const &)
-	?FindApp@TApaTaskList@@QAE?AVTApaTask@@VTUid@@@Z @ 37 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindApp(class TUid)
-	?FindByAppUid@CApaWindowGroupName@@SAXVTUid@@AAVRWsSession@@AAH@Z @ 38 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByAppUid(class TUid,class RWsSession &,int &)
-	?FindByCaption@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 39 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByCaption(class TDesC16 const &,class RWsSession &,int &)
-	?FindByDocName@CApaWindowGroupName@@SAXABVTDesC16@@AAVRWsSession@@AAH@Z @ 40 NONAME ; public: static void __cdecl CApaWindowGroupName::FindByDocName(class TDesC16 const &,class RWsSession &,int &)
-	?FindByPos@TApaTaskList@@QAE?AVTApaTask@@H@Z @ 41 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindByPos(int)
-	?FindDoc@TApaTaskList@@QAE?AVTApaTask@@ABVTDesC16@@@Z @ 42 NONAME ; public: class TApaTask  __thiscall TApaTaskList::FindDoc(class TDesC16 const &)
-	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 43 NONAME ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(void)const 
-	?GetAllApps@RApaLsSession@@QBEHXZ @ 44 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(void)const 
-	?GetAppCapability@RApaLsSession@@QBEHAAVTDes8@@VTUid@@@Z @ 45 NONAME ; public: int __thiscall RApaLsSession::GetAppCapability(class TDes8 &,class TUid)const 
-	?GetAppInfo@RApaLsSession@@QBEHAAVTApaAppInfo@@VTUid@@@Z @ 46 NONAME ; public: int __thiscall RApaLsSession::GetAppInfo(class TApaAppInfo &,class TUid)const 
-	?GetEmbeddableApps@RApaLsSession@@QBEHXZ @ 47 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(void)const 
-	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@@Z @ 48 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &)const 
-	?InternalizeL@CApaMaskedBitmap@@QAEXAAVRReadStream@@@Z @ 49 NONAME ; public: void __thiscall CApaMaskedBitmap::InternalizeL(class RReadStream &)
-	?IsBusy@CApaWindowGroupName@@QBEHXZ @ 50 NONAME ; public: int __thiscall CApaWindowGroupName::IsBusy(void)const 
-	?IsSystem@CApaWindowGroupName@@QBEHXZ @ 51 NONAME ; public: int __thiscall CApaWindowGroupName::IsSystem(void)const 
-	?KillTask@TApaTask@@QAEXXZ @ 52 NONAME ; public: void __thiscall TApaTask::KillTask(void)
-	?Mask@CApaMaskedBitmap@@QBEPAVCFbsBitmap@@XZ @ 53 NONAME ; public: class CFbsBitmap * __thiscall CApaMaskedBitmap::Mask(void)const 
-	?New@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@PAVHBufC16@@@Z @ 54 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::New(class RWsSession const &,class HBufC16 *)
-	?NewL@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 55 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewL(class RFs &,class TDesC16 const &,class TUid)
-	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppRegFinder@@HH@Z @ 56 NONAME ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppRegFinder *, int, int)
-	?NewL@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 57 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CApaDocument &,class TSize const &)
-	?NewL@CApaDoor@@SAPAV1@AAVRFs@@ABVCStreamStore@@VTStreamId@@AAVCApaProcess@@@Z @ 58 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewL(class RFs &,class CStreamStore const &,class TStreamId,class CApaProcess &)
-	?NewL@CApaMaskedBitmap@@SAPAV1@PBV1@@Z @ 59 NONAME ; class CApaMaskedBitmap * CApaMaskedBitmap::NewL(class CApaMaskedBitmap const *)
-	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 60 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &)
-	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 61 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,class TDesC16 const &)
-	?NewL@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 62 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewL(class RWsSession const &,int)
-	?NewLC@CApaAppInfoFileReader@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 63 NONAME ABSENT ; public: static class CApaAppInfoFileReader * __cdecl CApaAppInfoFileReader::NewLC(class RFs &,class TDesC16 const &,class TUid)
-	?NewLC@CApaAppInfoFileWriter@@SAPAV1@AAVRFs@@ABVTDesC16@@VTUid@@@Z @ 64 NONAME ABSENT ; public: static class CApaAppInfoFileWriter * __cdecl CApaAppInfoFileWriter::NewLC(class RFs &,class TDesC16 const &,class TUid)
-	?NewLC@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 65 NONAME ; public: static class CApaDoor * __cdecl CApaDoor::NewLC(class RFs &,class CApaDocument &,class TSize const &)
-	?NewLC@CApaMaskedBitmap@@SAPAV1@XZ @ 66 NONAME ; public: static class CApaMaskedBitmap * __cdecl CApaMaskedBitmap::NewLC(void)
-	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@@Z @ 67 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &)
-	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@ABVTDesC16@@@Z @ 68 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,class TDesC16 const &)
-	?NewLC@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@H@Z @ 69 NONAME ; public: static class CApaWindowGroupName * __cdecl CApaWindowGroupName::NewLC(class RWsSession const &,int)
-	?NewPictureL@TApaPictureFactory@@UBEXAAVTPictureHeader@@ABVCStreamStore@@@Z @ 70 NONAME ; public: virtual void __thiscall TApaPictureFactory::NewPictureL(class TPictureHeader &,class CStreamStore const &)const 
-	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@@Z @ 71 NONAME ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *)const 
-	?PurgeL@CApaAppList@@QAEXXZ @ 72 NONAME ; public: void __thiscall CApaAppList::PurgeL(void)
-	?RespondsToShutdownEvent@CApaWindowGroupName@@QBEHXZ @ 73 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToShutdownEvent(void)const 
-	?RespondsToSwitchFilesEvent@CApaWindowGroupName@@QBEHXZ @ 74 NONAME ; public: int __thiscall CApaWindowGroupName::RespondsToSwitchFilesEvent(void)const 
-	?RestoreL@CApaDoor@@QAEXABVCStreamStore@@VTStreamId@@@Z @ 75 NONAME ; public: void __thiscall CApaDoor::RestoreL(class CStreamStore const &,class TStreamId)
-	?SendKey@TApaTask@@QAEXABUTKeyEvent@@@Z @ 76 NONAME ; public: void __thiscall TApaTask::SendKey(struct TKeyEvent const &)
-	?SendKey@TApaTask@@QAEXHH@Z @ 77 NONAME ; public: void __thiscall TApaTask::SendKey(int,int)
-	?SendMessage@TApaTask@@QAEHVTUid@@ABVTDesC8@@@Z @ 78 NONAME ; public: int __thiscall TApaTask::SendMessage(class TUid,class TDesC8 const &)
-	?SendSystemEvent@TApaTask@@QAEXW4TApaSystemEvent@@@Z @ 79 NONAME ; public: void __thiscall TApaTask::SendSystemEvent(enum TApaSystemEvent)
-	?SendToBackground@TApaTask@@QAEXXZ @ 80 NONAME ; public: void __thiscall TApaTask::SendToBackground(void)
-	?SetAppUid@CApaWindowGroupName@@QAEXVTUid@@@Z @ 81 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppUid(class TUid)
-	?SetBusy@CApaWindowGroupName@@QAEXH@Z @ 82 NONAME ; public: void __thiscall CApaWindowGroupName::SetBusy(int)
-	?SetCapability@CApaAppInfoFileWriter@@QAEHABVTDesC8@@@Z @ 83 NONAME ; public: int __thiscall CApaAppInfoFileWriter::SetCapability(class TDesC8 const &)
-	?SetCaptionL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 84 NONAME ; public: void __thiscall CApaWindowGroupName::SetCaptionL(class TDesC16 const &)
-	?SetDocNameIsAFile@CApaWindowGroupName@@QAEXH@Z @ 85 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameIsAFile(int)
-	?SetDocNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 86 NONAME ; public: void __thiscall CApaWindowGroupName::SetDocNameL(class TDesC16 const &)
-	?SetFormatToGlassL@CApaDoor@@QAEXXZ @ 87 NONAME ; public: void __thiscall CApaDoor::SetFormatToGlassL(void)
-	?SetFormatToIconL@CApaDoor@@QAEXXZ @ 88 NONAME ; public: void __thiscall CApaDoor::SetFormatToIconL(void)
-	?SetFormatToTemporaryIconL@CApaDoor@@QAEXH@Z @ 89 NONAME ; public: void __thiscall CApaDoor::SetFormatToTemporaryIconL(int)
-	?SetRespondsToShutdownEvent@CApaWindowGroupName@@QAEXH@Z @ 90 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToShutdownEvent(int)
-	?SetRespondsToSwitchFilesEvent@CApaWindowGroupName@@QAEXH@Z @ 91 NONAME ; public: void __thiscall CApaWindowGroupName::SetRespondsToSwitchFilesEvent(int)
-	?SetSystem@CApaWindowGroupName@@QAEXH@Z @ 92 NONAME ; public: void __thiscall CApaWindowGroupName::SetSystem(int)
-	?SetWgId@TApaTask@@QAEXH@Z @ 93 NONAME ; public: void __thiscall TApaTask::SetWgId(int)
-	?SetWindowGroupName@CApaWindowGroupName@@QAEXPAVHBufC16@@@Z @ 94 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupName(class HBufC16 *)
-	?SetWindowGroupName@CApaWindowGroupName@@QBEHAAVRWindowGroup@@@Z @ 95 NONAME ; public: int __thiscall CApaWindowGroupName::SetWindowGroupName(class RWindowGroup &)const 
-	?SetWindowGroupNameL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 96 NONAME ; public: void __thiscall CApaWindowGroupName::SetWindowGroupNameL(class TDesC16 const &)
-	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@@Z @ 97 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &)
-	?StoreL@CApaAppInfoFileWriter@@QAEXXZ @ 98 NONAME ; public: void __thiscall CApaAppInfoFileWriter::StoreL(void)
-	?StretchDrawL@CApaAppInfoFileReader@@SAXPAVCFbsBitmap@@0VTSize@@@Z @ 99 NONAME ABSENT ; public: static void __cdecl CApaAppInfoFileReader::StretchDrawL(class CFbsBitmap *,class CFbsBitmap *,class TSize)
-	?SwitchCreateFile@TApaTask@@QAEHABVTDesC16@@@Z @ 100 NONAME ; public: int __thiscall TApaTask::SwitchCreateFile(class TDesC16 const &)
-	?SwitchOpenFile@TApaTask@@QAEHABVTDesC16@@@Z @ 101 NONAME ; public: int __thiscall TApaTask::SwitchOpenFile(class TDesC16 const &)
-	?ThreadId@TApaTask@@QBE?AVTThreadId@@XZ @ 102 NONAME ; public: class TThreadId  __thiscall TApaTask::ThreadId(void)const 
-	?UpdateCounter@CApaAppList@@QBEHXZ @ 103 NONAME ABSENT ; public: int __thiscall CApaAppList::UpdateCounter(void)const 
-	?UpdateL@CApaAppList@@QAEXXZ @ 104 NONAME ABSENT ; public: void __thiscall CApaAppList::UpdateL(void)
-	?Version@RApaLsSession@@QBE?AVTVersion@@XZ @ 105 NONAME ; public: class TVersion  __thiscall RApaLsSession::Version(void)const 
-	?WgId@TApaTask@@QBEHXZ @ 106 NONAME ; public: int __thiscall TApaTask::WgId(void)const 
-	?WindowGroupName@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 107 NONAME ; public: class TPtrC16  __thiscall CApaWindowGroupName::WindowGroupName(void)const 
-	??1CApaSystemControlList@@UAE@XZ @ 108 NONAME ; public: virtual __thiscall CApaSystemControlList::~CApaSystemControlList(void)
-	?Caption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 109 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::Caption(void)const 
-	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@H@Z @ 110 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(int)const 
-	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@VTUid@@@Z @ 111 NONAME ; public: class CApaSystemControl * __thiscall CApaSystemControlList::Control(class TUid)const 
-	?Count@CApaSystemControlList@@QBEHXZ @ 112 NONAME ; public: int __thiscall CApaSystemControlList::Count(void)const 
-	?CreateL@CApaSystemControl@@QAEXXZ @ 113 NONAME ; public: void __thiscall CApaSystemControl::CreateL(void)
-	?FileName@CApaSystemControl@@QBE?AV?$TBuf@$0BAA@@@XZ @ 114 NONAME ; public: class TBuf<256>  __thiscall CApaSystemControl::FileName(void)const 
-	?Icon@CApaSystemControl@@QBEPAVCApaMaskedBitmap@@XZ @ 115 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaSystemControl::Icon(void)const 
-	?Index@CApaSystemControlList@@QBEHVTUid@@@Z @ 116 NONAME ; public: int __thiscall CApaSystemControlList::Index(class TUid)const 
-	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@AAVCApaAppFinder@@ABVTDesC16@@@Z @ 117 NONAME ABSENT ; public: static class CApaSystemControlList * __cdecl CApaSystemControlList::NewL(class RFs &,class CApaAppFinder &,class TDesC16 const &)
-	?Type@CApaSystemControl@@QBE?AVTUid@@XZ @ 118 NONAME ; public: class TUid  __thiscall CApaSystemControl::Type(void)const 
-	?UpdateL@CApaSystemControlList@@QAEXXZ @ 119 NONAME ; public: void __thiscall CApaSystemControlList::UpdateL(void)
-	?AddDataTypeL@CApaAppInfoFileWriter@@QAEXABVTDataTypeWithPriority@@@Z @ 120 NONAME ; public: void __thiscall CApaAppInfoFileWriter::AddDataTypeL(class TDataTypeWithPriority const &)
-	?AppForDataType@RApaLsSession@@QBEHABVTDataType@@AAVTUid@@@Z @ 121 NONAME ; public: int __thiscall RApaLsSession::AppForDataType(class TDataType const &,class TUid &)const 
-	?AppForDocument@RApaLsSession@@QBEHABVTDesC16@@AAVTUid@@AAVTDataType@@@Z @ 122 NONAME ; public: int __thiscall RApaLsSession::AppForDocument(class TDesC16 const &,class TUid &,class TDataType &)const 
-	?CreateDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 123 NONAME ; public: int __thiscall RApaLsSession::CreateDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?DataType@CApaAppData@@QBEJABVTDataType@@@Z @ 124 NONAME ; long CApaAppData::DataType(class TDataType const &) const
-	?DataTypesSupportedL@CApaAppInfoFileReader@@QBEXAAV?$CArrayFix@VTDataTypeWithPriority@@@@@Z @ 125 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::DataTypesSupportedL(class CArrayFix<class TDataTypeWithPriority> &)const 
-	?GetAcceptedConfidence@RApaLsSession@@QBEHAAH@Z @ 126 NONAME ; public: int __thiscall RApaLsSession::GetAcceptedConfidence(int &)const 
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@HAAVCApaMaskedBitmap@@@Z @ 127 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,int,class CApaMaskedBitmap &)const 
-	?GetMaxDataBufSize@RApaLsSession@@QBEHAAH@Z @ 128 NONAME ; public: int __thiscall RApaLsSession::GetMaxDataBufSize(int &)const 
-	?GetSupportedDataTypesL@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTDataType@@@@@Z @ 129 NONAME ; public: int __thiscall RApaLsSession::GetSupportedDataTypesL(class CArrayFixFlat<class TDataType> &)const 
-	?IsProgram@RApaLsSession@@QBEHABVTDesC16@@AAH@Z @ 130 NONAME ; public: int __thiscall RApaLsSession::IsProgram(class TDesC16 const &,int &)const 
-	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 131 NONAME ; public: class TUid  __thiscall CApaAppList::PreferredDataHandlerL(class TDataType const &)const 
-	?RecognizeData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVTDataRecognitionResult@@@Z @ 132 NONAME ; public: int __thiscall RApaLsSession::RecognizeData(class TDesC16 const &,class TDesC8 const &,class TDataRecognitionResult &)const 
-	?RecognizeSpecificData@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@ABVTDataType@@AAH@Z @ 133 NONAME ; public: int __thiscall RApaLsSession::RecognizeSpecificData(class TDesC16 const &,class TDesC8 const &,class TDataType const &,int &)const 
-	?SetAcceptedConfidence@RApaLsSession@@QAEHH@Z @ 134 NONAME ; public: int __thiscall RApaLsSession::SetAcceptedConfidence(int)
-	?SetMaxDataBufSize@RApaLsSession@@QAEHH@Z @ 135 NONAME ; public: int __thiscall RApaLsSession::SetMaxDataBufSize(int)
-	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@AAVTThreadId@@W4TLaunchType@1@@Z @ 136 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@ABVTDataType@@AAVTThreadId@@W4TLaunchType@1@@Z @ 137 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TDataType const &,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 138 NONAME ; public: int __thiscall RApaLsSession::StartDocument(class TDesC16 const &,class TUid,class TThreadId &,enum RApaLsSession::TLaunchType)
-	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 139 NONAME ; public: void __thiscall CApaAppList::StartIdleUpdateL(void)
-	??1CApaAppListNotifier@@UAE@XZ @ 140 NONAME ; public: virtual __thiscall CApaAppListNotifier::~CApaAppListNotifier(void)
-	?NewL@CApaAppListNotifier@@SAPAV1@PAVMApaAppListServObserver@@W4TPriority@CActive@@@Z @ 141 NONAME ; public: static class CApaAppListNotifier * __cdecl CApaAppListNotifier::NewL(class MApaAppListServObserver *,enum CActive::TPriority)
-	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 142 NONAME ; public: void __thiscall CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@VTSize@@AAVCApaMaskedBitmap@@@Z @ 143 NONAME ; public: int __thiscall RApaLsSession::GetAppIcon(class TUid,class TSize,class CApaMaskedBitmap &)const 
-	?GetAppIconSizes@RApaLsSession@@QBEHVTUid@@AAV?$CArrayFixFlat@VTSize@@@@@Z @ 144 NONAME ; public: int __thiscall RApaLsSession::GetAppIconSizes(class TUid,class CArrayFixFlat<class TSize> &)const 
-	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@VTSize@@@Z @ 145 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(class TSize)const 
-	?IconSizesL@CApaAppData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 146 NONAME ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppData::IconSizesL(void)const 
-	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@H@Z @ 147 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaAppData::Icon(int)const 
-	?Hidden@CApaWindowGroupName@@QBEHXZ @ 148 NONAME ; int CApaWindowGroupName::Hidden(void) const
-	?SetHidden@CApaWindowGroupName@@QAEXH@Z @ 149 NONAME ; public: void __thiscall CApaWindowGroupName::SetHidden(int)
-	?AddViewCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@VTUid@@@Z @ 150 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewCaptionL(enum TLanguage,class TDesC16 const &,class TUid)
-	?AddViewIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@VTUid@@@Z @ 151 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewIconL(class CApaMaskedBitmap &,class TUid)
-	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 152 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid)
-	?CaptionL@CApaAIFViewData@@QBE?AV?$TBuf@$0BAA@@@W4TLanguage@@@Z @ 153 NONAME ABSENT ; public: class TBuf<256>  __thiscall CApaAIFViewData::CaptionL(enum TLanguage)const 
-	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0ABVTSize@@AAVCApaMaskedBitmap@@@Z @ 154 NONAME ; public: int __thiscall RApaLsSession::GetAppViewIcon(class TUid,class TUid,class TSize const &,class CApaMaskedBitmap &)const 
-	?GetAppViews@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTApaAppViewInfo@@@@VTUid@@@Z @ 155 NONAME ; public: int __thiscall RApaLsSession::GetAppViews(class CArrayFixFlat<class TApaAppViewInfo> &,class TUid)const 
-	?GetViewsL@CApaAppInfoFileReader@@QBEXAAV?$CArrayPtr@VCApaAIFViewData@@@@@Z @ 156 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetViewsL(class CArrayPtr<class CApaAIFViewData> &)const 
-	?Icon@CApaAppViewData@@QBEPAVCApaMaskedBitmap@@ABVTSize@@@Z @ 157 NONAME ; public: class CApaMaskedBitmap * __thiscall CApaAppViewData::Icon(class TSize const &)const 
-	?IconByIndexL@CApaAIFViewData@@QBEPAVCApaMaskedBitmap@@H@Z @ 158 NONAME ABSENT ; public: class CApaMaskedBitmap * __thiscall CApaAIFViewData::IconByIndexL(int)const 
-	?IconSizesL@CApaAppViewData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 159 NONAME ; public: class CArrayFixFlat<class TSize> * __thiscall CApaAppViewData::IconSizesL(void)const 
-	?NumberOfIcons@CApaAIFViewData@@QBEHXZ @ 160 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::NumberOfIcons(void)const 
-	?StoreViewL@CApaAppInfoFileWriter@@QAEXVTUid@@@Z @ 161 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::StoreViewL(class TUid)
-	?Uid@CApaAppViewData@@QBE?AVTUid@@XZ @ 162 NONAME ; public: class TUid  __thiscall CApaAppViewData::Uid(void)const 
-	?ViewUid@CApaAIFViewData@@QBE?AVTUid@@XZ @ 163 NONAME ABSENT ; public: class TUid  __thiscall CApaAIFViewData::ViewUid(void)const 
-	?Views@CApaAppData@@QBEPAV?$CArrayPtrFlat@VCApaAppViewData@@@@XZ @ 164 NONAME ; public: class CArrayPtrFlat<class CApaAppViewData> * __thiscall CApaAppData::Views(void)const 
-	?AddOwnedFileL@CApaAppInfoFileWriter@@QAEXABVTDesC16@@@Z @ 165 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddOwnedFileL(class TDesC16 const &)
-	?GetOwnedFilesL@CApaAppInfoFileReader@@QBEXAAVCDesC16Array@@@Z @ 166 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileReader::GetOwnedFilesL(class CDesC16Array &)const 
-	?OwnedFiles@CApaAppData@@QBEPAVCDesC16Array@@XZ @ 167 NONAME ; public: class CDesC16Array * __thiscall CApaAppData::OwnedFiles(void)const 
-	?GetAppOwnedFiles@RApaLsSession@@QBEHAAVCDesC16Array@@VTUid@@@Z @ 168 NONAME ; public: int __thiscall RApaLsSession::GetAppOwnedFiles(class CDesC16Array &,class TUid)const 
-	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@@Z @ 169 NONAME ; public: int __thiscall RApaLsSession::StartApp(class CApaCommandLine const &,class TThreadId &)
-	?GetAifFileName@AppInfoFileUtils@@SAXABVRFs@@AAVTDes16@@@Z @ 170 NONAME ABSENT ; public: static void __cdecl AppInfoFileUtils::GetAifFileName(class RFs const &,class TDes16 &)
-	?AddViewL@CApaAppInfoFileWriter@@QAEXVTUid@@H@Z @ 171 NONAME ABSENT ; public: void __thiscall CApaAppInfoFileWriter::AddViewL(class TUid,int)
-	?CanUseScreenMode@CApaAppData@@QAEHH@Z @ 172 NONAME ; public: int __thiscall CApaAppData::CanUseScreenMode(int)
-	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 173 NONAME ; public: class CApaAppData * __thiscall CApaAppList::FirstApp(int)const 
-	?GetAllApps@RApaLsSession@@QBEHH@Z @ 174 NONAME ; public: int __thiscall RApaLsSession::GetAllApps(int)const 
-	?GetEmbeddableApps@RApaLsSession@@QBEHH@Z @ 175 NONAME ; public: int __thiscall RApaLsSession::GetEmbeddableApps(int)const 
-	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@H@Z @ 176 NONAME ; public: int __thiscall RApaLsSession::GetNextApp(class TApaAppInfo &,int)const 
-	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@H@Z @ 177 NONAME ; public: class CApaAppData * __thiscall CApaAppList::NextApp(class CApaAppData const *,int)const 
-	?ScreenMode@CApaAIFViewData@@QBEHXZ @ 178 NONAME ABSENT ; public: int __thiscall CApaAIFViewData::ScreenMode(void)const 
-	?ScreenMode@CApaAppViewData@@QBEHXZ @ 179 NONAME ; public: int __thiscall CApaAppViewData::ScreenMode(void)const 
-	?ShortCaption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 180 NONAME ; public: class TPtrC16  __thiscall CApaSystemControl::ShortCaption(void)const 
-	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 181 NONAME ; public: int __thiscall CApaAppList::IsIdleUpdateComplete(void)const 
-	?IsAppReady@CApaWindowGroupName@@QBEHXZ @ 182 NONAME ; public: int __thiscall CApaWindowGroupName::IsAppReady(void)const 
-	?SetAppReady@CApaWindowGroupName@@QAEXH@Z @ 183 NONAME ; public: void __thiscall CApaWindowGroupName::SetAppReady(int)
-	?InitListL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 184 NONAME ; public: void __thiscall CApaAppList::InitListL(class MApaAppListObserver *)
-	?NumberOfBitmaps@CApaAppInfoFileReader@@QBEHXZ @ 185 NONAME ABSENT ; public: int __thiscall CApaAppInfoFileReader::NumberOfBitmaps(void)const 
-	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 186 NONAME ; public: int __thiscall CApaAppList::IsFirstScanComplete(void)const 
-	?SetMaskBitmap@CApaMaskedBitmap@@QAEXPAVCFbsBitmap@@@Z @ 187 NONAME ; public: void __thiscall CApaMaskedBitmap::SetMaskBitmap(class CFbsBitmap *)
-	?GetAppInfo_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@VTUid@@@Z @ 188 NONAME ABSENT ; int RApaLsSession::GetAppInfo_7_0(class TApaAppInfo_7_0 &, class TUid) const
-	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@@Z @ 189 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &) const
-	?GetNextApp_7_0@RApaLsSession@@ABEHAAVTApaAppInfo_7_0@@H@Z @ 190 NONAME ABSENT ; int RApaLsSession::GetNextApp_7_0(class TApaAppInfo_7_0 &, int) const
-	?GetIconInfo@CApaAppData@@QBEXAAH0@Z @ 191 NONAME ; void CApaAppData::GetIconInfo(int &, int &) const
-	?NumberOfOwnDefinedIcons@RApaLsSession@@QBEHVTUid@@AAH@Z @ 192 NONAME ; public: int __thiscall RApaLsSession::NumberOfOwnDefinedIcons(class TUid,int &)const 
-	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@@Z @ 193 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &)const 
-	?GetFilteredApps@RApaLsSession@@QBEHABVTApaEmbeddabilityFilter@@H@Z @ 194 NONAME ; public: int __thiscall RApaLsSession::GetFilteredApps(class TApaEmbeddabilityFilter const &,int)const 
-	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppFinder@@PAVCApaAppRegFinder@@H@Z @ 195 NONAME ABSENT ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppFinder *, class CApaAppRegFinder *, int)	
-	?DefaultScreenNumber@CApaAppData@@QBEIXZ @ 196 NONAME ; unsigned int CApaAppData::DefaultScreenNumber(void) const
-	?GetFilteredApps@RApaLsSession@@QBEHII@Z @ 197 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int) const
-	?GetFilteredApps@RApaLsSession@@QBEHIIH@Z @ 198 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int, int) const
-	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 199 NONAME ; int CApaAppData::RegistrationFileUsed(void) const
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAPAVHBufC16@@@Z @ 200 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class HBufC16 * &) const
-	?IconFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 201 NONAME ; class TPtrC16 CApaAppData::IconFileName(void) const
-	?GetAppViewIcon@RApaLsSession@@QBEHVTUid@@0AAPAVHBufC16@@@Z @ 202 NONAME ; int RApaLsSession::GetAppViewIcon(class TUid, class TUid, class HBufC16 * &) const
-	?IconFileName@CApaAppViewData@@QBE?AVTPtrC16@@XZ @ 203 NONAME ; class TPtrC16 CApaAppViewData::IconFileName(void) const
-	?NonMbmIconFile@CApaAppData@@QBEHXZ @ 204 NONAME ; int CApaAppData::NonMbmIconFile(void) const
-	?NonMbmIconFile@CApaAppViewData@@QBEHXZ @ 205 NONAME ; int CApaAppViewData::NonMbmIconFile(void) const
-	?StartupApaServer@@YAHAAVMApaAppStarter@@@Z @ 206 NONAME ; int StartupApaServer(class MApaAppStarter &)
-	?StartupApaServerProcess@@YAHXZ @ 207 NONAME ; int StartupApaServerProcess(void)
-	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@@Z @ 208 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &)
-	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@@Z @ 209 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid)
-	?InsertDataMappingIfHigher@RApaLsSession@@QAEHABVTDataType@@JVTUid@@AAH@Z @ 210 NONAME ; int RApaLsSession::InsertDataMappingIfHigher(class TDataType const &, long, class TUid, int &)
-	?ApplicationLanguage@CApaAppData@@QBE?AW4TLanguage@@XZ @ 211 NONAME ; enum TLanguage CApaAppData::ApplicationLanguage(void) const
-	?ApplicationLanguage@RApaLsSession@@QBEHVTUid@@AAW4TLanguage@@@Z @ 212 NONAME ; int RApaLsSession::ApplicationLanguage(class TUid, enum TLanguage &) const
-	?NewL@CApaSystemControlList@@SAPAV1@AAVRFs@@@Z @ 213 NONAME ; class CApaSystemControlList * CApaSystemControlList::NewL(class RFs &)
-	?AppForDataTypeAndService@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 214 NONAME ; int RApaLsSession::AppForDataTypeAndService(class TDataType const &, class TUid, class TUid &) const
-	?AppForDocumentAndService@RApaLsSession@@QBEHABVRFile@@VTUid@@AAV3@AAVTDataType@@@Z @ 215 NONAME ; int RApaLsSession::AppForDocumentAndService(class RFile const &, class TUid, class TUid &, class TDataType &) const
-	?AppForDocumentAndService@RApaLsSession@@QBEHABVTDesC16@@VTUid@@AAV3@AAVTDataType@@@Z @ 216 NONAME ; int RApaLsSession::AppForDocumentAndService(class TDesC16 const &, class TUid, class TUid &, class TDataType &) const
-	?GetAppServiceOpaqueDataLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@0@Z @ 217 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServiceOpaqueDataLC(class TUid, class TUid) const
-	?GetAppServicesL@RApaLsSession@@QBEXVTUid@@AAV?$CArrayFixFlat@VTUid@@@@@Z @ 218 NONAME ; void RApaLsSession::GetAppServicesL(class TUid, class CArrayFixFlat<class TUid> &) const
-	?GetAppServicesLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 219 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetAppServicesLC(class TUid) const
-	?GetServerApps@RApaLsSession@@QBEHVTUid@@@Z @ 220 NONAME ; int RApaLsSession::GetServerApps(class TUid) const
-	?GetServerApps@RApaLsSession@@QBEHVTUid@@H@Z @ 221 NONAME ; int RApaLsSession::GetServerApps(class TUid, int) const
-	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 222 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid) const
-	?ImplementsService@CApaAppData@@QBEHVTUid@@@Z @ 223 NONAME ; int CApaAppData::ImplementsService(class TUid) const
-	?OpaqueData@TApaAppServiceInfo@@QBEABVTDesC8@@XZ @ 224 NONAME ; class TDesC8 const & TApaAppServiceInfo::OpaqueData(void) const
-	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@AAH@Z @ 225 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *, int &) const
-	?ServiceArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 226 NONAME ; class CBufFlat * CApaAppList::ServiceArrayBufferL(class TUid) const
-	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 227 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid) const
-	?ServiceOpaqueDataBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@0@Z @ 228 NONAME ; class CBufFlat * CApaAppList::ServiceOpaqueDataBufferL(class TUid, class TUid) const
-	?ServiceUidBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 229 NONAME ; class CBufFlat * CApaAppList::ServiceUidBufferL(class TUid) const
-	?Uid@TApaAppServiceInfo@@QBE?AVTUid@@XZ @ 230 NONAME ; class TUid TApaAppServiceInfo::Uid(void) const
-	?StartDocument@RApaLsSession@@QAEHAAVRFile@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 231 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TThreadId &, class TRequestStatus *)
-	?CreateMaskedBitmapByIndexLC@CApaAppInfoFileReader@@QAEPAVCApaMaskedBitmap@@H@Z @ 232 NONAME ABSENT ; class CApaMaskedBitmap * CApaAppInfoFileReader::CreateMaskedBitmapByIndexLC(int)
-	?CancelListPopulationCompleteObserver@RApaLsSession@@QBEHXZ @ 233 NONAME ; int RApaLsSession::CancelListPopulationCompleteObserver(void) const
-	?RegisterListPopulationCompleteObserver@RApaLsSession@@QBEXAAVTRequestStatus@@@Z @ 234 NONAME ; void RApaLsSession::RegisterListPopulationCompleteObserver(class TRequestStatus &) const
-	?NewInterimFormatFileWriterLC@ForJavaMIDletInstaller@@SAPAVCApaAppInfoFileWriter@@AAVRFs@@ABVTDesC16@@VTUid@@KH@Z @ 235 NONAME ; class CApaAppInfoFileWriter * ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(class RFs &, class TDesC16 const &, class TUid, unsigned long, int)
-	?CheckInterimFormatFileNotCorruptL@ForJavaMIDletInstaller@@SAXAAVRFile@@@Z @ 236 NONAME ; void ForJavaMIDletInstaller::CheckInterimFormatFileNotCorruptL(class RFile &)
-	?RegisterJavaMIDletViaIterimFormat@RApaLsSession@@QAEHABVTDesC16@@AAVRFile@@@Z @ 237 NONAME ABSENT ; int RApaLsSession::RegisterJavaMIDletViaIterimFormat(class TDesC16 const &, class RFile &)
-	?DeregisterJavaMIDlet@RApaLsSession@@QAEHABVTDesC16@@@Z @ 238 NONAME ABSENT ; int RApaLsSession::DeregisterJavaMIDlet(class TDesC16 const &)
-	?AppForDocument@RApaLsSession@@QBEHABVRFile@@AAVTUid@@AAVTDataType@@@Z @ 239 NONAME ; int RApaLsSession::AppForDocument(class RFile const &, class TUid &, class TDataType &) const
-	?ClearFsSession@RApaLsSession@@SAXXZ @ 240 NONAME ; void RApaLsSession::ClearFsSession(void)
-	?FsSession@RApaLsSession@@SAPAVRFs@@XZ @ 241 NONAME ; class RFs * RApaLsSession::FsSession(void)
-	?RecognizeData@RApaLsSession@@QBEHABVRFile@@AAVTDataRecognitionResult@@@Z @ 242 NONAME ; int RApaLsSession::RecognizeData(class RFile const &, class TDataRecognitionResult &) const	
-	?RecognizeSpecificData@RApaLsSession@@QBEHABVRFile@@ABVTDataType@@AAH@Z @ 243 NONAME ; int RApaLsSession::RecognizeSpecificData(class RFile const &, class TDataType const &, int &) const
-	?SetFsSessionL@RApaLsSession@@SAXAAVRFs@@@Z @ 244 NONAME ; void RApaLsSession::SetFsSessionL(class RFs &)
-	?StartDocument@RApaLsSession@@QAEHAAVRFile@@ABVTDataType@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 245 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TDataType const &, class TThreadId &, class TRequestStatus *)
-	?StartDocument@RApaLsSession@@QAEHAAVRFile@@VTUid@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 246 NONAME ; int RApaLsSession::StartDocument(class RFile &, class TUid, class TThreadId &, class TRequestStatus *)
-	?GetPreferredBufSize@RApaLsSession@@QBEHAAH@Z @ 247 NONAME ; public: int __thiscall RApaLsSession::GetPreferredBufSize(int &)const 
-	?GetJavaMIDletInfoL@ForJavaMIDletInstaller@@SAXAAVRFs@@ABVTDesC16@@AAK2@Z @ 248 NONAME ; void ForJavaMIDletInstaller::GetJavaMIDletInfoL(class RFs &, class TDesC16 const &, unsigned long &, unsigned long &)
-	?HandleAsRegistrationFile@ApaUtils@@SAHABVTUidType@@@Z @ 249 NONAME ; int ApaUtils::HandleAsRegistrationFile(class TUidType const &)
-	?DataTypes@TApaAppServiceInfo@@QBEABV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 250 NONAME ; class CArrayFixFlat<class TDataTypeWithPriority> const & TApaAppServiceInfo::DataTypes(void) const
-	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@ABVTDataType@@@Z @ 251 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid, class TDataType const &) const
-	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@ABVTDataType@@@Z @ 252 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid, class TDataType const &) const
-	?Close@RApaLsSession@@QAEXXZ @ 253 NONAME ; void RApaLsSession::Close(void)
-	??0MApaAppListServObserver@@IAE@XZ @ 254 NONAME ; MApaAppListServObserver::MApaAppListServObserver(void)
-	??0TApaPictureFactory@@IAE@XZ @ 255 NONAME ; TApaPictureFactory::TApaPictureFactory(void)
-	?MApaAppListServObserver_Reserved1@MApaAppListServObserver@@EAEXXZ @ 256 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved1(void)
-	?MApaAppListServObserver_Reserved2@MApaAppListServObserver@@EAEXXZ @ 257 NONAME ; void MApaAppListServObserver::MApaAppListServObserver_Reserved2(void)
-	?RApaLsSession_Reserved1@RApaLsSession@@EAEXXZ @ 258 NONAME ; void RApaLsSession::RApaLsSession_Reserved1(void)
-	?RApaLsSession_Reserved2@RApaLsSession@@EAEXXZ @ 259 NONAME ; void RApaLsSession::RApaLsSession_Reserved2(void)
-	??0CDataRecognitionResultArray@@QAE@XZ @ 260 NONAME ; CDataRecognitionResultArray::CDataRecognitionResultArray(void)
-	??1CDataRecognitionResultArray@@UAE@XZ @ 261 NONAME ; CDataRecognitionResultArray::~CDataRecognitionResultArray(void)
-	?CancelRecognizeFiles@RApaLsSession@@QAEXXZ @ 262 NONAME ; void RApaLsSession::CancelRecognizeFiles(void)
-	?Count@CDataRecognitionResultArray@@QBEIXZ @ 263 NONAME ; unsigned int CDataRecognitionResultArray::Count(void) const
-	?GetDataRecognitionResultL@CDataRecognitionResultArray@@QBEXAAVTDataRecognitionResult@@I@Z @ 264 NONAME ; void CDataRecognitionResultArray::GetDataRecognitionResultL(class TDataRecognitionResult &, unsigned int) const
-	?GetFileNameL@CDataRecognitionResultArray@@QBEXAAV?$TBuf@$0BAA@@@I@Z @ 265 NONAME ; void CDataRecognitionResultArray::GetFileNameL(class TBuf<256> &, unsigned int) const
-	?Path@CDataRecognitionResultArray@@QBEABV?$TBuf@$0BAA@@@XZ @ 266 NONAME ; class TBuf<256> const & CDataRecognitionResultArray::Path(void) const
-	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@AAVCDataRecognitionResultArray@@@Z @ 267 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &) const
-	?RecognizeFilesL@RApaLsSession@@QBEHABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@@Z @ 268 NONAME ; int RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &) const
-	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 269 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
-	?RecognizeFilesL@RApaLsSession@@QAEXABVTDesC16@@ABVTDesC8@@AAVCDataRecognitionResultArray@@AAVTRequestStatus@@@Z @ 270 NONAME ; void RApaLsSession::RecognizeFilesL(class TDesC16 const &, class TDesC8 const &, class CDataRecognitionResultArray &, class TRequestStatus &)
-	?InsertDataMapping@RApaLsSession@@QAEHABVTDataType@@JVTUid@@1@Z @ 271 NONAME ; int RApaLsSession::InsertDataMapping(class TDataType const &, long, class TUid, class TUid)
-	?DeleteDataMapping@RApaLsSession@@QAEHABVTDataType@@VTUid@@@Z @ 272 NONAME ; int RApaLsSession::DeleteDataMapping(class TDataType const &, class TUid)
-	?GetAppByDataType@RApaLsSession@@QBEHABVTDataType@@VTUid@@AAV3@@Z @ 273 NONAME ; int RApaLsSession::GetAppByDataType(class TDataType const &, class TUid, class TUid &) const
-	?StartApp@RApaLsSession@@QAEHABVCApaCommandLine@@AAVTThreadId@@PAVTRequestStatus@@@Z @ 274 NONAME ; int RApaLsSession::StartApp(class CApaCommandLine const &, class TThreadId &, class TRequestStatus *)
-	?RegisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@ABVTDesC16@@@Z @ 275 NONAME ; void RApaLsSession::RegisterNonNativeApplicationTypeL(class TUid, class TDesC16 const &)
-	?DeregisterNonNativeApplicationTypeL@RApaLsSession@@QAEXVTUid@@@Z @ 276 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationTypeL(class TUid)
-	?RegisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@ABVTDriveUnit@@AAVCApaRegistrationResourceFileWriter@@PAVCApaLocalisableResourceFileWriter@@PBVRFile@@@Z @ 277 NONAME ; void RApaLsSession::RegisterNonNativeApplicationL(class TUid, class TDriveUnit const &, class CApaRegistrationResourceFileWriter &, class CApaLocalisableResourceFileWriter *, class RFile const *)
-	?DeregisterNonNativeApplicationL@RApaLsSession@@QAEXVTUid@@@Z @ 278 NONAME ; void RApaLsSession::DeregisterNonNativeApplicationL(class TUid)
-	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 279 NONAME ; class CApaAppData* CApaAppList::AppDataByFileName(class TDesC16 const &) const
-	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 280 NONAME ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
-	?OpaqueData@CApaAppData@@QBE?AVTPtrC8@@XZ @ 281 NONAME ; class TPtrC8 CApaAppData::OpaqueData(void) const
-	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 282 NONAME ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
-	?GetDefaultScreenNumber@RApaLsSession@@QBEHAAHVTUid@@@Z @ 283 NONAME ; int RApaLsSession::GetDefaultScreenNumber(int &, class TUid) const
-	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 284 NONAME ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
-	?MatchesSecurityPolicy@RApaLsSession@@QBEHAAHVTUid@@ABVTSecurityPolicy@@@Z @ 285 NONAME ; int RApaLsSession::MatchesSecurityPolicy(int &, class TUid, class TSecurityPolicy const &) const
-	?AddDataTypeL@CApaRegistrationResourceFileWriter@@QAEXHABVTDesC8@@@Z @ 286 NONAME ; void CApaRegistrationResourceFileWriter::AddDataTypeL(int, class TDesC8 const &)
-	?AddFileOwnershipInfoL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 287 NONAME ; void CApaRegistrationResourceFileWriter::AddFileOwnershipInfoL(class TDesC16 const &)
-	?NewL@CApaLocalisableResourceFileWriter@@SAPAV1@ABVTDesC16@@0H0@Z @ 288 NONAME ; class CApaLocalisableResourceFileWriter * CApaLocalisableResourceFileWriter::NewL(class TDesC16 const &, class TDesC16 const &, int, class TDesC16 const &)
-	?NewL@CApaRegistrationResourceFileWriter@@SAPAV1@VTUid@@ABVTDesC16@@I@Z @ 289 NONAME ; class CApaRegistrationResourceFileWriter * CApaRegistrationResourceFileWriter::NewL(class TUid, class TDesC16 const &, unsigned int)
-	?NonNativeApplicationType@CApaAppData@@QBE?AVTUid@@XZ @ 290 NONAME ; class TUid CApaAppData::NonNativeApplicationType(void) const
-	?SetAppIsHiddenL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 291 NONAME ; void CApaRegistrationResourceFileWriter::SetAppIsHiddenL(int)
-	?SetDefaultScreenNumberL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 292 NONAME ; void CApaRegistrationResourceFileWriter::SetDefaultScreenNumberL(int)
-	?SetEmbeddabilityL@CApaRegistrationResourceFileWriter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 293 NONAME ; void CApaRegistrationResourceFileWriter::SetEmbeddabilityL(enum TApaAppCapability::TEmbeddability)
-	?SetGroupNameL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 294 NONAME ; void CApaRegistrationResourceFileWriter::SetGroupNameL(class TDesC16 const &)
-	?SetLaunchInBackgroundL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 295 NONAME ; void CApaRegistrationResourceFileWriter::SetLaunchInBackgroundL(int)
-	?SetOpaqueDataL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC8@@@Z @ 296 NONAME ; void CApaRegistrationResourceFileWriter::SetOpaqueDataL(class TDesC8 const &)
-	?SetSupportsNewFileL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 297 NONAME ; void CApaRegistrationResourceFileWriter::SetSupportsNewFileL(int)
-	??1CApaLocalisableResourceFileWriter@@UAE@XZ @ 298 NONAME ; CApaLocalisableResourceFileWriter::~CApaLocalisableResourceFileWriter(void)
-	??1CApaRegistrationResourceFileWriter@@UAE@XZ @ 299 NONAME ; CApaRegistrationResourceFileWriter::~CApaRegistrationResourceFileWriter(void)
-	?AppScanInProgress@CApaAppList@@QBEHXZ @ 300 NONAME ; int CApaAppList::AppScanInProgress(void) const
-	?CancelNotify@RApaLsSession@@QAEXXZ @ 301 NONAME ; void RApaLsSession::CancelNotify(void)
-	?SetNotify@RApaLsSession@@QAEXHAAVTRequestStatus@@@Z @ 302 NONAME ; void RApaLsSession::SetNotify(int, class TRequestStatus &)
-	?CancelNotifyOnDataMappingChange@RApaLsSession@@QAEXXZ @ 303 NONAME ; void RApaLsSession::CancelNotifyOnDataMappingChange(void)
-	?NotifyOnDataMappingChange@RApaLsSession@@QAEXAAVTRequestStatus@@@Z @ 304 NONAME ; void RApaLsSession::NotifyOnDataMappingChange(class TRequestStatus &)
-	?GetAppType@RApaLsSession@@QBEHAAVTUid@@V2@@Z @ 305 NONAME ; int RApaLsSession::GetAppType(class TUid &, class TUid) const
-	?CommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 306 NONAME ; void RApaLsSession::CommitNonNativeApplicationsUpdatesL(void)
-	?PrepareNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 307 NONAME ; void RApaLsSession::PrepareNonNativeApplicationsUpdatesL(void)
-	?RollbackNonNativeApplicationsUpdates@RApaLsSession@@QAEHXZ @ 308 NONAME ; int RApaLsSession::RollbackNonNativeApplicationsUpdates(void)
-	?SetUpdatedAppsList@CApaAppList@@QAEXPAVCUpdatedAppsList@@@Z @ 309 NONAME ABSENT ; void CApaAppList::SetUpdatedAppsList(class CUpdatedAppsList *)
-	?UpdatedAppsList@CApaAppList@@QAEPAVCUpdatedAppsList@@XZ @ 310 NONAME ABSENT ; class CUpdatedAppsList * CApaAppList::UpdatedAppsList(void)
-	??1CApaAppData@@UAE@XZ @ 311 NONAME ; CApaAppData::~CApaAppData(void)
-	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 312 NONAME ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
-	?Self@CApaAppList@@SAPAV1@XZ @ 313 NONAME ; class CApaAppList * CApaAppList::Self(void)
-	?ShareProtectedFileServer@CApaAppList@@QAEAAVRFs@@XZ @ 314 NONAME ABSENT ; class RFs & CApaAppList::ShareProtectedFileServer(void)
-	X @ 315 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
-	X @ 316 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
-	X @ 317 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
-	X @ 318 NONAME ABSENT ; Old @internalComponent function that never needed to be exported
-	?SetAppShortCaption@RApaLsSession@@QAEHABVTDesC16@@W4TLanguage@@VTUid@@@Z @ 319 NONAME ; int RApaLsSession::SetAppShortCaption(class TDesC16 const &, enum TLanguage, class TUid)
-	?SetShortCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 320 NONAME ; void CApaAppData::SetShortCaptionL(class TDesC16 const &)
-	?ForceRegistration@RApaLsSession@@QAEHABV?$RPointerArray@VTDesC16@@@@@Z @ 321 NONAME ; int RApaLsSession::ForceRegistration(class RPointerArray<class TDesC16> const &)
-	?AddForcedRegistrationL@CApaAppList@@QAEXPAVHBufC16@@@Z @ 322 NONAME ; void CApaAppList::AddForcedRegistrationL(class HBufC16 *)
-	?CompareStrings@CApaAppList@@SAHABVHBufC16@@0@Z @ 323 NONAME ; int CApaAppList::CompareStrings(class HBufC16 const &, class HBufC16 const &)
-	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 324 NONAME ; void CApaAppList::ResetForcedRegistrations(void)
-	?RestartScanL@CApaAppList@@QAEXXZ @ 325 NONAME ; void CApaAppList::RestartScanL(void)
-	?StopScan@CApaAppList@@QAEXH@Z @ 326 NONAME ; void CApaAppList::StopScan(TBool)
-	?MinApplicationStackSize@@YAIXZ @ 327 NONAME ; unsigned int MinApplicationStackSize(void)
-	?KMinApplicationStackSize@@3HB @ 328 NONAME ; int const KMinApplicationStackSize
-	?IsLanguageChangePending@CApaAppList@@QBEHXZ @ 329 NONAME ; int CApaAppList::IsLanguageChangePending(void) const
-	?IsPending@CApaAppData@@QBEHXZ @ 330 NONAME ; int CApaAppData::IsPending(void) const
-	?GetAppIcon@RApaLsSession@@QBEHVTUid@@AAVRFile@@@Z @ 331 NONAME ; int RApaLsSession::GetAppIcon(class TUid, class RFile &) const
-	?CheckAppSecurity@CApaSecurityUtils@@SAHABVTPtrC16@@AAH1@Z @ 332 NONAME ; int CApaSecurityUtils::CheckAppSecurity(class TPtrC16 const &, int &, int &)
-	?SetCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 333 NONAME ; void CApaAppData::SetCaptionL(class TDesC16 const &)
-	?SetIconsL@CApaAppData@@QAEXABVTDesC16@@H@Z @ 334 NONAME ; void CApaAppData::SetIconsL(class TDesC16 const &, int)
-	?ForceCommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 335 NONAME ; void RApaLsSession::ForceCommitNonNativeApplicationsUpdatesL(void)
-	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 336 NONAME ; int CApaAppList::AppListUpdatePending(void)
-	?UninstalledAppArray@CApaAppList@@QAEPAV?$CArrayFixFlat@VTUid@@@@XZ @ 337 NONAME ; class CArrayFixFlat<class TUid> * CApaAppList::UninstalledAppArray(void)
--- a/localisation/apparchitecture/bwins/APPARCU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/bwins/APPARCU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -1,10 +1,10 @@
 EXPORTS
 	??0CApaDocument@@IAE@AAVCApaApplication@@AAVCApaProcess@@@Z @ 1 NONAME ; protected: __thiscall CApaDocument::CApaDocument(class CApaApplication &,class CApaProcess &)
-	??0CApaFileRecognizer@@IAE@AAVRFs@@@Z @ 2 NONAME ; protected: __thiscall CApaFileRecognizer::CApaFileRecognizer(class RFs &)
-	??0CApaFileRecognizerType@@IAE@XZ @ 3 NONAME ; protected: __thiscall CApaFileRecognizerType::CApaFileRecognizerType(void)
-	??0CApaProcess@@IAE@ABVRFs@@AAVCApaAppFinder@@@Z @ 4 NONAME ; protected: __thiscall CApaProcess::CApaProcess(class RFs const &,class CApaAppFinder &)
-	??0TApaAppEntry@@QAE@ABVTUidType@@ABV?$TBuf@$0BAA@@@@Z @ 5 NONAME ; public: __thiscall TApaAppEntry::TApaAppEntry(class TUidType const &,class TBuf<256> const &)
-	??0TApaAppEntry@@QAE@XZ @ 6 NONAME ; public: __thiscall TApaAppEntry::TApaAppEntry(void)
+	??0CApaFileRecognizer@@IAE@AAVRFs@@@Z @ 2 NONAME ABSENT ; protected: __thiscall CApaFileRecognizer::CApaFileRecognizer(class RFs &)
+	??0CApaFileRecognizerType@@IAE@XZ @ 3 NONAME ABSENT ; protected: __thiscall CApaFileRecognizerType::CApaFileRecognizerType(void)
+	??0CApaProcess@@IAE@ABVRFs@@AAVCApaAppFinder@@@Z @ 4 NONAME ABSENT ; protected: __thiscall CApaProcess::CApaProcess(class RFs const &,class CApaAppFinder &)
+	??0TApaAppEntry@@QAE@ABVTUidType@@ABV?$TBuf@$0BAA@@@@Z @ 5 NONAME ABSENT ; public: __thiscall TApaAppEntry::TApaAppEntry(class TUidType const &,class TBuf<256> const &)
+	??0TApaAppEntry@@QAE@XZ @ 6 NONAME ABSENT ; public: __thiscall TApaAppEntry::TApaAppEntry(void)
 	??0TApaAppIdentifier@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@@Z @ 7 NONAME ; public: __thiscall TApaAppIdentifier::TApaAppIdentifier(class TUid,class TBuf<256> const &)
 	??0TApaAppIdentifier@@QAE@XZ @ 8 NONAME ; public: __thiscall TApaAppIdentifier::TApaAppIdentifier(void)
 	??0TApaAppInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@1@Z @ 9 NONAME ; public: __thiscall TApaAppInfo::TApaAppInfo(class TUid,class TBuf<256> const &,class TBuf<256> const &)
@@ -13,22 +13,22 @@
 	??0TCapability@CApaDocument@@QAE@XZ @ 12 NONAME ; public: __thiscall CApaDocument::TCapability::TCapability(void)
 	??1CApaCommandLine@@UAE@XZ @ 13 NONAME ; public: virtual __thiscall CApaCommandLine::~CApaCommandLine(void)
 	??1CApaDocument@@UAE@XZ @ 14 NONAME ; public: virtual __thiscall CApaDocument::~CApaDocument(void)
-	??1CApaFileRecognizer@@UAE@XZ @ 15 NONAME ; public: virtual __thiscall CApaFileRecognizer::~CApaFileRecognizer(void)
-	??1CApaFileRecognizerType@@MAE@XZ @ 16 NONAME ; protected: virtual __thiscall CApaFileRecognizerType::~CApaFileRecognizerType(void)
+	??1CApaFileRecognizer@@UAE@XZ @ 15 NONAME ABSENT ; public: virtual __thiscall CApaFileRecognizer::~CApaFileRecognizer(void)
+	??1CApaFileRecognizerType@@MAE@XZ @ 16 NONAME ABSENT ; protected: virtual __thiscall CApaFileRecognizerType::~CApaFileRecognizerType(void)
 	??1CApaModelDoor@@UAE@XZ @ 17 NONAME ; public: virtual __thiscall CApaModelDoor::~CApaModelDoor(void)
 	??1CApaProcess@@UAE@XZ @ 18 NONAME ; public: virtual __thiscall CApaProcess::~CApaProcess(void)
-	?AddFileRecognizerType@CApaFileRecognizer@@IAEXPAVCApaFileRecognizerType@@@Z @ 19 NONAME ; protected: void __thiscall CApaFileRecognizer::AddFileRecognizerType(class CApaFileRecognizerType *)
-	?AddNewDocumentL@CApaProcess@@QAEPAVCApaDocument@@ABVTDesC16@@VTUid@@@Z @ 20 NONAME ; public: class CApaDocument * __thiscall CApaProcess::AddNewDocumentL(class TDesC16 const &,class TUid)
+	?AddFileRecognizerType@CApaFileRecognizer@@IAEXPAVCApaFileRecognizerType@@@Z @ 19 NONAME ABSENT ; protected: void __thiscall CApaFileRecognizer::AddFileRecognizerType(class CApaFileRecognizerType *)
+	?AddNewDocumentL@CApaProcess@@QAEPAVCApaDocument@@ABVTDesC16@@VTUid@@@Z @ 20 NONAME ABSENT ; public: class CApaDocument * __thiscall CApaProcess::AddNewDocumentL(class TDesC16 const &,class TUid)
 	?AppFullName@CApaApplication@@UBE?AV?$TBuf@$0BAA@@@XZ @ 21 NONAME ; public: virtual class TBuf<256>  __thiscall CApaApplication::AppFullName(void)const 
-	?AppLocator@CApaFileRecognizer@@QBEPAVCApaAppLocator@@XZ @ 22 NONAME ; public: class CApaAppLocator * __thiscall CApaFileRecognizer::AppLocator(void)const 
-	?AppRunL@CApaFileRecognizerType@@IBE?AVTThreadId@@ABVCApaCommandLine@@@Z @ 23 NONAME ; protected: class TThreadId  __thiscall CApaFileRecognizerType::AppRunL(class CApaCommandLine const &)const 
+	?AppLocator@CApaFileRecognizer@@QBEPAVCApaAppLocator@@XZ @ 22 NONAME ABSENT ; public: class CApaAppLocator * __thiscall CApaFileRecognizer::AppLocator(void)const 
+	?AppRunL@CApaFileRecognizerType@@IBE?AVTThreadId@@ABVCApaCommandLine@@@Z @ 23 NONAME ABSENT ; protected: class TThreadId  __thiscall CApaFileRecognizerType::AppRunL(class CApaCommandLine const &)const 
 	?Capability@CApaDocument@@UBE?AVTCapability@1@XZ @ 24 NONAME ; public: virtual class CApaDocument::TCapability  __thiscall CApaDocument::Capability(void)const 
-	?Capability@CApaFileRecognizerType@@QBEXAAVTDes8@@@Z @ 25 NONAME ; public: void __thiscall CApaFileRecognizerType::Capability(class TDes8 &)const 
+	?Capability@CApaFileRecognizerType@@QBEXAAVTDes8@@@Z @ 25 NONAME ABSENT ; public: void __thiscall CApaFileRecognizerType::Capability(class TDes8 &)const 
 	?Command@CApaCommandLine@@QBE?AW4TApaCommand@@XZ @ 26 NONAME ; public: enum TApaCommand  __thiscall CApaCommandLine::Command(void)const 
 	?ConstructL@CApaProcess@@IAEXXZ @ 27 NONAME ; protected: void __thiscall CApaProcess::ConstructL(void)
 	?CopyCapability@TApaAppCapability@@SAXAAVTDes8@@ABVTDesC8@@@Z @ 28 NONAME ; public: static void __cdecl TApaAppCapability::CopyCapability(class TDes8 &,class TDesC8 const &)
 	?DestroyDocument@CApaProcess@@QAEXPAVCApaDocument@@@Z @ 29 NONAME ; public: void __thiscall CApaProcess::DestroyDocument(class CApaDocument *)
-	?DestroyRecognizerList@CApaFileRecognizer@@IAEXXZ @ 30 NONAME ; protected: void __thiscall CApaFileRecognizer::DestroyRecognizerList(void)
+	?DestroyRecognizerList@CApaFileRecognizer@@IAEXXZ @ 30 NONAME ABSENT ; protected: void __thiscall CApaFileRecognizer::DestroyRecognizerList(void)
 	?DllName@CApaApplication@@QBE?AV?$TBuf@$0BAA@@@XZ @ 31 NONAME ; public: class TBuf<256>  __thiscall CApaApplication::DllName(void)const 
 	?DoCleanup@TApaDocCleanupItem@@CAXPAX@Z @ 32 NONAME ; private: static void __cdecl TApaDocCleanupItem::DoCleanup(void *)
 	?DocumentName@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 33 NONAME ; public: class TPtrC16  __thiscall CApaCommandLine::DocumentName(void)const 
@@ -37,36 +37,36 @@
 	?ExternalizeL@CApaDocument@@UBEXAAVRWriteStream@@@Z @ 36 NONAME ; public: virtual void __thiscall CApaDocument::ExternalizeL(class RWriteStream &)const 
 	?ExternalizeL@CApaModelDoor@@UBEXAAVRWriteStream@@@Z @ 37 NONAME ; public: virtual void __thiscall CApaModelDoor::ExternalizeL(class RWriteStream &)const 
 	?ExternalizeL@TApaAppCapability@@QBEXAAVRWriteStream@@@Z @ 38 NONAME ; public: void __thiscall TApaAppCapability::ExternalizeL(class RWriteStream &)const 
-	?ExternalizeL@TApaAppEntry@@QBEXAAVRWriteStream@@@Z @ 39 NONAME ; public: void __thiscall TApaAppEntry::ExternalizeL(class RWriteStream &)const 
+	?ExternalizeL@TApaAppEntry@@QBEXAAVRWriteStream@@@Z @ 39 NONAME ABSENT ; public: void __thiscall TApaAppEntry::ExternalizeL(class RWriteStream &)const 
 	?ExternalizeL@TApaAppIdentifier@@QBEXAAVRWriteStream@@@Z @ 40 NONAME ; public: void __thiscall TApaAppIdentifier::ExternalizeL(class RWriteStream &)const 
 	?ExternalizeL@TApaAppInfo@@QBEXAAVRWriteStream@@@Z @ 41 NONAME ; public: void __thiscall TApaAppInfo::ExternalizeL(class RWriteStream &)const 
-	?FullCommandLine@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 42 NONAME ; public: class TPtrC16  __thiscall CApaCommandLine::FullCommandLine(void)const 
+	?FullCommandLine@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 42 NONAME ABSENT ; public: class TPtrC16  __thiscall CApaCommandLine::FullCommandLine(void)const 
 	?GenerateFileName@CApaApplication@@SAHAAVRFs@@AAV?$TBuf@$0BAA@@@@Z @ 43 NONAME ; public: static int __cdecl CApaApplication::GenerateFileName(class RFs &,class TBuf<256> &)
 	?GetOriginalSizeInTwips@CApaModelDoor@@UBEXAAVTSize@@@Z @ 44 NONAME ; public: virtual void __thiscall CApaModelDoor::GetOriginalSizeInTwips(class TSize &)const 
 	?GlassPictureL@CApaDocument@@UAEPAVCPicture@@XZ @ 45 NONAME ; public: virtual class CPicture * __thiscall CApaDocument::GlassPictureL(void)
 	?InternalizeBaseStreamL@CApaDoorBase@@IAE?AVTSize@@ABVCStreamStore@@ABVCStreamDictionary@@@Z @ 46 NONAME ; protected: class TSize  __thiscall CApaDoorBase::InternalizeBaseStreamL(class CStreamStore const &,class CStreamDictionary const &)
 	?InternalizeL@TApaAppCapability@@QAEXAAVRReadStream@@@Z @ 47 NONAME ; public: void __thiscall TApaAppCapability::InternalizeL(class RReadStream &)
-	?InternalizeL@TApaAppEntry@@QAEXAAVRReadStream@@@Z @ 48 NONAME ; public: void __thiscall TApaAppEntry::InternalizeL(class RReadStream &)
+	?InternalizeL@TApaAppEntry@@QAEXAAVRReadStream@@@Z @ 48 NONAME ABSENT ; public: void __thiscall TApaAppEntry::InternalizeL(class RReadStream &)
 	?InternalizeL@TApaAppIdentifier@@QAEXAAVRReadStream@@@Z @ 49 NONAME ; public: void __thiscall TApaAppIdentifier::InternalizeL(class RReadStream &)
 	?InternalizeL@TApaAppInfo@@QAEXAAVRReadStream@@@Z @ 50 NONAME ; public: void __thiscall TApaAppInfo::InternalizeL(class RReadStream &)
-	?LibraryName@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 51 NONAME ; public: class TPtrC16  __thiscall CApaCommandLine::LibraryName(void)const 
+	?LibraryName@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 51 NONAME ABSENT ; public: class TPtrC16  __thiscall CApaCommandLine::LibraryName(void)const 
 	?MainDocFileName@CApaProcess@@QBE?AVTPtrC16@@XZ @ 52 NONAME ; public: class TPtrC16  __thiscall CApaProcess::MainDocFileName(void)const 
-	?New@CApaCommandLine@@SAPAV1@PAVHBufC16@@@Z @ 53 NONAME ; public: static class CApaCommandLine * __cdecl CApaCommandLine::New(class HBufC16 *)
-	?NewL@CApaCommandLine@@SAPAV1@ABVTDesC16@@@Z @ 54 NONAME ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewL(class TDesC16 const &)
+	?New@CApaCommandLine@@SAPAV1@PAVHBufC16@@@Z @ 53 NONAME ABSENT ; public: static class CApaCommandLine * __cdecl CApaCommandLine::New(class HBufC16 *)
+	?NewL@CApaCommandLine@@SAPAV1@ABVTDesC16@@@Z @ 54 NONAME ABSENT ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewL(class TDesC16 const &)
 	?NewL@CApaCommandLine@@SAPAV1@XZ @ 55 NONAME ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewL(void)
 	?NewL@CApaModelDoor@@SAPAV1@ABVCStreamStore@@VTStreamId@@PBVMApaModelHeaderFactory@@@Z @ 56 NONAME ; public: static class CApaModelDoor * __cdecl CApaModelDoor::NewL(class CStreamStore const &,class TStreamId,class MApaModelHeaderFactory const *)
 	?NewL@CApaModelDoor@@SAPAV1@PAVCApaModelHeader@@@Z @ 57 NONAME ; public: static class CApaModelDoor * __cdecl CApaModelDoor::NewL(class CApaModelHeader *)
-	?NewL@CApaProcess@@SAPAV1@ABVRFs@@AAVCApaAppFinder@@@Z @ 58 NONAME ; public: static class CApaProcess * __cdecl CApaProcess::NewL(class RFs const &,class CApaAppFinder &)
-	?NewLC@CApaCommandLine@@SAPAV1@ABVTDesC16@@@Z @ 59 NONAME ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewLC(class TDesC16 const &)
+	?NewL@CApaProcess@@SAPAV1@ABVRFs@@AAVCApaAppFinder@@@Z @ 58 NONAME ABSENT ; public: static class CApaProcess * __cdecl CApaProcess::NewL(class RFs const &,class CApaAppFinder &)
+	?NewLC@CApaCommandLine@@SAPAV1@ABVTDesC16@@@Z @ 59 NONAME ABSENT ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewLC(class TDesC16 const &)
 	?NewLC@CApaCommandLine@@SAPAV1@XZ @ 60 NONAME ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewLC(void)
 	?NewLC@CApaModelDoor@@SAPAV1@PAVCApaModelHeader@@@Z @ 61 NONAME ; public: static class CApaModelDoor * __cdecl CApaModelDoor::NewLC(class CApaModelHeader *)
 	?NewPictureL@TApaModelDoorFactory@@UBEXAAVTPictureHeader@@ABVCStreamStore@@@Z @ 62 NONAME ; public: virtual void __thiscall TApaModelDoorFactory::NewPictureL(class TPictureHeader &,class CStreamStore const &)const 
-	?OpenAppInfoFileL@CApaApplication@@QBEPAVCApaAppInfoFileReader@@XZ @ 63 NONAME ; public: class CApaAppInfoFileReader * __thiscall CApaApplication::OpenAppInfoFileL(void)const 
+	?OpenAppInfoFileL@CApaApplication@@QBEPAVCApaAppInfoFileReader@@XZ @ 63 NONAME ABSENT ; public: class CApaAppInfoFileReader * __thiscall CApaApplication::OpenAppInfoFileL(void)const 
 	?OpenIniFileL@CApaApplication@@QBEPAVCDictionaryStore@@AAVRFs@@@Z @ 64 NONAME ; public: class CDictionaryStore * __thiscall CApaApplication::OpenIniFileL(class RFs &)const 
 	?OpenNewDocumentL@CApaProcess@@QAEPAVCApaDocument@@AAPAVCFileStore@@AAPAVCStreamDictionary@@ABVTDesC16@@I@Z @ 65 NONAME ; public: class CApaDocument * __thiscall CApaProcess::OpenNewDocumentL(class CFileStore * &,class CStreamDictionary * &,class TDesC16 const &,unsigned int)
 	?ReadAppIdentifierL@CApaProcess@@SA?AVTApaAppIdentifier@@ABVCStreamStore@@ABVCStreamDictionary@@@Z @ 66 NONAME ; public: static class TApaAppIdentifier  __cdecl CApaProcess::ReadAppIdentifierL(class CStreamStore const &,class CStreamDictionary const &)
 	?ReadRootStreamLC@CApaProcess@@SAPAVCStreamDictionary@@AAVRFs@@AAPAVCFileStore@@ABVTDesC16@@I@Z @ 67 NONAME ; public: static class CStreamDictionary * __cdecl CApaProcess::ReadRootStreamLC(class RFs &,class CFileStore * &,class TDesC16 const &,unsigned int)
-	?RecognizeFileL@CApaFileRecognizer@@QAEPAVCApaFileRecognizerType@@ABVTDesC16@@PBVTUidType@@@Z @ 68 NONAME ; public: class CApaFileRecognizerType * __thiscall CApaFileRecognizer::RecognizeFileL(class TDesC16 const &,class TUidType const *)
+	?RecognizeFileL@CApaFileRecognizer@@QAEPAVCApaFileRecognizerType@@ABVTDesC16@@PBVTUidType@@@Z @ 68 NONAME ABSENT ; public: class CApaFileRecognizerType * __thiscall CApaFileRecognizer::RecognizeFileL(class TDesC16 const &,class TUidType const *)
 	?NewAppServerL@CApaApplication@@UAEXAAPAVCApaAppServer@@@Z @ 69 NONAME ; void CApaApplication::NewAppServerL(class CApaAppServer * &)
 	?OpenFileL@CApaDocument@@EAEXAAPAVCFileStore@@AAVRFile@@@Z @ 70 NONAME ; void CApaDocument::OpenFileL(class CFileStore * &, class RFile &)
 	?Reserved_2@CApaDocument@@EAEXXZ @ 71 NONAME ; private: virtual void __thiscall CApaDocument::Reserved_2(void)
@@ -74,15 +74,15 @@
 	?RestoreL@CApaModelDoor@@QAEXABVCStreamStore@@VTStreamId@@PBVMApaModelHeaderFactory@@@Z @ 73 NONAME ; public: void __thiscall CApaModelDoor::RestoreL(class CStreamStore const &,class TStreamId,class MApaModelHeaderFactory const *)
 	?ScaleFactorHeight@CApaModelDoor@@UBEHXZ @ 74 NONAME ; public: virtual int __thiscall CApaModelDoor::ScaleFactorHeight(void)const 
 	?ScaleFactorWidth@CApaModelDoor@@UBEHXZ @ 75 NONAME ; public: virtual int __thiscall CApaModelDoor::ScaleFactorWidth(void)const 
-	?SetAppLocator@CApaFileRecognizer@@IAEXPAVCApaAppLocator@@@Z @ 76 NONAME ; protected: void __thiscall CApaFileRecognizer::SetAppLocator(class CApaAppLocator *)
+	?SetAppLocator@CApaFileRecognizer@@IAEXPAVCApaAppLocator@@@Z @ 76 NONAME ABSENT ; protected: void __thiscall CApaFileRecognizer::SetAppLocator(class CApaAppLocator *)
 	?SetCommandL@CApaCommandLine@@QAEXW4TApaCommand@@@Z @ 77 NONAME ; public: void __thiscall CApaCommandLine::SetCommandL(enum TApaCommand)
 	?SetDocumentNameL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 78 NONAME ; public: void __thiscall CApaCommandLine::SetDocumentNameL(class TDesC16 const &)
-	?SetFullCommandLine@CApaCommandLine@@QAEHPAVHBufC16@@@Z @ 79 NONAME ; public: int __thiscall CApaCommandLine::SetFullCommandLine(class HBufC16 *)
-	?SetFullCommandLineL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 80 NONAME ; public: void __thiscall CApaCommandLine::SetFullCommandLineL(class TDesC16 const &)
-	?SetLibraryNameL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 81 NONAME ; public: void __thiscall CApaCommandLine::SetLibraryNameL(class TDesC16 const &)
+	?SetFullCommandLine@CApaCommandLine@@QAEHPAVHBufC16@@@Z @ 79 NONAME ABSENT ; public: int __thiscall CApaCommandLine::SetFullCommandLine(class HBufC16 *)
+	?SetFullCommandLineL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 80 NONAME ABSENT ; public: void __thiscall CApaCommandLine::SetFullCommandLineL(class TDesC16 const &)
+	?SetLibraryNameL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 81 NONAME ABSENT ; public: void __thiscall CApaCommandLine::SetLibraryNameL(class TDesC16 const &)
 	?SetMainDocFileName@CApaProcess@@QAEXABVTDesC16@@@Z @ 82 NONAME ; public: void __thiscall CApaProcess::SetMainDocFileName(class TDesC16 const &)
 	?SetMainDocument@CApaProcess@@QAEXPAVCApaDocument@@@Z @ 83 NONAME ; public: void __thiscall CApaProcess::SetMainDocument(class CApaDocument *)
-	?SetReserveLengthL@CApaCommandLine@@QAEXH@Z @ 84 NONAME ; public: void __thiscall CApaCommandLine::SetReserveLengthL(int)
+	?SetReserveLengthL@CApaCommandLine@@QAEXH@Z @ 84 NONAME ABSENT ; public: void __thiscall CApaCommandLine::SetReserveLengthL(int)
 	?SetScaleFactor@CApaModelDoor@@UAEXHH@Z @ 85 NONAME ; public: virtual void __thiscall CApaModelDoor::SetScaleFactor(int,int)
 	?SetTailEndL@CApaCommandLine@@QAEXABVTDesC8@@@Z @ 86 NONAME ; public: void __thiscall CApaCommandLine::SetTailEndL(class TDesC8 const &)
 	?StoreL@CApaModelDoor@@UBE?AVTStreamId@@AAVCStreamStore@@@Z @ 87 NONAME ; public: virtual class TStreamId  __thiscall CApaModelDoor::StoreL(class CStreamStore &)const 
@@ -92,9 +92,9 @@
 	?WriteRootStreamL@CApaProcess@@SAXAAVCPersistentStore@@AAVCStreamDictionary@@ABVCApaApplication@@@Z @ 91 NONAME ; public: static void __cdecl CApaProcess::WriteRootStreamL(class CPersistentStore &,class CStreamDictionary &,class CApaApplication const &)
 	?WriteRootStreamL@CApaProcess@@SAXAAVCPersistentStore@@AAVCStreamDictionary@@ABVTApaAppIdentifier@@@Z @ 92 NONAME ; public: static void __cdecl CApaProcess::WriteRootStreamL(class CPersistentStore &,class CStreamDictionary &,class TApaAppIdentifier const &)
 	?DetachFromStoreL@CApaModelDoor@@UAEXW4TDetach@CPicture@@@Z @ 93 NONAME ; public: virtual void __thiscall CApaModelDoor::DetachFromStoreL(enum CPicture::TDetach)
-	?Lock@CApaFileRecognizerType@@QAEXXZ @ 94 NONAME ; public: void __thiscall CApaFileRecognizerType::Lock(void)
-	?RemoveFileRecognizerType@CApaFileRecognizer@@IAEHPBVCApaFileRecognizerType@@@Z @ 95 NONAME ; protected: int __thiscall CApaFileRecognizer::RemoveFileRecognizerType(class CApaFileRecognizerType const *)
-	?Unlock@CApaFileRecognizerType@@QAEXXZ @ 96 NONAME ; public: void __thiscall CApaFileRecognizerType::Unlock(void)
+	?Lock@CApaFileRecognizerType@@QAEXXZ @ 94 NONAME ABSENT ; public: void __thiscall CApaFileRecognizerType::Lock(void)
+	?RemoveFileRecognizerType@CApaFileRecognizer@@IAEHPBVCApaFileRecognizerType@@@Z @ 95 NONAME ABSENT ; protected: int __thiscall CApaFileRecognizer::RemoveFileRecognizerType(class CApaFileRecognizerType const *)
+	?Unlock@CApaFileRecognizerType@@QAEXXZ @ 96 NONAME ABSENT ; public: void __thiscall CApaFileRecognizerType::Unlock(void)
 	??0TApaLastUsedEntry@@QAE@V?$TBuf@$0BAA@@@VTUid@@@Z @ 97 NONAME ABSENT ; public: __thiscall TApaLastUsedEntry::TApaLastUsedEntry(class TBuf<256>,class TUid)
 	??0TApaLastUsedEntry@@QAE@XZ @ 98 NONAME ABSENT ; public: __thiscall TApaLastUsedEntry::TApaLastUsedEntry(void)
 	?AddLastUsedEntryL@CApaRecentFile@@SAXAAVRFs@@ABVTDesC16@@VTUid@@@Z @ 99 NONAME ABSENT ; public: static void __cdecl CApaRecentFile::AddLastUsedEntryL(class RFs &,class TDesC16 const &,class TUid)
@@ -102,24 +102,24 @@
 	?GetRecentFileL@CApaRecentFile@@SA?AVTApaLastUsedEntry@@AAVRFs@@VTUid@@H@Z @ 101 NONAME ABSENT ; public: static class TApaLastUsedEntry  __cdecl CApaRecentFile::GetRecentFileL(class RFs &,class TUid,int)
 	?GetRecentFileListL@CApaRecentFile@@SAPAV?$CArrayFixFlat@VTApaLastUsedEntry@@@@AAVRFs@@VTUid@@@Z @ 102 NONAME ABSENT ; public: static class CArrayFixFlat<class TApaLastUsedEntry> * __cdecl CApaRecentFile::GetRecentFileListL(class RFs &,class TUid)
 	?InternalizeL@TApaLastUsedEntry@@QAEXAAVRReadStream@@@Z @ 103 NONAME ABSENT ; public: void __thiscall TApaLastUsedEntry::InternalizeL(class RReadStream &)
-	?Reserved_1@CApaFileRecognizerType@@EAEXXZ @ 104 NONAME ; private: virtual void __thiscall CApaFileRecognizerType::Reserved_1(void)
+	?Reserved_1@CApaFileRecognizerType@@EAEXXZ @ 104 NONAME ABSENT ; private: virtual void __thiscall CApaFileRecognizerType::Reserved_1(void)
 	?Reserved_1@CApaModelHeader@@EAEXXZ @ 105 NONAME ; private: virtual void __thiscall CApaModelHeader::Reserved_1(void)
 	??0TApaAppViewInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@H@Z @ 106 NONAME ; public: __thiscall TApaAppViewInfo::TApaAppViewInfo(class TUid,class TBuf<256> const &,int)
 	??0TApaAppViewInfo@@QAE@XZ @ 107 NONAME ; public: __thiscall TApaAppViewInfo::TApaAppViewInfo(void)
 	?ExternalizeL@TApaAppViewInfo@@QBEXAAVRWriteStream@@@Z @ 108 NONAME ; public: void __thiscall TApaAppViewInfo::ExternalizeL(class RWriteStream &)const 
 	?InternalizeL@TApaAppViewInfo@@QAEXAAVRReadStream@@@Z @ 109 NONAME ; public: void __thiscall TApaAppViewInfo::InternalizeL(class RReadStream &)
 	??0TApaAppInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@11@Z @ 110 NONAME ; public: __thiscall TApaAppInfo::TApaAppInfo(class TUid,class TBuf<256> const &,class TBuf<256> const &,class TBuf<256> const &)
-	??0TApaAppInfo_7_0@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@1@Z @ 111 NONAME ABSENT; TApaAppInfo_7_0::TApaAppInfo_7_0(class TUid, class TBuf<256> const &, class TBuf<256> const &)
-	??0TApaAppInfo_7_0@@QAE@XZ @ 112 NONAME ABSENT; TApaAppInfo_7_0::TApaAppInfo_7_0(void)
-	?ExternalizeL@TApaAppInfo_7_0@@QBEXAAVRWriteStream@@@Z @ 113 NONAME ABSENT; void TApaAppInfo_7_0::ExternalizeL(class RWriteStream &) const
-	?InternalizeL@TApaAppInfo_7_0@@QAEXAAVRReadStream@@@Z @ 114 NONAME ABSENT; void TApaAppInfo_7_0::InternalizeL(class RReadStream &)
-	?Externalize7_0L@TApaAppCapability@@ABEXAAVRWriteStream@@@Z @ 115 NONAME ; void TApaAppCapability::Externalize7_0L(class RWriteStream &) const
-	?Internalize7_0L@TApaAppCapability@@QAEXAAVRReadStream@@@Z @ 116 NONAME ; void TApaAppCapability::Internalize7_0L(class RReadStream &)
+	??0TApaAppInfo_7_0@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@1@Z @ 111 NONAME ABSENT ; TApaAppInfo_7_0::TApaAppInfo_7_0(class TUid, class TBuf<256> const &, class TBuf<256> const &)
+	??0TApaAppInfo_7_0@@QAE@XZ @ 112 NONAME ABSENT ; TApaAppInfo_7_0::TApaAppInfo_7_0(void)
+	?ExternalizeL@TApaAppInfo_7_0@@QBEXAAVRWriteStream@@@Z @ 113 NONAME ABSENT ; void TApaAppInfo_7_0::ExternalizeL(class RWriteStream &) const
+	?InternalizeL@TApaAppInfo_7_0@@QAEXAAVRReadStream@@@Z @ 114 NONAME ABSENT ; void TApaAppInfo_7_0::InternalizeL(class RReadStream &)
+	?Externalize7_0L@TApaAppCapability@@ABEXAAVRWriteStream@@@Z @ 115 NONAME ABSENT ; void TApaAppCapability::Externalize7_0L(class RWriteStream &) const
+	?Internalize7_0L@TApaAppCapability@@QAEXAAVRReadStream@@@Z @ 116 NONAME ABSENT ; void TApaAppCapability::Internalize7_0L(class RReadStream &)
 	??0TApaEmbeddabilityFilter@@QAE@XZ @ 117 NONAME ; public: __thiscall TApaEmbeddabilityFilter::TApaEmbeddabilityFilter(void)
 	?AddEmbeddability@TApaEmbeddabilityFilter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 118 NONAME ; public: void __thiscall TApaEmbeddabilityFilter::AddEmbeddability(enum TApaAppCapability::TEmbeddability)
 	?MatchesEmbeddability@TApaEmbeddabilityFilter@@QBEHW4TEmbeddability@TApaAppCapability@@@Z @ 119 NONAME ; public: int __thiscall TApaEmbeddabilityFilter::MatchesEmbeddability(enum TApaAppCapability::TEmbeddability)const 
 	?SetMainDocFileNameL@CApaProcess@@QAEXABVTDesC16@@@Z @ 120 NONAME ; public: void __thiscall CApaProcess::SetMainDocFileNameL(class TDesC16 const &)
-	?CreateFileRecognizerL@CApaFileRecognizerType@@SAPAV1@VTUid@@@Z @ 121 NONAME ; public: static class CApaFileRecognizerType * __cdecl CApaFileRecognizerType::CreateFileRecognizerL(class TUid)
+	?CreateFileRecognizerL@CApaFileRecognizerType@@SAPAV1@VTUid@@AAVMApaAppStarter@@@Z @ 121 NONAME ABSENT ; class CApaFileRecognizerType * CApaFileRecognizerType::CreateFileRecognizerL(class TUid, class MApaAppStarter &)
 	??0TApaApplicationFactory@@QAE@ABVCImplementationInformation@@@Z @ 122 NONAME ; TApaApplicationFactory::TApaApplicationFactory(class CImplementationInformation const &)
 	??0TApaApplicationFactory@@QAE@P6APAVCApaApplication@@XZ@Z @ 123 NONAME ; TApaApplicationFactory::TApaApplicationFactory(class CApaApplication * (*)(void))
 	??0TApaApplicationFactory@@QAE@VTUid@@@Z @ 124 NONAME ; TApaApplicationFactory::TApaApplicationFactory(class TUid)
@@ -131,7 +131,7 @@
 	??1CApaAppServer@@UAE@XZ @ 130 NONAME ; CApaAppServer::~CApaAppServer(void)
 	??1CApaAppServiceBase@@UAE@XZ @ 131 NONAME ; CApaAppServiceBase::~CApaAppServiceBase(void)
 	??1CApaServerAppExitMonitor@@UAE@XZ @ 132 NONAME ; CApaServerAppExitMonitor::~CApaServerAppExitMonitor(void)
-	?CancelNotifyServerExit@RApaAppServiceBase@@QAEXXZ @ 133 NONAME ; void RApaAppServiceBase::CancelNotifyServerExit(void)
+	?CancelNotifyServerExit@RApaAppServiceBase@@QBEXXZ @ 133 NONAME ; void RApaAppServiceBase::CancelNotifyServerExit(void) const
 	?Close@RApaAppServiceBase@@QAEXXZ @ 134 NONAME ; void RApaAppServiceBase::Close(void)
 	?ConnectExistingAppL@RApaAppServiceBase@@QAEXABV1@@Z @ 135 NONAME ; void RApaAppServiceBase::ConnectExistingAppL(class RApaAppServiceBase const &)
 	?ConnectExistingByNameL@RApaAppServiceBase@@QAEXABVTDesC16@@@Z @ 136 NONAME ; void RApaAppServiceBase::ConnectExistingByNameL(class TDesC16 const &)
@@ -147,9 +147,9 @@
 	?NewLC@CApaServerAppExitMonitor@@SAPAV1@AAVRApaAppServiceBase@@AAVMApaServerAppExitObserver@@H@Z @ 146 NONAME ; class CApaServerAppExitMonitor * CApaServerAppExitMonitor::NewLC(class RApaAppServiceBase &, class MApaServerAppExitObserver &, int)
 	?NewSessionL@CApaAppServer@@EBEPAVCSession2@@ABVTVersion@@ABVRMessage2@@@Z @ 147 NONAME ; class CSession2 * CApaAppServer::NewSessionL(class TVersion const &, class RMessage2 const &) const
 	?NotifyServerExit@CApaAppServer@@QAEXH@Z @ 148 NONAME ; void CApaAppServer::NotifyServerExit(int)
-	?NotifyServerExit@RApaAppServiceBase@@QAEXAAVTRequestStatus@@@Z @ 149 NONAME ; void RApaAppServiceBase::NotifyServerExit(class TRequestStatus &)
+	?NotifyServerExit@RApaAppServiceBase@@QBEXAAVTRequestStatus@@@Z @ 149 NONAME ; void RApaAppServiceBase::NotifyServerExit(class TRequestStatus &) const
 	?SecurityCheckL@CApaAppServiceBase@@UAE?AW4TCustomResult@CPolicyServer@@ABVRMessage2@@AAHAAVTSecurityInfo@@@Z @ 150 NONAME ; enum CPolicyServer::TCustomResult CApaAppServiceBase::SecurityCheckL(class RMessage2 const &, int &, class TSecurityInfo &)
-	?ServerName@RApaAppServiceBase@@QAE?AVTPtrC16@@XZ @ 151 NONAME ; class TPtrC16 RApaAppServiceBase::ServerName(void)
+	?ServerName@RApaAppServiceBase@@QBE?AVTPtrC16@@XZ @ 151 NONAME ; class TPtrC16 RApaAppServiceBase::ServerName(void) const
 	?ServerRequired@CApaCommandLine@@QBEIXZ @ 152 NONAME ; unsigned int CApaCommandLine::ServerRequired(void) const
 	?ServiceError@CApaAppServiceBase@@MAEXABVRMessage2@@H@Z @ 153 NONAME ; void CApaAppServiceBase::ServiceError(class RMessage2 const &, int)
 	?ServiceL@CApaAppServiceBase@@MAEXABVRMessage2@@@Z @ 154 NONAME ; void CApaAppServiceBase::ServiceL(class RMessage2 const &)
@@ -157,10 +157,10 @@
 	?SetServerRequiredL@CApaCommandLine@@QAEXI@Z @ 156 NONAME ; void CApaCommandLine::SetServerRequiredL(unsigned int)
 	?ExecutableName@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 157 NONAME ; class TPtrC16 CApaCommandLine::ExecutableName(void) const
 	?ConstructCmdLineFromMessageL@CApaCommandLine@@QAEXABVRMessage2@@@Z @ 158 NONAME ; void CApaCommandLine::ConstructCmdLineFromMessageL(class RMessage2 const &)
-	Apparc_Dummy1 @ 159 NONAME
-	Apparc_Dummy2 @ 160 NONAME
+	Apparc_Dummy1 @ 159 NONAME ABSENT
+	Apparc_Dummy2 @ 160 NONAME ABSENT
 	?GetIpcArgsLC@CApaCommandLine@@QBEXAAVTIpcArgs@@@Z @ 161 NONAME ; void CApaCommandLine::GetIpcArgsLC(class TIpcArgs &) const
-	Apparc_Dummy3 @ 162 NONAME
+	Apparc_Dummy3 @ 162 NONAME ABSENT
 	?GetCommandLineFromProcessEnvironment@CApaCommandLine@@SAHAAPAV1@@Z @ 163 NONAME ; static int CApaCommandLine::GetCommandLineFromProcessEnvironment(class CApaCommandLine * &)
 	??0CApaProcess@@IAE@ABVRFs@@@Z @ 164 NONAME ; CApaProcess::CApaProcess(class RFs const &)
 	?SetExecutableNameL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 165 NONAME ; void CApaCommandLine::SetExecutableNameL(class TDesC16 const &)
@@ -178,4 +178,72 @@
 	?SetDebugMemFailL@CApaCommandLine@@QAEXH@Z @ 177 NONAME ; void CApaCommandLine::SetDebugMemFailL(int)
 	?ReadRootStreamLC@CApaProcess@@SAPAVCStreamDictionary@@AAPAVCFileStore@@ABVRFile@@@Z @ 178 NONAME ; class CStreamDictionary * CApaProcess::ReadRootStreamLC(class CFileStore * &, class RFile const &)
 	?AppStartupInstrumentationEventIdBase@CApaCommandLine@@QBEHXZ @ 179 NONAME ; int CApaCommandLine::AppStartupInstrumentationEventIdBase(void) const
-	?ConstructL@CApaProcess@@IAEXAAVTProcessId@@@Z @ 180 NONAME ; void CApaProcess::ConstructL(class TProcessId &)
+	??0CApaAppFinder@@IAE@XZ @ 180 NONAME ABSENT ; CApaAppFinder::CApaAppFinder(void)
+	??0CApaAppServiceInfoArray@@IAE@XZ @ 181 NONAME ; CApaAppServiceInfoArray::CApaAppServiceInfoArray(void)
+	??0CApaApplication@@IAE@XZ @ 182 NONAME ; CApaApplication::CApaApplication(void)
+	??0CApaDocument@@IAE@XZ @ 183 NONAME ; CApaDocument::CApaDocument(void)
+	??0CApaDoorBase@@IAE@XZ @ 184 NONAME ; CApaDoorBase::CApaDoorBase(void)
+	??0CApaModelHeader@@IAE@XZ @ 185 NONAME ; CApaModelHeader::CApaModelHeader(void)
+	??0CApaProcess@@IAE@XZ @ 186 NONAME ; CApaProcess::CApaProcess(void)
+	??0MApaAppStarter@@IAE@XZ @ 187 NONAME ; MApaAppStarter::MApaAppStarter(void)
+	??0MApaEmbeddedDocObserver@@IAE@XZ @ 188 NONAME ; MApaEmbeddedDocObserver::MApaEmbeddedDocObserver(void)
+	??0MApaModelHeaderFactory@@IAE@XZ @ 189 NONAME ; MApaModelHeaderFactory::MApaModelHeaderFactory(void)
+	??0MApaServerAppExitObserver@@IAE@XZ @ 190 NONAME ; MApaServerAppExitObserver::MApaServerAppExitObserver(void)
+	??0TApaApplicationFactory@@QAE@XZ @ 191 NONAME ; TApaApplicationFactory::TApaApplicationFactory(void)
+	?CApaAppFinder_Reserved1@CApaAppFinder@@EAEXXZ @ 192 NONAME ABSENT ; void CApaAppFinder::CApaAppFinder_Reserved1(void)
+	?CApaAppFinder_Reserved2@CApaAppFinder@@EAEXXZ @ 193 NONAME ABSENT ; void CApaAppFinder::CApaAppFinder_Reserved2(void)
+	?CApaAppServer_Reserved1@CApaAppServer@@EAEXXZ @ 194 NONAME ; void CApaAppServer::CApaAppServer_Reserved1(void)
+	?CApaAppServer_Reserved2@CApaAppServer@@EAEXXZ @ 195 NONAME ; void CApaAppServer::CApaAppServer_Reserved2(void)
+	?CApaAppServiceBase_Reserved1@CApaAppServiceBase@@EAEXXZ @ 196 NONAME ; void CApaAppServiceBase::CApaAppServiceBase_Reserved1(void)
+	?CApaAppServiceBase_Reserved2@CApaAppServiceBase@@EAEXXZ @ 197 NONAME ; void CApaAppServiceBase::CApaAppServiceBase_Reserved2(void)
+	?CApaAppServiceInfoArray_Reserved1@CApaAppServiceInfoArray@@EAEXXZ @ 198 NONAME ; void CApaAppServiceInfoArray::CApaAppServiceInfoArray_Reserved1(void)
+	?CApaAppServiceInfoArray_Reserved2@CApaAppServiceInfoArray@@EAEXXZ @ 199 NONAME ; void CApaAppServiceInfoArray::CApaAppServiceInfoArray_Reserved2(void)
+	?CApaApplication_Reserved1@CApaApplication@@EAEXXZ @ 200 NONAME ; void CApaApplication::CApaApplication_Reserved1(void)
+	?CApaApplication_Reserved2@CApaApplication@@EAEXXZ @ 201 NONAME ; void CApaApplication::CApaApplication_Reserved2(void)
+	?CApaDoorBase_Reserved1@CApaDoorBase@@EAEXXZ @ 202 NONAME ; void CApaDoorBase::CApaDoorBase_Reserved1(void)
+	?CApaDoorBase_Reserved2@CApaDoorBase@@EAEXXZ @ 203 NONAME ; void CApaDoorBase::CApaDoorBase_Reserved2(void)
+	?CApaProcess_Reserved1@CApaProcess@@MAEXXZ @ 204 NONAME ; void CApaProcess::CApaProcess_Reserved1(void)
+	?CApaProcess_Reserved2@CApaProcess@@MAEXXZ @ 205 NONAME ; void CApaProcess::CApaProcess_Reserved2(void)
+	?Capability@CApaDoorBase@@UBE?AVTPictureCapability@@XZ @ 206 NONAME ; class TPictureCapability CApaDoorBase::Capability(void) const
+	?CountResources@CApaAppServiceBase@@MAEHXZ @ 207 NONAME ; int CApaAppServiceBase::CountResources(void)
+	?Disconnect@CApaAppServiceBase@@MAEXABVRMessage2@@@Z @ 208 NONAME ; void CApaAppServiceBase::Disconnect(class RMessage2 const &)
+	?DoConnect@CApaAppServer@@MAEXABVRMessage2@@@Z @ 209 NONAME ; void CApaAppServer::DoConnect(class RMessage2 const &)
+	?GetCropInTwips@CApaDoorBase@@UBEXAAVTMargins@@@Z @ 210 NONAME ; void CApaDoorBase::GetCropInTwips(class TMargins &) const
+	?LineBreakPossible@CApaDoorBase@@UBEHIHH@Z @ 211 NONAME ; int CApaDoorBase::LineBreakPossible(unsigned int, int, int) const
+	?MApaAppStarter_Reserved1@MApaAppStarter@@EAEXXZ @ 212 NONAME ; void MApaAppStarter::MApaAppStarter_Reserved1(void)
+	?MApaAppStarter_Reserved2@MApaAppStarter@@EAEXXZ @ 213 NONAME ; void MApaAppStarter::MApaAppStarter_Reserved2(void)
+	?MApaEmbeddedDocObserver_Reserved1@MApaEmbeddedDocObserver@@EAEXXZ @ 214 NONAME ; void MApaEmbeddedDocObserver::MApaEmbeddedDocObserver_Reserved1(void)
+	?MApaEmbeddedDocObserver_Reserved2@MApaEmbeddedDocObserver@@EAEXXZ @ 215 NONAME ; void MApaEmbeddedDocObserver::MApaEmbeddedDocObserver_Reserved2(void)
+	?MApaModelHeaderFactory_Reserved1@MApaModelHeaderFactory@@EAEXXZ @ 216 NONAME ; void MApaModelHeaderFactory::MApaModelHeaderFactory_Reserved1(void)
+	?MApaModelHeaderFactory_Reserved2@MApaModelHeaderFactory@@EAEXXZ @ 217 NONAME ; void MApaModelHeaderFactory::MApaModelHeaderFactory_Reserved2(void)
+	?MApaServerAppExitObserver_Reserved1@MApaServerAppExitObserver@@EAEXXZ @ 218 NONAME ; void MApaServerAppExitObserver::MApaServerAppExitObserver_Reserved1(void)
+	?MApaServerAppExitObserver_Reserved2@MApaServerAppExitObserver@@EAEXXZ @ 219 NONAME ; void MApaServerAppExitObserver::MApaServerAppExitObserver_Reserved2(void)
+	?NativePixelSize@CApaDoorBase@@UAEHAAVTSize@@@Z @ 220 NONAME ; int CApaDoorBase::NativePixelSize(class TSize &)
+	?RApaAppServiceBase_Reserved1@RApaAppServiceBase@@EAEXXZ @ 221 NONAME ; void RApaAppServiceBase::RApaAppServiceBase_Reserved1(void)
+	?RApaAppServiceBase_Reserved2@RApaAppServiceBase@@EAEXXZ @ 222 NONAME ; void RApaAppServiceBase::RApaAppServiceBase_Reserved2(void)
+	?Reserved_2@CApaModelHeader@@EAEXXZ @ 223 NONAME ; void CApaModelHeader::Reserved_2(void)
+	?ScaleFactorHeight@CApaDoorBase@@UBEHXZ @ 224 NONAME ; int CApaDoorBase::ScaleFactorHeight(void) const
+	?ScaleFactorWidth@CApaDoorBase@@UBEHXZ @ 225 NONAME ; int CApaDoorBase::ScaleFactorWidth(void) const
+	?SetCropInTwips@CApaDoorBase@@UAEXABVTMargins@@@Z @ 226 NONAME ; void CApaDoorBase::SetCropInTwips(class TMargins const &)
+	?SetScaleFactor@CApaDoorBase@@UAEXHH@Z @ 227 NONAME ; void CApaDoorBase::SetScaleFactor(int, int)
+	?StoreL@CApaDoorBase@@UBE?AVTStreamId@@AAVCStreamStore@@@Z @ 228 NONAME ; class TStreamId CApaDoorBase::StoreL(class CStreamStore &) const
+	?OpaqueData@CApaCommandLine@@QBE?AVTPtrC8@@XZ @ 229 NONAME ; class TPtrC8 CApaCommandLine::OpaqueData(void) const
+	?SetOpaqueDataL@CApaCommandLine@@QAEXABVTDesC8@@@Z @ 230 NONAME ; void CApaCommandLine::SetOpaqueDataL(class TDesC8 cosnt &)
+	?IsDefaultScreenSet@CApaCommandLine@@QBEHXZ @ 231 NONAME ; int CApaCommandLine::IsDefaultScreenSet(void) const
+	?ConstructL@CApaProcess@@IAEXVTProcessId@@@Z @ 232 NONAME ; void CApaProcess::ConstructL(class TProcessId)
+	?ParentProcessId@CApaCommandLine@@QBE?AVTProcessId@@XZ @ 233 NONAME ; class TProcessId CApaCommandLine::ParentProcessId(void) const
+	?SetParentProcessId@CApaCommandLine@@QAEXVTProcessId@@@Z @ 234 NONAME ; void CApaCommandLine::SetParentProcessId(class TProcessId)
+	?ConnectExistingAppL@RApaAppServiceBase@@QAEXABV1@ABVTSecurityPolicy@@@Z @ 235 NONAME ; void RApaAppServiceBase::ConnectExistingAppL(class RApaAppServiceBase const &, class TSecurityPolicy const &)
+	?ConnectExistingByNameL@RApaAppServiceBase@@QAEXABVTDesC16@@ABVTSecurityPolicy@@@Z @ 236 NONAME ; void RApaAppServiceBase::ConnectExistingByNameL(class TDesC16 const &, class TSecurityPolicy const &)
+	?NumberOfEnvironmentSlotsForPublicUse@CApaCommandLine@@SAHXZ @ 237 NONAME ; int CApaCommandLine::NumberOfEnvironmentSlotsForPublicUse(void)
+	?DataTypes@TApaAppServiceInfo@@QBEABV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 238 NONAME ; class CArrayFixFlat<class TDataTypeWithPriority> const & TApaAppServiceInfo::DataTypes(void) const
+	?OpaqueData@TApaAppServiceInfo@@QBEABVTDesC8@@XZ @ 239 NONAME ; class TDesC8 const & TApaAppServiceInfo::OpaqueData(void) const
+	?Uid@TApaAppServiceInfo@@QBE?AVTUid@@XZ @ 240 NONAME ; class TUid TApaAppServiceInfo::Uid(void) const
+	?Release@TApaAppServiceInfo@@QAEXXZ @ 241 NONAME ; void TApaAppServiceInfo::Release(void)
+	??0TApaAppServiceInfo@@QAE@XZ @ 242 NONAME ; TApaAppServiceInfo::TApaAppServiceInfo(void)
+	?InternalizeL@TApaAppServiceInfo@@QAEXAAVRReadStream@@@Z @ 243 NONAME ; void TApaAppServiceInfo::InternalizeL(class RReadStream &)
+	??0TApaAppServiceInfo@@QAE@VTUid@@PAV?$CArrayFixFlat@VTDataTypeWithPriority@@@@PAVHBufC8@@@Z @ 244 NONAME ; TApaAppServiceInfo::TApaAppServiceInfo(class TUid, class CArrayFixFlat<class TDataTypeWithPriority> *, class HBufC8 *)
+	?DataTypes@TApaAppServiceInfo@@QAEAAV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 245 NONAME ; class CArrayFixFlat<class TDataTypeWithPriority> & TApaAppServiceInfo::DataTypes(void)
+	?ExternalizeL@TApaAppServiceInfo@@QBEXAAVRWriteStream@@@Z @ 246 NONAME ; void TApaAppServiceInfo::ExternalizeL(class RWriteStream &) const
+	?TransferExistingSessionL@RApaAppServiceBase@@QAEXAAV1@@Z @ 247 NONAME ; void RApaAppServiceBase::TransferExistingSessionL(class RApaAppServiceBase &)
+
--- a/localisation/apparchitecture/bwins/APPARC_9_REMOVE_UI_FRAMEWORKS_V1U.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-EXPORTS
-	??0CApaDocument@@IAE@AAVCApaApplication@@AAVCApaProcess@@@Z @ 1 NONAME ; protected: __thiscall CApaDocument::CApaDocument(class CApaApplication &,class CApaProcess &)
-	??0CApaFileRecognizer@@IAE@AAVRFs@@@Z @ 2 NONAME ; protected: __thiscall CApaFileRecognizer::CApaFileRecognizer(class RFs &)
-	??0CApaFileRecognizerType@@IAE@XZ @ 3 NONAME ; protected: __thiscall CApaFileRecognizerType::CApaFileRecognizerType(void)
-	??0CApaProcess@@IAE@ABVRFs@@AAVCApaAppFinder@@@Z @ 4 NONAME ABSENT ; protected: __thiscall CApaProcess::CApaProcess(class RFs const &,class CApaAppFinder &)
-	??0TApaAppEntry@@QAE@ABVTUidType@@ABV?$TBuf@$0BAA@@@@Z @ 5 NONAME ; public: __thiscall TApaAppEntry::TApaAppEntry(class TUidType const &,class TBuf<256> const &)
-	??0TApaAppEntry@@QAE@XZ @ 6 NONAME ; public: __thiscall TApaAppEntry::TApaAppEntry(void)
-	??0TApaAppIdentifier@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@@Z @ 7 NONAME ; public: __thiscall TApaAppIdentifier::TApaAppIdentifier(class TUid,class TBuf<256> const &)
-	??0TApaAppIdentifier@@QAE@XZ @ 8 NONAME ; public: __thiscall TApaAppIdentifier::TApaAppIdentifier(void)
-	??0TApaAppInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@1@Z @ 9 NONAME ; public: __thiscall TApaAppInfo::TApaAppInfo(class TUid,class TBuf<256> const &,class TBuf<256> const &)
-	??0TApaAppInfo@@QAE@XZ @ 10 NONAME ; public: __thiscall TApaAppInfo::TApaAppInfo(void)
-	??0TApaModelDoorFactory@@QAE@PBVMApaModelHeaderFactory@@@Z @ 11 NONAME ; public: __thiscall TApaModelDoorFactory::TApaModelDoorFactory(class MApaModelHeaderFactory const *)
-	??0TCapability@CApaDocument@@QAE@XZ @ 12 NONAME ; public: __thiscall CApaDocument::TCapability::TCapability(void)
-	??1CApaCommandLine@@UAE@XZ @ 13 NONAME ; public: virtual __thiscall CApaCommandLine::~CApaCommandLine(void)
-	??1CApaDocument@@UAE@XZ @ 14 NONAME ; public: virtual __thiscall CApaDocument::~CApaDocument(void)
-	??1CApaFileRecognizer@@UAE@XZ @ 15 NONAME ; public: virtual __thiscall CApaFileRecognizer::~CApaFileRecognizer(void)
-	??1CApaFileRecognizerType@@MAE@XZ @ 16 NONAME ; protected: virtual __thiscall CApaFileRecognizerType::~CApaFileRecognizerType(void)
-	??1CApaModelDoor@@UAE@XZ @ 17 NONAME ; public: virtual __thiscall CApaModelDoor::~CApaModelDoor(void)
-	??1CApaProcess@@UAE@XZ @ 18 NONAME ; public: virtual __thiscall CApaProcess::~CApaProcess(void)
-	?AddFileRecognizerType@CApaFileRecognizer@@IAEXPAVCApaFileRecognizerType@@@Z @ 19 NONAME ; protected: void __thiscall CApaFileRecognizer::AddFileRecognizerType(class CApaFileRecognizerType *)
-	?AddNewDocumentL@CApaProcess@@QAEPAVCApaDocument@@ABVTDesC16@@VTUid@@@Z @ 20 NONAME ABSENT ; public: class CApaDocument * __thiscall CApaProcess::AddNewDocumentL(class TDesC16 const &,class TUid)
-	?AppFullName@CApaApplication@@UBE?AV?$TBuf@$0BAA@@@XZ @ 21 NONAME ; public: virtual class TBuf<256>  __thiscall CApaApplication::AppFullName(void)const 
-	?AppLocator@CApaFileRecognizer@@QBEPAVCApaAppLocator@@XZ @ 22 NONAME ; public: class CApaAppLocator * __thiscall CApaFileRecognizer::AppLocator(void)const 
-	?AppRunL@CApaFileRecognizerType@@IBE?AVTThreadId@@ABVCApaCommandLine@@@Z @ 23 NONAME ; protected: class TThreadId  __thiscall CApaFileRecognizerType::AppRunL(class CApaCommandLine const &)const 
-	?Capability@CApaDocument@@UBE?AVTCapability@1@XZ @ 24 NONAME ; public: virtual class CApaDocument::TCapability  __thiscall CApaDocument::Capability(void)const 
-	?Capability@CApaFileRecognizerType@@QBEXAAVTDes8@@@Z @ 25 NONAME ; public: void __thiscall CApaFileRecognizerType::Capability(class TDes8 &)const 
-	?Command@CApaCommandLine@@QBE?AW4TApaCommand@@XZ @ 26 NONAME ; public: enum TApaCommand  __thiscall CApaCommandLine::Command(void)const 
-	?ConstructL@CApaProcess@@IAEXXZ @ 27 NONAME ; protected: void __thiscall CApaProcess::ConstructL(void)
-	?CopyCapability@TApaAppCapability@@SAXAAVTDes8@@ABVTDesC8@@@Z @ 28 NONAME ; public: static void __cdecl TApaAppCapability::CopyCapability(class TDes8 &,class TDesC8 const &)
-	?DestroyDocument@CApaProcess@@QAEXPAVCApaDocument@@@Z @ 29 NONAME ; public: void __thiscall CApaProcess::DestroyDocument(class CApaDocument *)
-	?DestroyRecognizerList@CApaFileRecognizer@@IAEXXZ @ 30 NONAME ; protected: void __thiscall CApaFileRecognizer::DestroyRecognizerList(void)
-	?DllName@CApaApplication@@QBE?AV?$TBuf@$0BAA@@@XZ @ 31 NONAME ; public: class TBuf<256>  __thiscall CApaApplication::DllName(void)const 
-	?DoCleanup@TApaDocCleanupItem@@CAXPAX@Z @ 32 NONAME ; private: static void __cdecl TApaDocCleanupItem::DoCleanup(void *)
-	?DocumentName@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 33 NONAME ; public: class TPtrC16  __thiscall CApaCommandLine::DocumentName(void)const 
-	?Draw@CApaModelDoor@@UBEXAAVCGraphicsContext@@ABVTPoint@@ABVTRect@@PAVMGraphicsDeviceMap@@@Z @ 34 NONAME ; public: virtual void __thiscall CApaModelDoor::Draw(class CGraphicsContext &,class TPoint const &,class TRect const &,class MGraphicsDeviceMap *)const 
-	?ExternalizeBaseStreamL@CApaDoorBase@@IBEXAAVCStreamStore@@AAVCStreamDictionary@@@Z @ 35 NONAME ; protected: void __thiscall CApaDoorBase::ExternalizeBaseStreamL(class CStreamStore &,class CStreamDictionary &)const 
-	?ExternalizeL@CApaDocument@@UBEXAAVRWriteStream@@@Z @ 36 NONAME ; public: virtual void __thiscall CApaDocument::ExternalizeL(class RWriteStream &)const 
-	?ExternalizeL@CApaModelDoor@@UBEXAAVRWriteStream@@@Z @ 37 NONAME ; public: virtual void __thiscall CApaModelDoor::ExternalizeL(class RWriteStream &)const 
-	?ExternalizeL@TApaAppCapability@@QBEXAAVRWriteStream@@@Z @ 38 NONAME ; public: void __thiscall TApaAppCapability::ExternalizeL(class RWriteStream &)const 
-	?ExternalizeL@TApaAppEntry@@QBEXAAVRWriteStream@@@Z @ 39 NONAME ; public: void __thiscall TApaAppEntry::ExternalizeL(class RWriteStream &)const 
-	?ExternalizeL@TApaAppIdentifier@@QBEXAAVRWriteStream@@@Z @ 40 NONAME ; public: void __thiscall TApaAppIdentifier::ExternalizeL(class RWriteStream &)const 
-	?ExternalizeL@TApaAppInfo@@QBEXAAVRWriteStream@@@Z @ 41 NONAME ; public: void __thiscall TApaAppInfo::ExternalizeL(class RWriteStream &)const 
-	?FullCommandLine@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 42 NONAME ABSENT ; public: class TPtrC16  __thiscall CApaCommandLine::FullCommandLine(void)const 
-	?GenerateFileName@CApaApplication@@SAHAAVRFs@@AAV?$TBuf@$0BAA@@@@Z @ 43 NONAME ; public: static int __cdecl CApaApplication::GenerateFileName(class RFs &,class TBuf<256> &)
-	?GetOriginalSizeInTwips@CApaModelDoor@@UBEXAAVTSize@@@Z @ 44 NONAME ; public: virtual void __thiscall CApaModelDoor::GetOriginalSizeInTwips(class TSize &)const 
-	?GlassPictureL@CApaDocument@@UAEPAVCPicture@@XZ @ 45 NONAME ; public: virtual class CPicture * __thiscall CApaDocument::GlassPictureL(void)
-	?InternalizeBaseStreamL@CApaDoorBase@@IAE?AVTSize@@ABVCStreamStore@@ABVCStreamDictionary@@@Z @ 46 NONAME ; protected: class TSize  __thiscall CApaDoorBase::InternalizeBaseStreamL(class CStreamStore const &,class CStreamDictionary const &)
-	?InternalizeL@TApaAppCapability@@QAEXAAVRReadStream@@@Z @ 47 NONAME ; public: void __thiscall TApaAppCapability::InternalizeL(class RReadStream &)
-	?InternalizeL@TApaAppEntry@@QAEXAAVRReadStream@@@Z @ 48 NONAME ; public: void __thiscall TApaAppEntry::InternalizeL(class RReadStream &)
-	?InternalizeL@TApaAppIdentifier@@QAEXAAVRReadStream@@@Z @ 49 NONAME ; public: void __thiscall TApaAppIdentifier::InternalizeL(class RReadStream &)
-	?InternalizeL@TApaAppInfo@@QAEXAAVRReadStream@@@Z @ 50 NONAME ; public: void __thiscall TApaAppInfo::InternalizeL(class RReadStream &)
-	?LibraryName@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 51 NONAME ABSENT ; public: class TPtrC16  __thiscall CApaCommandLine::LibraryName(void)const 
-	?MainDocFileName@CApaProcess@@QBE?AVTPtrC16@@XZ @ 52 NONAME ; public: class TPtrC16  __thiscall CApaProcess::MainDocFileName(void)const 
-	?New@CApaCommandLine@@SAPAV1@PAVHBufC16@@@Z @ 53 NONAME ABSENT ; public: static class CApaCommandLine * __cdecl CApaCommandLine::New(class HBufC16 *)
-	?NewL@CApaCommandLine@@SAPAV1@ABVTDesC16@@@Z @ 54 NONAME ABSENT ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewL(class TDesC16 const &)
-	?NewL@CApaCommandLine@@SAPAV1@XZ @ 55 NONAME ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewL(void)
-	?NewL@CApaModelDoor@@SAPAV1@ABVCStreamStore@@VTStreamId@@PBVMApaModelHeaderFactory@@@Z @ 56 NONAME ; public: static class CApaModelDoor * __cdecl CApaModelDoor::NewL(class CStreamStore const &,class TStreamId,class MApaModelHeaderFactory const *)
-	?NewL@CApaModelDoor@@SAPAV1@PAVCApaModelHeader@@@Z @ 57 NONAME ; public: static class CApaModelDoor * __cdecl CApaModelDoor::NewL(class CApaModelHeader *)
-	?NewL@CApaProcess@@SAPAV1@ABVRFs@@AAVCApaAppFinder@@@Z @ 58 NONAME ABSENT ; public: static class CApaProcess * __cdecl CApaProcess::NewL(class RFs const &,class CApaAppFinder &)
-	?NewLC@CApaCommandLine@@SAPAV1@ABVTDesC16@@@Z @ 59 NONAME ABSENT ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewLC(class TDesC16 const &)
-	?NewLC@CApaCommandLine@@SAPAV1@XZ @ 60 NONAME ; public: static class CApaCommandLine * __cdecl CApaCommandLine::NewLC(void)
-	?NewLC@CApaModelDoor@@SAPAV1@PAVCApaModelHeader@@@Z @ 61 NONAME ; public: static class CApaModelDoor * __cdecl CApaModelDoor::NewLC(class CApaModelHeader *)
-	?NewPictureL@TApaModelDoorFactory@@UBEXAAVTPictureHeader@@ABVCStreamStore@@@Z @ 62 NONAME ; public: virtual void __thiscall TApaModelDoorFactory::NewPictureL(class TPictureHeader &,class CStreamStore const &)const 
-	?OpenAppInfoFileL@CApaApplication@@QBEPAVCApaAppInfoFileReader@@XZ @ 63 NONAME ABSENT ; public: class CApaAppInfoFileReader * __thiscall CApaApplication::OpenAppInfoFileL(void)const 
-	?OpenIniFileL@CApaApplication@@QBEPAVCDictionaryStore@@AAVRFs@@@Z @ 64 NONAME ; public: class CDictionaryStore * __thiscall CApaApplication::OpenIniFileL(class RFs &)const 
-	?OpenNewDocumentL@CApaProcess@@QAEPAVCApaDocument@@AAPAVCFileStore@@AAPAVCStreamDictionary@@ABVTDesC16@@I@Z @ 65 NONAME ; public: class CApaDocument * __thiscall CApaProcess::OpenNewDocumentL(class CFileStore * &,class CStreamDictionary * &,class TDesC16 const &,unsigned int)
-	?ReadAppIdentifierL@CApaProcess@@SA?AVTApaAppIdentifier@@ABVCStreamStore@@ABVCStreamDictionary@@@Z @ 66 NONAME ; public: static class TApaAppIdentifier  __cdecl CApaProcess::ReadAppIdentifierL(class CStreamStore const &,class CStreamDictionary const &)
-	?ReadRootStreamLC@CApaProcess@@SAPAVCStreamDictionary@@AAVRFs@@AAPAVCFileStore@@ABVTDesC16@@I@Z @ 67 NONAME ; public: static class CStreamDictionary * __cdecl CApaProcess::ReadRootStreamLC(class RFs &,class CFileStore * &,class TDesC16 const &,unsigned int)
-	?RecognizeFileL@CApaFileRecognizer@@QAEPAVCApaFileRecognizerType@@ABVTDesC16@@PBVTUidType@@@Z @ 68 NONAME ; public: class CApaFileRecognizerType * __thiscall CApaFileRecognizer::RecognizeFileL(class TDesC16 const &,class TUidType const *)
-	?NewAppServerL@CApaApplication@@UAEXAAPAVCApaAppServer@@@Z @ 69 NONAME ; void CApaApplication::NewAppServerL(class CApaAppServer * &)
-	?OpenFileL@CApaDocument@@EAEXAAPAVCFileStore@@AAVRFile@@@Z @ 70 NONAME ; void CApaDocument::OpenFileL(class CFileStore * &, class RFile &)
-	?Reserved_2@CApaDocument@@EAEXXZ @ 71 NONAME ; private: virtual void __thiscall CApaDocument::Reserved_2(void)
-	?ResetL@CApaProcess@@QAEXXZ @ 72 NONAME ; public: void __thiscall CApaProcess::ResetL(void)
-	?RestoreL@CApaModelDoor@@QAEXABVCStreamStore@@VTStreamId@@PBVMApaModelHeaderFactory@@@Z @ 73 NONAME ; public: void __thiscall CApaModelDoor::RestoreL(class CStreamStore const &,class TStreamId,class MApaModelHeaderFactory const *)
-	?ScaleFactorHeight@CApaModelDoor@@UBEHXZ @ 74 NONAME ; public: virtual int __thiscall CApaModelDoor::ScaleFactorHeight(void)const 
-	?ScaleFactorWidth@CApaModelDoor@@UBEHXZ @ 75 NONAME ; public: virtual int __thiscall CApaModelDoor::ScaleFactorWidth(void)const 
-	?SetAppLocator@CApaFileRecognizer@@IAEXPAVCApaAppLocator@@@Z @ 76 NONAME ; protected: void __thiscall CApaFileRecognizer::SetAppLocator(class CApaAppLocator *)
-	?SetCommandL@CApaCommandLine@@QAEXW4TApaCommand@@@Z @ 77 NONAME ; public: void __thiscall CApaCommandLine::SetCommandL(enum TApaCommand)
-	?SetDocumentNameL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 78 NONAME ; public: void __thiscall CApaCommandLine::SetDocumentNameL(class TDesC16 const &)
-	?SetFullCommandLine@CApaCommandLine@@QAEHPAVHBufC16@@@Z @ 79 NONAME ABSENT ; public: int __thiscall CApaCommandLine::SetFullCommandLine(class HBufC16 *)
-	?SetFullCommandLineL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 80 NONAME ABSENT ; public: void __thiscall CApaCommandLine::SetFullCommandLineL(class TDesC16 const &)
-	?SetLibraryNameL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 81 NONAME ABSENT ; public: void __thiscall CApaCommandLine::SetLibraryNameL(class TDesC16 const &)
-	?SetMainDocFileName@CApaProcess@@QAEXABVTDesC16@@@Z @ 82 NONAME ; public: void __thiscall CApaProcess::SetMainDocFileName(class TDesC16 const &)
-	?SetMainDocument@CApaProcess@@QAEXPAVCApaDocument@@@Z @ 83 NONAME ; public: void __thiscall CApaProcess::SetMainDocument(class CApaDocument *)
-	?SetReserveLengthL@CApaCommandLine@@QAEXH@Z @ 84 NONAME ABSENT ; public: void __thiscall CApaCommandLine::SetReserveLengthL(int)
-	?SetScaleFactor@CApaModelDoor@@UAEXHH@Z @ 85 NONAME ; public: virtual void __thiscall CApaModelDoor::SetScaleFactor(int,int)
-	?SetTailEndL@CApaCommandLine@@QAEXABVTDesC8@@@Z @ 86 NONAME ; public: void __thiscall CApaCommandLine::SetTailEndL(class TDesC8 const &)
-	?StoreL@CApaModelDoor@@UBE?AVTStreamId@@AAVCStreamStore@@@Z @ 87 NONAME ; public: virtual class TStreamId  __thiscall CApaModelDoor::StoreL(class CStreamStore &)const 
-	?TailEnd@CApaCommandLine@@QBE?AVTPtrC8@@XZ @ 88 NONAME ; public: class TPtrC8  __thiscall CApaCommandLine::TailEnd(void)const 
-	?ValidatePasswordL@CApaDocument@@UBEXXZ @ 89 NONAME ; public: virtual void __thiscall CApaDocument::ValidatePasswordL(void)const 
-	?WriteAppIdentifierL@CApaProcess@@SAXAAVCStreamStore@@AAVCStreamDictionary@@ABVTApaAppIdentifier@@@Z @ 90 NONAME ; public: static void __cdecl CApaProcess::WriteAppIdentifierL(class CStreamStore &,class CStreamDictionary &,class TApaAppIdentifier const &)
-	?WriteRootStreamL@CApaProcess@@SAXAAVCPersistentStore@@AAVCStreamDictionary@@ABVCApaApplication@@@Z @ 91 NONAME ; public: static void __cdecl CApaProcess::WriteRootStreamL(class CPersistentStore &,class CStreamDictionary &,class CApaApplication const &)
-	?WriteRootStreamL@CApaProcess@@SAXAAVCPersistentStore@@AAVCStreamDictionary@@ABVTApaAppIdentifier@@@Z @ 92 NONAME ; public: static void __cdecl CApaProcess::WriteRootStreamL(class CPersistentStore &,class CStreamDictionary &,class TApaAppIdentifier const &)
-	?DetachFromStoreL@CApaModelDoor@@UAEXW4TDetach@CPicture@@@Z @ 93 NONAME ; public: virtual void __thiscall CApaModelDoor::DetachFromStoreL(enum CPicture::TDetach)
-	?Lock@CApaFileRecognizerType@@QAEXXZ @ 94 NONAME ; public: void __thiscall CApaFileRecognizerType::Lock(void)
-	?RemoveFileRecognizerType@CApaFileRecognizer@@IAEHPBVCApaFileRecognizerType@@@Z @ 95 NONAME ; protected: int __thiscall CApaFileRecognizer::RemoveFileRecognizerType(class CApaFileRecognizerType const *)
-	?Unlock@CApaFileRecognizerType@@QAEXXZ @ 96 NONAME ; public: void __thiscall CApaFileRecognizerType::Unlock(void)
-	??0TApaLastUsedEntry@@QAE@V?$TBuf@$0BAA@@@VTUid@@@Z @ 97 NONAME ABSENT ; public: __thiscall TApaLastUsedEntry::TApaLastUsedEntry(class TBuf<256>,class TUid)
-	??0TApaLastUsedEntry@@QAE@XZ @ 98 NONAME ABSENT ; public: __thiscall TApaLastUsedEntry::TApaLastUsedEntry(void)
-	?AddLastUsedEntryL@CApaRecentFile@@SAXAAVRFs@@ABVTDesC16@@VTUid@@@Z @ 99 NONAME ABSENT ; public: static void __cdecl CApaRecentFile::AddLastUsedEntryL(class RFs &,class TDesC16 const &,class TUid)
-	?ExternalizeL@TApaLastUsedEntry@@QBEXAAVRWriteStream@@@Z @ 100 NONAME ABSENT ; public: void __thiscall TApaLastUsedEntry::ExternalizeL(class RWriteStream &)const 
-	?GetRecentFileL@CApaRecentFile@@SA?AVTApaLastUsedEntry@@AAVRFs@@VTUid@@H@Z @ 101 NONAME ABSENT ; public: static class TApaLastUsedEntry  __cdecl CApaRecentFile::GetRecentFileL(class RFs &,class TUid,int)
-	?GetRecentFileListL@CApaRecentFile@@SAPAV?$CArrayFixFlat@VTApaLastUsedEntry@@@@AAVRFs@@VTUid@@@Z @ 102 NONAME ABSENT ; public: static class CArrayFixFlat<class TApaLastUsedEntry> * __cdecl CApaRecentFile::GetRecentFileListL(class RFs &,class TUid)
-	?InternalizeL@TApaLastUsedEntry@@QAEXAAVRReadStream@@@Z @ 103 NONAME ABSENT ; public: void __thiscall TApaLastUsedEntry::InternalizeL(class RReadStream &)
-	?Reserved_1@CApaFileRecognizerType@@EAEXXZ @ 104 NONAME ; private: virtual void __thiscall CApaFileRecognizerType::Reserved_1(void)
-	?Reserved_1@CApaModelHeader@@EAEXXZ @ 105 NONAME ; private: virtual void __thiscall CApaModelHeader::Reserved_1(void)
-	??0TApaAppViewInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@H@Z @ 106 NONAME ; public: __thiscall TApaAppViewInfo::TApaAppViewInfo(class TUid,class TBuf<256> const &,int)
-	??0TApaAppViewInfo@@QAE@XZ @ 107 NONAME ; public: __thiscall TApaAppViewInfo::TApaAppViewInfo(void)
-	?ExternalizeL@TApaAppViewInfo@@QBEXAAVRWriteStream@@@Z @ 108 NONAME ; public: void __thiscall TApaAppViewInfo::ExternalizeL(class RWriteStream &)const 
-	?InternalizeL@TApaAppViewInfo@@QAEXAAVRReadStream@@@Z @ 109 NONAME ; public: void __thiscall TApaAppViewInfo::InternalizeL(class RReadStream &)
-	??0TApaAppInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@11@Z @ 110 NONAME ; public: __thiscall TApaAppInfo::TApaAppInfo(class TUid,class TBuf<256> const &,class TBuf<256> const &,class TBuf<256> const &)
-	??0TApaAppInfo_7_0@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@1@Z @ 111 NONAME ABSENT ; TApaAppInfo_7_0::TApaAppInfo_7_0(class TUid, class TBuf<256> const &, class TBuf<256> const &)
-	??0TApaAppInfo_7_0@@QAE@XZ @ 112 NONAME ABSENT ; TApaAppInfo_7_0::TApaAppInfo_7_0(void)
-	?ExternalizeL@TApaAppInfo_7_0@@QBEXAAVRWriteStream@@@Z @ 113 NONAME ABSENT ; void TApaAppInfo_7_0::ExternalizeL(class RWriteStream &) const
-	?InternalizeL@TApaAppInfo_7_0@@QAEXAAVRReadStream@@@Z @ 114 NONAME ABSENT ; void TApaAppInfo_7_0::InternalizeL(class RReadStream &)
-	?Externalize7_0L@TApaAppCapability@@ABEXAAVRWriteStream@@@Z @ 115 NONAME ; void TApaAppCapability::Externalize7_0L(class RWriteStream &) const
-	?Internalize7_0L@TApaAppCapability@@QAEXAAVRReadStream@@@Z @ 116 NONAME ; void TApaAppCapability::Internalize7_0L(class RReadStream &)
-	??0TApaEmbeddabilityFilter@@QAE@XZ @ 117 NONAME ; public: __thiscall TApaEmbeddabilityFilter::TApaEmbeddabilityFilter(void)
-	?AddEmbeddability@TApaEmbeddabilityFilter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 118 NONAME ; public: void __thiscall TApaEmbeddabilityFilter::AddEmbeddability(enum TApaAppCapability::TEmbeddability)
-	?MatchesEmbeddability@TApaEmbeddabilityFilter@@QBEHW4TEmbeddability@TApaAppCapability@@@Z @ 119 NONAME ; public: int __thiscall TApaEmbeddabilityFilter::MatchesEmbeddability(enum TApaAppCapability::TEmbeddability)const 
-	?SetMainDocFileNameL@CApaProcess@@QAEXABVTDesC16@@@Z @ 120 NONAME ; public: void __thiscall CApaProcess::SetMainDocFileNameL(class TDesC16 const &)
-	?CreateFileRecognizerL@CApaFileRecognizerType@@SAPAV1@VTUid@@@Z @ 121 NONAME ; public: static class CApaFileRecognizerType * __cdecl CApaFileRecognizerType::CreateFileRecognizerL(class TUid)
-	??0TApaApplicationFactory@@QAE@ABVCImplementationInformation@@@Z @ 122 NONAME ; TApaApplicationFactory::TApaApplicationFactory(class CImplementationInformation const &)
-	??0TApaApplicationFactory@@QAE@P6APAVCApaApplication@@XZ@Z @ 123 NONAME ; TApaApplicationFactory::TApaApplicationFactory(class CApaApplication * (*)(void))
-	??0TApaApplicationFactory@@QAE@VTUid@@@Z @ 124 NONAME ; TApaApplicationFactory::TApaApplicationFactory(class TUid)
-	??1CApaApplication@@UAE@XZ @ 125 NONAME ; CApaApplication::~CApaApplication(void)
-	?AddNewDocumentL@CApaProcess@@QAEPAVCApaDocument@@VTApaApplicationFactory@@@Z @ 126 NONAME ; class CApaDocument * CApaProcess::AddNewDocumentL(class TApaApplicationFactory)
-	??0CApaAppServer@@IAE@XZ @ 127 NONAME ; CApaAppServer::CApaAppServer(void)
-	??0CApaAppServiceBase@@QAE@XZ @ 128 NONAME ; CApaAppServiceBase::CApaAppServiceBase(void)
-	??0RApaAppServiceBase@@IAE@XZ @ 129 NONAME ; RApaAppServiceBase::RApaAppServiceBase(void)
-	??1CApaAppServer@@UAE@XZ @ 130 NONAME ; CApaAppServer::~CApaAppServer(void)
-	??1CApaAppServiceBase@@UAE@XZ @ 131 NONAME ; CApaAppServiceBase::~CApaAppServiceBase(void)
-	??1CApaServerAppExitMonitor@@UAE@XZ @ 132 NONAME ; CApaServerAppExitMonitor::~CApaServerAppExitMonitor(void)
-	?CancelNotifyServerExit@RApaAppServiceBase@@QBEXXZ @ 133 NONAME ; void RApaAppServiceBase::CancelNotifyServerExit(void) const
-	?Close@RApaAppServiceBase@@QAEXXZ @ 134 NONAME ; void RApaAppServiceBase::Close(void)
-	?ConnectExistingAppL@RApaAppServiceBase@@QAEXABV1@@Z @ 135 NONAME ; void RApaAppServiceBase::ConnectExistingAppL(class RApaAppServiceBase const &)
-	?ConnectExistingByNameL@RApaAppServiceBase@@QAEXABVTDesC16@@@Z @ 136 NONAME ; void RApaAppServiceBase::ConnectExistingByNameL(class TDesC16 const &)
-	?ConstructL@CApaAppServer@@UAEXABVTDesC16@@@Z @ 137 NONAME ; void CApaAppServer::ConstructL(class TDesC16 const &)
-	?CreateL@CApaAppServiceBase@@MAEXXZ @ 138 NONAME ; void CApaAppServiceBase::CreateL(void)
-	?CreateServiceL@CApaAppServer@@UBEPAVCApaAppServiceBase@@VTUid@@@Z @ 139 NONAME ; class CApaAppServiceBase * CApaAppServer::CreateServiceL(class TUid) const
-	?CreateServiceSecurityCheckL@CApaAppServer@@UAE?AW4TCustomResult@CPolicyServer@@VTUid@@ABVRMessage2@@AAHAAVTSecurityInfo@@@Z @ 140 NONAME ; enum CPolicyServer::TCustomResult CApaAppServer::CreateServiceSecurityCheckL(class TUid, class RMessage2 const &, int &, class TSecurityInfo &)
-	?CustomSecurityCheckL@CApaAppServer@@MAE?AW4TCustomResult@CPolicyServer@@ABVRMessage2@@AAHAAVTSecurityInfo@@@Z @ 141 NONAME ; enum CPolicyServer::TCustomResult CApaAppServer::CustomSecurityCheckL(class RMessage2 const &, int &, class TSecurityInfo &)
-	?ExtensionInterface@CApaAppServer@@EAEXVTUid@@AAPAX@Z @ 142 NONAME ; void CApaAppServer::ExtensionInterface(class TUid, void * &)
-	?ExtensionInterface@CApaAppServiceBase@@EAEXVTUid@@AAPAX@Z @ 143 NONAME ; void CApaAppServiceBase::ExtensionInterface(class TUid, void * &)
-	?ExtensionInterface@RApaAppServiceBase@@EAEXVTUid@@AAPAX@Z @ 144 NONAME ; void RApaAppServiceBase::ExtensionInterface(class TUid, void * &)
-	?NewL@CApaServerAppExitMonitor@@SAPAV1@AAVRApaAppServiceBase@@AAVMApaServerAppExitObserver@@H@Z @ 145 NONAME ; class CApaServerAppExitMonitor * CApaServerAppExitMonitor::NewL(class RApaAppServiceBase &, class MApaServerAppExitObserver &, int)
-	?NewLC@CApaServerAppExitMonitor@@SAPAV1@AAVRApaAppServiceBase@@AAVMApaServerAppExitObserver@@H@Z @ 146 NONAME ; class CApaServerAppExitMonitor * CApaServerAppExitMonitor::NewLC(class RApaAppServiceBase &, class MApaServerAppExitObserver &, int)
-	?NewSessionL@CApaAppServer@@EBEPAVCSession2@@ABVTVersion@@ABVRMessage2@@@Z @ 147 NONAME ; class CSession2 * CApaAppServer::NewSessionL(class TVersion const &, class RMessage2 const &) const
-	?NotifyServerExit@CApaAppServer@@QAEXH@Z @ 148 NONAME ; void CApaAppServer::NotifyServerExit(int)
-	?NotifyServerExit@RApaAppServiceBase@@QBEXAAVTRequestStatus@@@Z @ 149 NONAME ; void RApaAppServiceBase::NotifyServerExit(class TRequestStatus &) const
-	?SecurityCheckL@CApaAppServiceBase@@UAE?AW4TCustomResult@CPolicyServer@@ABVRMessage2@@AAHAAVTSecurityInfo@@@Z @ 150 NONAME ; enum CPolicyServer::TCustomResult CApaAppServiceBase::SecurityCheckL(class RMessage2 const &, int &, class TSecurityInfo &)
-	?ServerName@RApaAppServiceBase@@QBE?AVTPtrC16@@XZ @ 151 NONAME ; class TPtrC16 RApaAppServiceBase::ServerName(void) const
-	?ServerRequired@CApaCommandLine@@QBEIXZ @ 152 NONAME ; unsigned int CApaCommandLine::ServerRequired(void) const
-	?ServiceError@CApaAppServiceBase@@MAEXABVRMessage2@@H@Z @ 153 NONAME ; void CApaAppServiceBase::ServiceError(class RMessage2 const &, int)
-	?ServiceL@CApaAppServiceBase@@MAEXABVRMessage2@@@Z @ 154 NONAME ; void CApaAppServiceBase::ServiceL(class RMessage2 const &)
-	?SetServerNotRequiredL@CApaCommandLine@@QAEXXZ @ 155 NONAME ; void CApaCommandLine::SetServerNotRequiredL(void)
-	?SetServerRequiredL@CApaCommandLine@@QAEXI@Z @ 156 NONAME ; void CApaCommandLine::SetServerRequiredL(unsigned int)
-	?ExecutableName@CApaCommandLine@@QBE?AVTPtrC16@@XZ @ 157 NONAME ; class TPtrC16 CApaCommandLine::ExecutableName(void) const
-	?ConstructCmdLineFromMessageL@CApaCommandLine@@QAEXABVRMessage2@@@Z @ 158 NONAME ; void CApaCommandLine::ConstructCmdLineFromMessageL(class RMessage2 const &)
-	Apparc_Dummy1 @ 159 NONAME ABSENT
-	Apparc_Dummy2 @ 160 NONAME ABSENT
-	?GetIpcArgsLC@CApaCommandLine@@QBEXAAVTIpcArgs@@@Z @ 161 NONAME ; void CApaCommandLine::GetIpcArgsLC(class TIpcArgs &) const
-	Apparc_Dummy3 @ 162 NONAME ABSENT
-	?GetCommandLineFromProcessEnvironment@CApaCommandLine@@SAHAAPAV1@@Z @ 163 NONAME ; static int CApaCommandLine::GetCommandLineFromProcessEnvironment(class CApaCommandLine * &)
-	??0CApaProcess@@IAE@ABVRFs@@@Z @ 164 NONAME ; CApaProcess::CApaProcess(class RFs const &)
-	?SetExecutableNameL@CApaCommandLine@@QAEXABVTDesC16@@@Z @ 165 NONAME ; void CApaCommandLine::SetExecutableNameL(class TDesC16 const &)
-	?SetProcessEnvironmentL@CApaCommandLine@@QBEXAAVRProcess@@@Z @ 166 NONAME ; void CApaCommandLine::SetProcessEnvironmentL(class RProcess &) const
-	?NewL@CApaProcess@@SAPAV1@ABVRFs@@@Z @ 167 NONAME ; class CApaProcess * CApaProcess::NewL(class RFs const &)
-	?EnvironmentSlotForPublicUse@CApaCommandLine@@SAHH@Z @ 168 NONAME ; int CApaCommandLine::EnvironmentSlotForPublicUse(int)
-	?GetFileByHandleL@CApaCommandLine@@QBEXAAVRFile@@@Z @ 169 NONAME ; void CApaCommandLine::GetFileByHandleL(class RFile &) const
-	?SetFileByHandleL@CApaCommandLine@@QAEXABVRFile@@@Z @ 170 NONAME ; void CApaCommandLine::SetFileByHandleL(class RFile const &)
-	?DefaultScreen@CApaCommandLine@@QBEHXZ @ 171 NONAME ; int CApaCommandLine::DefaultScreen(void) const
-	?SetDefaultScreenL@CApaCommandLine@@QAEXH@Z @ 172 NONAME ; void CApaCommandLine::SetDefaultScreenL(int)
-	?ParentWindowGroupID@CApaCommandLine@@QBEHXZ @ 173 NONAME ; int CApaCommandLine::ParentWindowGroupID(void) const
-	?SetParentWindowGroupID@CApaCommandLine@@QAEXH@Z @ 174 NONAME ; void CApaCommandLine::SetParentWindowGroupID(int)
-	?DebugMemFail@CApaCommandLine@@QBEHXZ @ 175 NONAME ; int CApaCommandLine::DebugMemFail(void) const
-	?SetAppStartupInstrumentationEventIdBaseL@CApaCommandLine@@QAEXH@Z @ 176 NONAME ; void CApaCommandLine::SetAppStartupInstrumentationEventIdBaseL(int)
-	?SetDebugMemFailL@CApaCommandLine@@QAEXH@Z @ 177 NONAME ; void CApaCommandLine::SetDebugMemFailL(int)
-	?ReadRootStreamLC@CApaProcess@@SAPAVCStreamDictionary@@AAPAVCFileStore@@ABVRFile@@@Z @ 178 NONAME ; class CStreamDictionary * CApaProcess::ReadRootStreamLC(class CFileStore * &, class RFile const &)
-	?AppStartupInstrumentationEventIdBase@CApaCommandLine@@QBEHXZ @ 179 NONAME ; int CApaCommandLine::AppStartupInstrumentationEventIdBase(void) const
-	??0CApaAppFinder@@IAE@XZ @ 180 NONAME ; CApaAppFinder::CApaAppFinder(void)
-	??0CApaAppServiceInfoArray@@IAE@XZ @ 181 NONAME ; CApaAppServiceInfoArray::CApaAppServiceInfoArray(void)
-	??0CApaApplication@@IAE@XZ @ 182 NONAME ; CApaApplication::CApaApplication(void)
-	??0CApaDocument@@IAE@XZ @ 183 NONAME ; CApaDocument::CApaDocument(void)
-	??0CApaDoorBase@@IAE@XZ @ 184 NONAME ; CApaDoorBase::CApaDoorBase(void)
-	??0CApaModelHeader@@IAE@XZ @ 185 NONAME ; CApaModelHeader::CApaModelHeader(void)
-	??0CApaProcess@@IAE@XZ @ 186 NONAME ; CApaProcess::CApaProcess(void)
-	??0MApaAppStarter@@IAE@XZ @ 187 NONAME ; MApaAppStarter::MApaAppStarter(void)
-	??0MApaEmbeddedDocObserver@@IAE@XZ @ 188 NONAME ; MApaEmbeddedDocObserver::MApaEmbeddedDocObserver(void)
-	??0MApaModelHeaderFactory@@IAE@XZ @ 189 NONAME ; MApaModelHeaderFactory::MApaModelHeaderFactory(void)
-	??0MApaServerAppExitObserver@@IAE@XZ @ 190 NONAME ; MApaServerAppExitObserver::MApaServerAppExitObserver(void)
-	??0TApaApplicationFactory@@QAE@XZ @ 191 NONAME ; TApaApplicationFactory::TApaApplicationFactory(void)
-	?CApaAppFinder_Reserved1@CApaAppFinder@@EAEXXZ @ 192 NONAME ; void CApaAppFinder::CApaAppFinder_Reserved1(void)
-	?CApaAppFinder_Reserved2@CApaAppFinder@@EAEXXZ @ 193 NONAME ; void CApaAppFinder::CApaAppFinder_Reserved2(void)
-	?CApaAppServer_Reserved1@CApaAppServer@@EAEXXZ @ 194 NONAME ; void CApaAppServer::CApaAppServer_Reserved1(void)
-	?CApaAppServer_Reserved2@CApaAppServer@@EAEXXZ @ 195 NONAME ; void CApaAppServer::CApaAppServer_Reserved2(void)
-	?CApaAppServiceBase_Reserved1@CApaAppServiceBase@@EAEXXZ @ 196 NONAME ; void CApaAppServiceBase::CApaAppServiceBase_Reserved1(void)
-	?CApaAppServiceBase_Reserved2@CApaAppServiceBase@@EAEXXZ @ 197 NONAME ; void CApaAppServiceBase::CApaAppServiceBase_Reserved2(void)
-	?CApaAppServiceInfoArray_Reserved1@CApaAppServiceInfoArray@@EAEXXZ @ 198 NONAME ; void CApaAppServiceInfoArray::CApaAppServiceInfoArray_Reserved1(void)
-	?CApaAppServiceInfoArray_Reserved2@CApaAppServiceInfoArray@@EAEXXZ @ 199 NONAME ; void CApaAppServiceInfoArray::CApaAppServiceInfoArray_Reserved2(void)
-	?CApaApplication_Reserved1@CApaApplication@@MAEXXZ @ 200 NONAME ; void CApaApplication::CApaApplication_Reserved1(void)
-	?CApaApplication_Reserved2@CApaApplication@@MAEXXZ @ 201 NONAME ; void CApaApplication::CApaApplication_Reserved2(void)
-	?CApaDoorBase_Reserved1@CApaDoorBase@@EAEXXZ @ 202 NONAME ; void CApaDoorBase::CApaDoorBase_Reserved1(void)
-	?CApaDoorBase_Reserved2@CApaDoorBase@@EAEXXZ @ 203 NONAME ; void CApaDoorBase::CApaDoorBase_Reserved2(void)
-	?CApaProcess_Reserved1@CApaProcess@@MAEXXZ @ 204 NONAME ; void CApaProcess::CApaProcess_Reserved1(void)
-	?CApaProcess_Reserved2@CApaProcess@@MAEXXZ @ 205 NONAME ; void CApaProcess::CApaProcess_Reserved2(void)
-	?Capability@CApaDoorBase@@UBE?AVTPictureCapability@@XZ @ 206 NONAME ; class TPictureCapability CApaDoorBase::Capability(void) const
-	?CountResources@CApaAppServiceBase@@MAEHXZ @ 207 NONAME ; int CApaAppServiceBase::CountResources(void)
-	?Disconnect@CApaAppServiceBase@@MAEXABVRMessage2@@@Z @ 208 NONAME ; void CApaAppServiceBase::Disconnect(class RMessage2 const &)
-	?DoConnect@CApaAppServer@@MAEXABVRMessage2@@@Z @ 209 NONAME ; void CApaAppServer::DoConnect(class RMessage2 const &)
-	?GetCropInTwips@CApaDoorBase@@UBEXAAVTMargins@@@Z @ 210 NONAME ; void CApaDoorBase::GetCropInTwips(class TMargins &) const
-	?LineBreakPossible@CApaDoorBase@@UBEHIHH@Z @ 211 NONAME ; int CApaDoorBase::LineBreakPossible(unsigned int, int, int) const
-	?MApaAppStarter_Reserved1@MApaAppStarter@@EAEXXZ @ 212 NONAME ; void MApaAppStarter::MApaAppStarter_Reserved1(void)
-	?MApaAppStarter_Reserved2@MApaAppStarter@@EAEXXZ @ 213 NONAME ; void MApaAppStarter::MApaAppStarter_Reserved2(void)
-	?MApaEmbeddedDocObserver_Reserved1@MApaEmbeddedDocObserver@@EAEXXZ @ 214 NONAME ; void MApaEmbeddedDocObserver::MApaEmbeddedDocObserver_Reserved1(void)
-	?MApaEmbeddedDocObserver_Reserved2@MApaEmbeddedDocObserver@@EAEXXZ @ 215 NONAME ; void MApaEmbeddedDocObserver::MApaEmbeddedDocObserver_Reserved2(void)
-	?MApaModelHeaderFactory_Reserved1@MApaModelHeaderFactory@@EAEXXZ @ 216 NONAME ; void MApaModelHeaderFactory::MApaModelHeaderFactory_Reserved1(void)
-	?MApaModelHeaderFactory_Reserved2@MApaModelHeaderFactory@@EAEXXZ @ 217 NONAME ; void MApaModelHeaderFactory::MApaModelHeaderFactory_Reserved2(void)
-	?MApaServerAppExitObserver_Reserved1@MApaServerAppExitObserver@@EAEXXZ @ 218 NONAME ; void MApaServerAppExitObserver::MApaServerAppExitObserver_Reserved1(void)
-	?MApaServerAppExitObserver_Reserved2@MApaServerAppExitObserver@@EAEXXZ @ 219 NONAME ; void MApaServerAppExitObserver::MApaServerAppExitObserver_Reserved2(void)
-	?NativePixelSize@CApaDoorBase@@UAEHAAVTSize@@@Z @ 220 NONAME ; int CApaDoorBase::NativePixelSize(class TSize &)
-	?RApaAppServiceBase_Reserved1@RApaAppServiceBase@@EAEXXZ @ 221 NONAME ; void RApaAppServiceBase::RApaAppServiceBase_Reserved1(void)
-	?RApaAppServiceBase_Reserved2@RApaAppServiceBase@@EAEXXZ @ 222 NONAME ; void RApaAppServiceBase::RApaAppServiceBase_Reserved2(void)
-	?Reserved_2@CApaModelHeader@@EAEXXZ @ 223 NONAME ; void CApaModelHeader::Reserved_2(void)
-	?ScaleFactorHeight@CApaDoorBase@@UBEHXZ @ 224 NONAME ; int CApaDoorBase::ScaleFactorHeight(void) const
-	?ScaleFactorWidth@CApaDoorBase@@UBEHXZ @ 225 NONAME ; int CApaDoorBase::ScaleFactorWidth(void) const
-	?SetCropInTwips@CApaDoorBase@@UAEXABVTMargins@@@Z @ 226 NONAME ; void CApaDoorBase::SetCropInTwips(class TMargins const &)
-	?SetScaleFactor@CApaDoorBase@@UAEXHH@Z @ 227 NONAME ; void CApaDoorBase::SetScaleFactor(int, int)
-	?StoreL@CApaDoorBase@@UBE?AVTStreamId@@AAVCStreamStore@@@Z @ 228 NONAME ; class TStreamId CApaDoorBase::StoreL(class CStreamStore &) const
-	?OpaqueData@CApaCommandLine@@QBE?AVTPtrC8@@XZ @ 229 NONAME ; class TPtrC8 CApaCommandLine::OpaqueData(void) const
-	?SetOpaqueDataL@CApaCommandLine@@QAEXABVTDesC8@@@Z @ 230 NONAME ; void CApaCommandLine::SetOpaqueDataL(class TDesC8 cosnt &)
-	?IsDefaultScreenSet@CApaCommandLine@@QBEHXZ @ 231 NONAME ; int CApaCommandLine::IsDefaultScreenSet(void) const
-	?ConstructL@CApaProcess@@IAEXVTProcessId@@@Z @ 232 NONAME ; void CApaProcess::ConstructL(class TProcessId)
-	?ParentProcessId@CApaCommandLine@@QBE?AVTProcessId@@XZ @ 233 NONAME ; class TProcessId CApaCommandLine::ParentProcessId(void) const
-	?SetParentProcessId@CApaCommandLine@@QAEXVTProcessId@@@Z @ 234 NONAME ; void CApaCommandLine::SetParentProcessId(class TProcessId)
-	?ConnectExistingAppL@RApaAppServiceBase@@QAEXABV1@ABVTSecurityPolicy@@@Z @ 235 NONAME ; void RApaAppServiceBase::ConnectExistingAppL(class RApaAppServiceBase const &, class TSecurityPolicy const &)
-	?ConnectExistingByNameL@RApaAppServiceBase@@QAEXABVTDesC16@@ABVTSecurityPolicy@@@Z @ 236 NONAME ; void RApaAppServiceBase::ConnectExistingByNameL(class TDesC16 const &, class TSecurityPolicy const &)
-	?TransferExistingSessionL@RApaAppServiceBase@@QAEXAAV1@@Z @ 237 NONAME ; void RApaAppServiceBase::TransferExistingSessionL(class RApaAppServiceBase &)
-
--- a/localisation/apparchitecture/bwins/APSERVU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/bwins/APSERVU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -1,26 +1,26 @@
 EXPORTS
-	??1CApaAppListServer@@UAE@XZ @ 1 NONAME ; public: virtual __thiscall CApaAppListServer::~CApaAppListServer(void)
-	?NewL@CApaAppListServer@@SAPAV1@PAVCApaAppList@@PAVCApaFileRecognizer@@@Z @ 2 NONAME ABSENT ; public: static class CApaAppListServer * __cdecl CApaAppListServer::NewL(class CApaAppList *,class CApaFileRecognizer *)
+	??1CApaAppArcServer@@UAE@XZ @ 1 NONAME ; public: virtual __thiscall CApaAppArcServer::~CApaAppArcServer(void)
+	?NewL@CApaAppArcServer@@SAPAV1@PAVCApaAppList@@PAVCApaFileRecognizer@@@Z @ 2 NONAME ABSENT ; public: static class CApaAppArcServer * __cdecl CApaAppArcServer::NewL(class CApaAppList *,class CApaFileRecognizer *)
 	??1CApaFsMonitor@@UAE@XZ @ 3 NONAME ; public: virtual __thiscall CApaFsMonitor::~CApaFsMonitor(void)
 	?NameApaServServerThread@@YA?AVTPtrC16@@XZ @ 4 NONAME ; class TPtrC16  __cdecl NameApaServServerThread(void)
 	?NameApaServStartSemaphore@@YA?AVTPtrC16@@XZ @ 5 NONAME ; class TPtrC16  __cdecl NameApaServStartSemaphore(void)
-	?NewL@CApaAppListServer@@SAPAV1@PAVMApaAppStarter@@@Z @ 6 NONAME ; public: static class CApaAppListServer * __cdecl CApaAppListServer::NewL(class MApaAppStarter *)
+	?NewL@CApaAppArcServer@@SAPAV1@XZ @ 6  NONAME ; class CApaAppArcServer * CApaAppArcServer::NewL(void)
 	?NewL@CApaFsMonitor@@SAPAV1@AAVRFs@@ABVTDesC16@@VTCallBack@@@Z @ 7 NONAME ; public: static class CApaFsMonitor * __cdecl CApaFsMonitor::NewL(class RFs &,class TDesC16 const &,class TCallBack)
 	?NotifyType@CApaFsMonitor@@QBE?AW4TNotifyType@@XZ @ 8 NONAME ; public: enum TNotifyType  __thiscall CApaFsMonitor::NotifyType(void)const 
 	?SetBlocked@CApaFsMonitor@@QAEXH@Z @ 9 NONAME ; public: void __thiscall CApaFsMonitor::SetBlocked(int)
 	?Start@CApaFsMonitor@@QAEXW4TNotifyType@@@Z @ 10 NONAME ; public: void __thiscall CApaFsMonitor::Start(enum TNotifyType)
-	?Self@CApaAppListServer@@SAPAV1@XZ @ 11 NONAME ; class CApaAppListServer * CApaAppListServer::Self(void)
+	?Self@CApaAppArcServer@@SAPAV1@XZ @ 11 NONAME ; class CApaAppArcServer * CApaAppArcServer::Self(void)
 	?AddLocationL@CApaFsMonitor@@QAEXABVTDesC16@@@Z @ 12 NONAME ; void CApaFsMonitor::AddLocationL(class TDesC16 const &)
 	?Cancel@CApaFsMonitor@@QAEXXZ @ 13 NONAME ; void CApaFsMonitor::Cancel(void)
 	?ApaServThreadStart@@YAHPAX@Z @ 14 NONAME ; int ApaServThreadStart(void *)
 	??1CUpdatedAppsList@@UAE@XZ @ 15 NONAME ABSENT ; CUpdatedAppsList::~CUpdatedAppsList(void)
 	?CloseAndDeletePermanentStore@CUpdatedAppsList@@QAEXXZ @ 16 NONAME ABSENT ; void CUpdatedAppsList::CloseAndDeletePermanentStore(void)
 	?IsInList@CUpdatedAppsList@@QBEHABVTDesC16@@@Z @ 17 NONAME ABSENT ; int CUpdatedAppsList::IsInList(class TDesC16 const &) const
-	?RescanCallBack@CApaAppListServer@@QAE?AVTCallBack@@XZ @ 18 NONAME ; class TCallBack CApaAppListServer::RescanCallBack(void)
+	?RescanCallBack@CApaAppArcServer@@QAE?AVTCallBack@@XZ @ 18 NONAME ; class TCallBack CApaAppArcServer::RescanCallBack(void)
 	?KApaLoadDataRecognizersOnDemand@@3HB @ 19 NONAME DATA 4 ; int const KApaLoadDataRecognizersOnDemand
 	?KApaUnloadRecognizersTimeout@@3HB @ 20 NONAME DATA 4 ; int const KApaUnloadRecognizersTimeout
-	?HandleEndUninstallEventL@CApaAppListServer@@QAEXXZ @ 21 NONAME ; void CApaAppListServer::HandleEndUninstallEventL(void)
-	?HandleStartUninstallEvent@CApaAppListServer@@QAEXXZ @ 22 NONAME ; void CApaAppListServer::HandleStartUninstallEvent(void)
+	?HandleInstallationEndEventL@CApaAppArcServer@@QAEXXZ @ 21 NONAME ; void CApaAppArcServer::HandleEndUninstallEventL(void)
+	?HandleInstallationStartEvent@CApaAppArcServer@@QAEXXZ @ 22 NONAME ; void CApaAppArcServer::HandleStartUninstallEvent(void)
 	?KApaDrivesToMonitor@@3HB @ 23 NONAME ; int const KApaDrivesToMonitor
 	?KApaLoadMbmIconsOnDemand@@3HB @ 24 NONAME ; int const KApaLoadMbmIconsOnDemand
 
--- a/localisation/apparchitecture/bwins/TICONFORLEAKSu.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/bwins/TICONFORLEAKSu.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -7,7 +7,7 @@
 	??0TApaTask@@QAE@AAVRWsSession@@@Z @ 6 NONAME ; TApaTask::TApaTask(class RWsSession &)
 	??0TApaTaskList@@QAE@AAVRWsSession@@@Z @ 7 NONAME ; TApaTaskList::TApaTaskList(class RWsSession &)
 	??1CApaAppData@@UAE@XZ @ 8 NONAME ; CApaAppData::~CApaAppData(void)
-	??1CApaAppInfoFileWriter@@UAE@XZ @ 9 NONAME ; CApaAppInfoFileWriter::~CApaAppInfoFileWriter(void)
+	??1CApaAppInfoFileWriter@@UAE@XZ @ 9 NONAME ABSENT ; CApaAppInfoFileWriter::~CApaAppInfoFileWriter(void)
 	??1CApaAppList@@UAE@XZ @ 10 NONAME ; CApaAppList::~CApaAppList(void)
 	??1CApaAppListNotifier@@UAE@XZ @ 11 NONAME ; CApaAppListNotifier::~CApaAppListNotifier(void)
 	??1CApaDoor@@UAE@XZ @ 12 NONAME ; CApaDoor::~CApaDoor(void)
@@ -17,12 +17,12 @@
 	??1CApaSystemControlList@@UAE@XZ @ 16 NONAME ; CApaSystemControlList::~CApaSystemControlList(void)
 	??1CApaWindowGroupName@@UAE@XZ @ 17 NONAME ; CApaWindowGroupName::~CApaWindowGroupName(void)
 	??1CDataRecognitionResultArray@@UAE@XZ @ 18 NONAME ; CDataRecognitionResultArray::~CDataRecognitionResultArray(void)
-	?AddCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 19 NONAME ; void CApaAppInfoFileWriter::AddCaptionL(enum TLanguage, class TDesC16 const &)
-	?AddDataTypeL@CApaAppInfoFileWriter@@QAEXABVTDataTypeWithPriority@@@Z @ 20 NONAME ; void CApaAppInfoFileWriter::AddDataTypeL(class TDataTypeWithPriority const &)
+	?AddCaptionL@CApaAppInfoFileWriter@@QAEXW4TLanguage@@ABVTDesC16@@@Z @ 19 NONAME ABSENT ; void CApaAppInfoFileWriter::AddCaptionL(enum TLanguage, class TDesC16 const &)
+	?AddDataTypeL@CApaAppInfoFileWriter@@QAEXABVTDataTypeWithPriority@@@Z @ 20 NONAME ABSENT ; void CApaAppInfoFileWriter::AddDataTypeL(class TDataTypeWithPriority const &)
 	?AddDataTypeL@CApaRegistrationResourceFileWriter@@QAEXHABVTDesC8@@@Z @ 21 NONAME ; void CApaRegistrationResourceFileWriter::AddDataTypeL(int, class TDesC8 const &)
 	?AddFileOwnershipInfoL@CApaRegistrationResourceFileWriter@@QAEXABVTDesC16@@@Z @ 22 NONAME ; void CApaRegistrationResourceFileWriter::AddFileOwnershipInfoL(class TDesC16 const &)
-	?AddForcedRegistrationL@CApaAppList@@QAEXPAVHBufC16@@@Z @ 23 NONAME ; void CApaAppList::AddForcedRegistrationL(class HBufC16 *)
-	?AddIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@@Z @ 24 NONAME ; void CApaAppInfoFileWriter::AddIconL(class CApaMaskedBitmap &)
+	?AddForcedRegistrationL@CApaAppList@@QAEXPAVHBufC16@@@Z @ 23 NONAME ABSENT ; void CApaAppList::AddForcedRegistrationL(class HBufC16 *)
+	?AddIconL@CApaAppInfoFileWriter@@QAEXAAVCApaMaskedBitmap@@@Z @ 24 NONAME ABSENT ; void CApaAppInfoFileWriter::AddIconL(class CApaMaskedBitmap &)
 	?AppCount@RApaLsSession@@QBEHAAH@Z @ 25 NONAME ; int RApaLsSession::AppCount(int &) const
 	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 26 NONAME ; class CApaAppData * CApaAppList::AppDataByFileName(class TDesC16 const &) const
 	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 27 NONAME ; class CApaAppData * CApaAppList::AppDataByUid(class TUid) const
@@ -47,11 +47,11 @@
 	?Capability@CApaAppData@@QBEXAAVTDes8@@@Z @ 46 NONAME ; void CApaAppData::Capability(class TDes8 &) const
 	?Caption@CApaSystemControl@@QBE?AVTPtrC16@@XZ @ 47 NONAME ; class TPtrC16 CApaSystemControl::Caption(void) const
 	?Caption@CApaWindowGroupName@@QBE?AVTPtrC16@@XZ @ 48 NONAME ; class TPtrC16 CApaWindowGroupName::Caption(void) const
-	?CheckInterimFormatFileNotCorruptL@ForJavaMIDletInstaller@@SAXAAVRFile@@@Z @ 49 NONAME ; void ForJavaMIDletInstaller::CheckInterimFormatFileNotCorruptL(class RFile &)
+	?CheckInterimFormatFileNotCorruptL@ForJavaMIDletInstaller@@SAXAAVRFile@@@Z @ 49 NONAME ABSENT ; void ForJavaMIDletInstaller::CheckInterimFormatFileNotCorruptL(class RFile &)
 	?ClearFsSession@RApaLsSession@@SAXXZ @ 50 NONAME ; void RApaLsSession::ClearFsSession(void)
 	?Close@RApaLsSession@@QAEXXZ @ 51 NONAME ; void RApaLsSession::Close(void)
 	?CommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 52 NONAME ; void RApaLsSession::CommitNonNativeApplicationsUpdatesL(void)
-	?CompareStrings@CApaAppList@@SAHABVHBufC16@@0@Z @ 53 NONAME ; int CApaAppList::CompareStrings(class HBufC16 const &, class HBufC16 const &)
+	?CompareStrings@CApaAppList@@SAHABVHBufC16@@0@Z @ 53 NONAME ABSENT ; int CApaAppList::CompareStrings(class HBufC16 const &, class HBufC16 const &)
 	?Connect@RApaLsSession@@QAEHXZ @ 54 NONAME ; int RApaLsSession::Connect(void)
 	?ConstructFromWgIdL@CApaWindowGroupName@@QAEXH@Z @ 55 NONAME ; void CApaWindowGroupName::ConstructFromWgIdL(int)
 	?Control@CApaSystemControlList@@QBEPAVCApaSystemControl@@H@Z @ 56 NONAME ; class CApaSystemControl * CApaSystemControlList::Control(int) const
@@ -118,7 +118,7 @@
 	?GetFilteredApps@RApaLsSession@@QBEHII@Z @ 117 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int) const
 	?GetFilteredApps@RApaLsSession@@QBEHIIH@Z @ 118 NONAME ; int RApaLsSession::GetFilteredApps(unsigned int, unsigned int, int) const
 	?GetIconInfo@CApaAppData@@QBEXAAH0@Z @ 119 NONAME ; void CApaAppData::GetIconInfo(int &, int &) const
-	?GetJavaMIDletInfoL@ForJavaMIDletInstaller@@SAXAAVRFs@@ABVTDesC16@@AAK2@Z @ 120 NONAME ; void ForJavaMIDletInstaller::GetJavaMIDletInfoL(class RFs &, class TDesC16 const &, unsigned long &, unsigned long &)
+	?GetJavaMIDletInfoL@ForJavaMIDletInstaller@@SAXAAVRFs@@ABVTDesC16@@AAK2@Z @ 120 NONAME ABSENT ; void ForJavaMIDletInstaller::GetJavaMIDletInfoL(class RFs &, class TDesC16 const &, unsigned long &, unsigned long &)
 	?GetMaxDataBufSize@RApaLsSession@@QBEHAAH@Z @ 121 NONAME ; int RApaLsSession::GetMaxDataBufSize(int &) const
 	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@@Z @ 122 NONAME ; int RApaLsSession::GetNextApp(class TApaAppInfo &) const
 	?GetNextApp@RApaLsSession@@QBEHAAVTApaAppInfo@@H@Z @ 123 NONAME ; int RApaLsSession::GetNextApp(class TApaAppInfo &, int) const
@@ -128,7 +128,7 @@
 	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@@Z @ 127 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid) const
 	?GetServiceImplementationsLC@RApaLsSession@@QBEPAVCApaAppServiceInfoArray@@VTUid@@ABVTDataType@@@Z @ 128 NONAME ; class CApaAppServiceInfoArray * RApaLsSession::GetServiceImplementationsLC(class TUid, class TDataType const &) const
 	?GetSupportedDataTypesL@RApaLsSession@@QBEHAAV?$CArrayFixFlat@VTDataType@@@@@Z @ 129 NONAME ; int RApaLsSession::GetSupportedDataTypesL(class CArrayFixFlat<class TDataType> &) const
-	?HandleAsRegistrationFile@ApaUtils@@SAHABVTUidType@@@Z @ 130 NONAME ; int ApaUtils::HandleAsRegistrationFile(class TUidType const &)
+	?HandleAsRegistrationFile@ApaUtils@@SAHABVTUidType@@@Z @ 130 NONAME ABSENT ; int ApaUtils::HandleAsRegistrationFile(class TUidType const &)
 	?Hidden@CApaWindowGroupName@@QBEHXZ @ 131 NONAME ; int CApaWindowGroupName::Hidden(void) const
 	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@H@Z @ 132 NONAME ; class CApaMaskedBitmap * CApaAppData::Icon(int) const
 	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@VTSize@@@Z @ 133 NONAME ; class CApaMaskedBitmap * CApaAppData::Icon(class TSize) const
@@ -161,9 +161,9 @@
 	?MatchesSecurityPolicy@RApaLsSession@@QBEHAAHVTUid@@ABVTSecurityPolicy@@@Z @ 160 NONAME ; int RApaLsSession::MatchesSecurityPolicy(int &, class TUid, class TSecurityPolicy const &) const
 	?MinApplicationStackSize@@YAIXZ @ 161 NONAME ; unsigned int MinApplicationStackSize(void)
 	?New@CApaWindowGroupName@@SAPAV1@ABVRWsSession@@PAVHBufC16@@@Z @ 162 NONAME ; class CApaWindowGroupName * CApaWindowGroupName::New(class RWsSession const &, class HBufC16 *)
-	?NewInterimFormatFileWriterLC@ForJavaMIDletInstaller@@SAPAVCApaAppInfoFileWriter@@AAVRFs@@ABVTDesC16@@VTUid@@KH@Z @ 163 NONAME ; class CApaAppInfoFileWriter * ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(class RFs &, class TDesC16 const &, class TUid, unsigned long, int)
+	?NewInterimFormatFileWriterLC@ForJavaMIDletInstaller@@SAPAVCApaAppInfoFileWriter@@AAVRFs@@ABVTDesC16@@VTUid@@KH@Z @ 163 NONAME ABSENT ; class CApaAppInfoFileWriter * ForJavaMIDletInstaller::NewInterimFormatFileWriterLC(class RFs &, class TDesC16 const &, class TUid, unsigned long, int)
 	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 164 NONAME ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
-	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppRegFinder@@HH@Z @ 165 NONAME ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppRegFinder *, int, int)
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@PAVCApaAppRegFinder@@HH@Z @ 165 NONAME ABSENT ; class CApaAppList * CApaAppList::NewL(class RFs &, class CApaAppRegFinder *, int, int)
 	?NewL@CApaAppListNotifier@@SAPAV1@PAVMApaAppListServObserver@@W4TPriority@CActive@@@Z @ 166 NONAME ; class CApaAppListNotifier * CApaAppListNotifier::NewL(class MApaAppListServObserver *, enum CActive::TPriority)
 	?NewL@CApaDoor@@SAPAV1@AAVRFs@@AAVCApaDocument@@ABVTSize@@@Z @ 167 NONAME ; class CApaDoor * CApaDoor::NewL(class RFs &, class CApaDocument &, class TSize const &)
 	?NewL@CApaDoor@@SAPAV1@AAVRFs@@ABVCStreamStore@@VTStreamId@@AAVCApaProcess@@@Z @ 168 NONAME ; class CApaDoor * CApaDoor::NewL(class RFs &, class CStreamStore const &, class TStreamId, class CApaProcess &)
@@ -234,7 +234,7 @@
 	?SetAppShortCaption@RApaLsSession@@QAEHABVTDesC16@@W4TLanguage@@VTUid@@@Z @ 233 NONAME ; int RApaLsSession::SetAppShortCaption(class TDesC16 const &, enum TLanguage, class TUid)
 	?SetAppUid@CApaWindowGroupName@@QAEXVTUid@@@Z @ 234 NONAME ; void CApaWindowGroupName::SetAppUid(class TUid)
 	?SetBusy@CApaWindowGroupName@@QAEXH@Z @ 235 NONAME ; void CApaWindowGroupName::SetBusy(int)
-	?SetCapability@CApaAppInfoFileWriter@@QAEHABVTDesC8@@@Z @ 236 NONAME ; int CApaAppInfoFileWriter::SetCapability(class TDesC8 const &)
+	?SetCapability@CApaAppInfoFileWriter@@QAEHABVTDesC8@@@Z @ 236 NONAME ABSENT ; int CApaAppInfoFileWriter::SetCapability(class TDesC8 const &)
 	?SetCaptionL@CApaWindowGroupName@@QAEXABVTDesC16@@@Z @ 237 NONAME ; void CApaWindowGroupName::SetCaptionL(class TDesC16 const &)
 	?SetDefaultScreenNumberL@CApaRegistrationResourceFileWriter@@QAEXH@Z @ 238 NONAME ; void CApaRegistrationResourceFileWriter::SetDefaultScreenNumberL(int)
 	?SetDocNameIsAFile@CApaWindowGroupName@@QAEXH@Z @ 239 NONAME ; void CApaWindowGroupName::SetDocNameIsAFile(int)
@@ -273,10 +273,10 @@
 	?StartDocument@RApaLsSession@@QAEHABVTDesC16@@VTUid@@AAVTThreadId@@W4TLaunchType@1@@Z @ 272 NONAME ; int RApaLsSession::StartDocument(class TDesC16 const &, class TUid, class TThreadId &, enum RApaLsSession::TLaunchType)
 	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 273 NONAME ; void CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
 	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 274 NONAME ; void CApaAppList::StartIdleUpdateL(void)
-	?StartupApaServer@@YAHAAVMApaAppStarter@@@Z @ 275 NONAME ; int StartupApaServer(class MApaAppStarter &)
+	?StartupApaServer@@YAHAAVMApaAppStarter@@@Z @ 275 NONAME ABSENT ; int StartupApaServer(class MApaAppStarter &)
 	?StartupApaServerProcess@@YAHXZ @ 276 NONAME ; int StartupApaServerProcess(void)
-	?StopScan@CApaAppList@@QAEXH@Z @ 277 NONAME ; void CApaAppList::StopScan(TBool)
-	?StoreL@CApaAppInfoFileWriter@@QAEXXZ @ 278 NONAME ; void CApaAppInfoFileWriter::StoreL(void)
+	?StopScan@CApaAppList@@QAEXH@Z @ 277 NONAME ; void CApaAppList::StopScan(int)
+	?StoreL@CApaAppInfoFileWriter@@QAEXXZ @ 278 NONAME ABSENT ; void CApaAppInfoFileWriter::StoreL(void)
 	?SwitchCreateFile@TApaTask@@QAEHABVTDesC16@@@Z @ 279 NONAME ; int TApaTask::SwitchCreateFile(class TDesC16 const &)
 	?SwitchOpenFile@TApaTask@@QAEHABVTDesC16@@@Z @ 280 NONAME ; int TApaTask::SwitchOpenFile(class TDesC16 const &)
 	?TestIconLoaderAndIconArrayL@TIconLoaderAndIconArrayForLeaks@@SAXXZ @ 281 NONAME ; void TIconLoaderAndIconArrayForLeaks::TestIconLoaderAndIconArrayL(void)
@@ -296,5 +296,40 @@
 	?SetIconsL@CApaAppData@@QAEXABVTDesC16@@H@Z @ 295 NONAME ; void CApaAppData::SetIconsL(class TDesC16 const &, int)
 	?TestIconCaptionOverridesL@TIconLoaderAndIconArrayForLeaks@@SAXXZ @ 296 NONAME ; void TIconLoaderAndIconArrayForLeaks::TestIconCaptionOverridesL(void)
 	?ForceCommitNonNativeApplicationsUpdatesL@RApaLsSession@@QAEXXZ @ 297 NONAME ; void RApaLsSession::ForceCommitNonNativeApplicationsUpdatesL(void)
-	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 298 NONAME ; int CApaAppList::AppListUpdatePending(void)
-	?UninstalledAppArray@CApaAppList@@QAEPAV?$CArrayFixFlat@VTUid@@@@XZ @ 299 NONAME ; class CArrayFixFlat<class TUid> * CApaAppList::UninstalledAppArray(void)
+	?DataTypes@TApaAppServiceInfo@@QAEAAV?$CArrayFixFlat@VTDataTypeWithPriority@@@@XZ @ 298 NONAME ; class CArrayFixFlat<class TDataTypeWithPriority> & TApaAppServiceInfo::DataTypes(void)
+	??0TApaAppIdentifier@@QAE@XZ @ 299 NONAME ; TApaAppIdentifier::TApaAppIdentifier(void)
+	?AddForcedRegistrationL@CApaAppList@@QAEXABVTDesC16@@@Z @ 300 NONAME ; void CApaAppList::AddForcedRegistrationL(class TDesC16 const &)
+	?ExternalizeL@TApaAppCapability@@QBEXAAVRWriteStream@@@Z @ 301 NONAME ; void TApaAppCapability::ExternalizeL(class RWriteStream &) const
+	??0TApaAppInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@11@Z @ 302 NONAME ; TApaAppInfo::TApaAppInfo(class TUid, class TBuf<256> const &, class TBuf<256> const &, class TBuf<256> const &)
+	?AddEmbeddability@TApaEmbeddabilityFilter@@QAEXW4TEmbeddability@TApaAppCapability@@@Z @ 303 NONAME ; void TApaEmbeddabilityFilter::AddEmbeddability(enum TApaAppCapability::TEmbeddability)
+	?InternalizeL@TApaAppServiceInfo@@QAEXAAVRReadStream@@@Z @ 304 NONAME ; void TApaAppServiceInfo::InternalizeL(class RReadStream &)
+	?InternalizeL@TApaAppViewInfo@@QAEXAAVRReadStream@@@Z @ 305 NONAME ; void TApaAppViewInfo::InternalizeL(class RReadStream &)
+	?MatchesEmbeddability@TApaEmbeddabilityFilter@@QBEHW4TEmbeddability@TApaAppCapability@@@Z @ 306 NONAME ; int TApaEmbeddabilityFilter::MatchesEmbeddability(enum TApaAppCapability::TEmbeddability) const
+	?ExternalizeL@TApaAppServiceInfo@@QBEXAAVRWriteStream@@@Z @ 307 NONAME ; void TApaAppServiceInfo::ExternalizeL(class RWriteStream &) const
+	??0CApaAppServiceInfoArray@@IAE@XZ @ 308 NONAME ; CApaAppServiceInfoArray::CApaAppServiceInfoArray(void)
+	??0TApaAppIdentifier@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@@Z @ 309 NONAME ; TApaAppIdentifier::TApaAppIdentifier(class TUid, class TBuf<256> const &)
+	?CopyCapability@TApaAppCapability@@SAXAAVTDes8@@ABVTDesC8@@@Z @ 310 NONAME ; void TApaAppCapability::CopyCapability(class TDes8 &, class TDesC8 const &)
+	??0TApaAppServiceInfo@@QAE@XZ @ 311 NONAME ; TApaAppServiceInfo::TApaAppServiceInfo(void)
+	?Release@TApaAppServiceInfo@@QAEXXZ @ 312 NONAME ; void TApaAppServiceInfo::Release(void)
+	?UpdateAppListByShortCaptionL@CApaAppList@@QAEXXZ @ 313 NONAME ; void CApaAppList::UpdateAppListByShortCaptionL(void)
+	?ExternalizeL@TApaAppIdentifier@@QBEXAAVRWriteStream@@@Z @ 314 NONAME ; void TApaAppIdentifier::ExternalizeL(class RWriteStream &) const
+	?ExternalizeL@TApaAppViewInfo@@QBEXAAVRWriteStream@@@Z @ 315 NONAME ; void TApaAppViewInfo::ExternalizeL(class RWriteStream &) const
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@HH@Z @ 316 NONAME ; class CApaAppList * CApaAppList::NewL(class RFs &, int, int)
+	?CApaAppServiceInfoArray_Reserved1@CApaAppServiceInfoArray@@EAEXXZ @ 317 NONAME ; void CApaAppServiceInfoArray::CApaAppServiceInfoArray_Reserved1(void)
+	?ExternalizeL@TApaAppInfo@@QBEXAAVRWriteStream@@@Z @ 318 NONAME ; void TApaAppInfo::ExternalizeL(class RWriteStream &) const
+	?InternalizeL@TApaAppCapability@@QAEXAAVRReadStream@@@Z @ 319 NONAME ; void TApaAppCapability::InternalizeL(class RReadStream &)
+	??0TApaAppEntry@@QAE@XZ @ 320 NONAME ; TApaAppEntry::TApaAppEntry(void)
+	?AddCustomAppInfoInListL@CApaAppList@@QAEXVTUid@@W4TLanguage@@ABVTDesC16@@@Z @ 321 NONAME ; void CApaAppList::AddCustomAppInfoInListL(class TUid, enum TLanguage, class TDesC16 const &)
+	?CApaAppServiceInfoArray_Reserved2@CApaAppServiceInfoArray@@EAEXXZ @ 322 NONAME ; void CApaAppServiceInfoArray::CApaAppServiceInfoArray_Reserved2(void)
+	?UpdateAppListByIconCaptionOverridesL@CApaAppList@@QAEXXZ @ 323 NONAME ; void CApaAppList::UpdateAppListByIconCaptionOverridesL(void)
+	??0TApaAppInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@1@Z @ 324 NONAME ; TApaAppInfo::TApaAppInfo(class TUid, class TBuf<256> const &, class TBuf<256> const &)
+	?InternalizeL@TApaAppInfo@@QAEXAAVRReadStream@@@Z @ 325 NONAME ; void TApaAppInfo::InternalizeL(class RReadStream &)
+	??0TApaEmbeddabilityFilter@@QAE@XZ @ 326 NONAME ; TApaEmbeddabilityFilter::TApaEmbeddabilityFilter(void)
+	?InternalizeL@TApaAppIdentifier@@QAEXAAVRReadStream@@@Z @ 327 NONAME ; void TApaAppIdentifier::InternalizeL(class RReadStream &)
+	??0TApaAppViewInfo@@QAE@XZ @ 328 NONAME ; TApaAppViewInfo::TApaAppViewInfo(void)
+	??0TApaAppInfo@@QAE@XZ @ 329 NONAME ; TApaAppInfo::TApaAppInfo(void)
+	??0TApaAppViewInfo@@QAE@VTUid@@ABV?$TBuf@$0BAA@@@H@Z @ 330 NONAME ; TApaAppViewInfo::TApaAppViewInfo(class TUid, class TBuf<256> const &, int)
+	??0TApaAppServiceInfo@@QAE@VTUid@@PAV?$CArrayFixFlat@VTDataTypeWithPriority@@@@PAVHBufC8@@@Z @ 331 NONAME ; TApaAppServiceInfo::TApaAppServiceInfo(class TUid, class CArrayFixFlat<class TDataTypeWithPriority> *, class HBufC8 *)
+	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 332 NONAME ; int CApaAppList::AppListUpdatePending(void)
+	?RecognizeData@RApaLsSession@@QBEHABVTDesC8@@AAVTDataRecognitionResult@@@Z @333 NONAME ; TInt RecognizeData(class TDesC8 const &, class TDataRecognitionResult & ) const
+	?UninstalledAppArray@CApaAppList@@QAEPAV?$CArrayFixFlat@VTUid@@@@XZ @ 334 NONAME ; class CArrayFixFlat<class TUid> * CApaAppList::UninstalledAppArray(void)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/bwins/aplistu.def	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,80 @@
+EXPORTS
+	??0TApaAppEntry@@QAE@XZ @ 1 NONAME ; TApaAppEntry::TApaAppEntry(void)
+	??1CApaAppData@@UAE@XZ @ 2 NONAME ; CApaAppData::~CApaAppData(void)
+	??1CApaAppList@@UAE@XZ @ 3 NONAME ; CApaAppList::~CApaAppList(void)
+	??1CAppSidChecker@@UAE@XZ @ 4 NONAME ; CAppSidChecker::~CAppSidChecker(void)
+	?AddForcedRegistrationL@CApaAppList@@QAEXABVTDesC16@@@Z @ 5 NONAME ; void CApaAppList::AddForcedRegistrationL(class TDesC16 const &)
+	?AppDataByFileName@CApaAppList@@QBEPAVCApaAppData@@ABVTDesC16@@@Z @ 6 NONAME ; class CApaAppData * CApaAppList::AppDataByFileName(class TDesC16 const &) const
+	?AppDataByUid@CApaAppList@@QBEPAVCApaAppData@@VTUid@@@Z @ 7 NONAME ; class CApaAppData * CApaAppList::AppDataByUid(class TUid) const
+	?AppEntry@CApaAppData@@QBE?AVTApaAppEntry@@XZ @ 8 NONAME ; class TApaAppEntry CApaAppData::AppEntry(void) const
+	?AppScanInProgress@CApaAppList@@QBEHXZ @ 9 NONAME ; int CApaAppList::AppScanInProgress(void) const
+	?ApplicationLanguage@CApaAppData@@QBE?AW4TLanguage@@XZ @ 10 NONAME ; enum TLanguage CApaAppData::ApplicationLanguage(void) const
+	?CanUseScreenMode@CApaAppData@@QAEHH@Z @ 11 NONAME ; int CApaAppData::CanUseScreenMode(int)
+	?Capability@CApaAppData@@QBEXAAVTDes8@@@Z @ 12 NONAME ; void CApaAppData::Capability(class TDes8 &) const
+	?Count@CApaAppList@@QBEHXZ @ 13 NONAME ; int CApaAppList::Count(void) const
+	?DataType@CApaAppData@@QBEJABVTDataType@@@Z @ 14 NONAME ; long CApaAppData::DataType(class TDataType const &) const
+	?DefaultScreenNumber@CApaAppData@@QBEIXZ @ 15 NONAME ; unsigned int CApaAppData::DefaultScreenNumber(void) const
+	?DriveList@CApaAppRegFinder@@QBE?AV?$TArray@$$CBVTDriveUnitInfo@@@@XZ @ 16 NONAME ; class TArray<class TDriveUnitInfo const > CApaAppRegFinder::DriveList(void) const
+	?FindAllAppsL@CApaAppRegFinder@@QAEXW4TScanScope@1@@Z @ 17 NONAME ; void CApaAppRegFinder::FindAllAppsL(enum CApaAppRegFinder::TScanScope)
+	?FindAndAddSpecificAppL@CApaAppList@@QAEPAVCApaAppData@@PAVCApaAppRegFinder@@VTUid@@@Z @ 18 NONAME ; class CApaAppData * CApaAppList::FindAndAddSpecificAppL(class CApaAppRegFinder *, class TUid)
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@H@Z @ 19 NONAME ; class CApaAppData * CApaAppList::FirstApp(int) const
+	?FirstApp@CApaAppList@@QBEPAVCApaAppData@@XZ @ 20 NONAME ; class CApaAppData * CApaAppList::FirstApp(void) const
+	?GetIconInfo@CApaAppData@@QBEXAAH0@Z @ 21 NONAME ; void CApaAppData::GetIconInfo(int &, int &) const
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@H@Z @ 22 NONAME ; class CApaMaskedBitmap * CApaAppData::Icon(int) const
+	?Icon@CApaAppData@@QBEPAVCApaMaskedBitmap@@VTSize@@@Z @ 23 NONAME ; class CApaMaskedBitmap * CApaAppData::Icon(class TSize) const
+	?Icon@CApaAppViewData@@QBEPAVCApaMaskedBitmap@@ABVTSize@@@Z @ 24 NONAME ; class CApaMaskedBitmap * CApaAppViewData::Icon(class TSize const &) const
+	?IconFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 25 NONAME ; class TPtrC16 CApaAppData::IconFileName(void) const
+	?IconFileName@CApaAppViewData@@QBE?AVTPtrC16@@XZ @ 26 NONAME ; class TPtrC16 CApaAppViewData::IconFileName(void) const
+	?IconSizesL@CApaAppData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 27 NONAME ; class CArrayFixFlat<class TSize> * CApaAppData::IconSizesL(void) const
+	?IconSizesL@CApaAppViewData@@QBEPAV?$CArrayFixFlat@VTSize@@@@XZ @ 28 NONAME ; class CArrayFixFlat<class TSize> * CApaAppViewData::IconSizesL(void) const
+	?ImplementsService@CApaAppData@@QBEHVTUid@@@Z @ 29 NONAME ; int CApaAppData::ImplementsService(class TUid) const
+	?InitListL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 30 NONAME ; void CApaAppList::InitListL(class MApaAppListObserver *)
+	?IsFirstScanComplete@CApaAppList@@QBEHXZ @ 31 NONAME ; int CApaAppList::IsFirstScanComplete(void) const
+	?IsIdleUpdateComplete@CApaAppList@@QBEHXZ @ 32 NONAME ; int CApaAppList::IsIdleUpdateComplete(void) const
+	?IsLanguageChangePending@CApaAppList@@QBEHXZ @ 33 NONAME ; int CApaAppList::IsLanguageChangePending(void) const
+	?IsPending@CApaAppData@@QBEHXZ @ 34 NONAME ; int CApaAppData::IsPending(void) const
+	?LocalisableResourceFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 35 NONAME ; class TPtrC16 CApaAppData::LocalisableResourceFileName(void) const
+	?NewL@CApaAppData@@SAPAV1@ABVTApaAppEntry@@AAVRFs@@@Z @ 36 NONAME ; class CApaAppData * CApaAppData::NewL(class TApaAppEntry const &, class RFs &)
+	?NewL@CApaAppList@@SAPAV1@AAVRFs@@HH@Z @ 37 NONAME ; class CApaAppList * CApaAppList::NewL(class RFs &, int, int)
+	?NewL@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 38 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewL(class RFs const &)
+	?NewLC@CApaAppRegFinder@@SAPAV1@ABVRFs@@@Z @ 39 NONAME ; class CApaAppRegFinder * CApaAppRegFinder::NewLC(class RFs const &)
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@@Z @ 40 NONAME ; class CApaAppData * CApaAppList::NextApp(class CApaAppData const *) const
+	?NextApp@CApaAppList@@QBEPAVCApaAppData@@PBV2@H@Z @ 41 NONAME ; class CApaAppData * CApaAppList::NextApp(class CApaAppData const *, int) const
+	?NextL@CApaAppRegFinder@@QAEHAAVTApaAppEntry@@ABVCDesC16Array@@@Z @ 42 NONAME ; int CApaAppRegFinder::NextL(class TApaAppEntry &, class CDesC16Array const &)
+	?NonMbmIconFile@CApaAppData@@QBEHXZ @ 43 NONAME ; int CApaAppData::NonMbmIconFile(void) const
+	?NonMbmIconFile@CApaAppViewData@@QBEHXZ @ 44 NONAME ; int CApaAppViewData::NonMbmIconFile(void) const
+	?NonNativeApplicationType@CApaAppData@@QBE?AVTUid@@XZ @ 45 NONAME ; class TUid CApaAppData::NonNativeApplicationType(void) const
+	?OpaqueData@CApaAppData@@QBE?AVTPtrC8@@XZ @ 46 NONAME ; class TPtrC8 CApaAppData::OpaqueData(void) const
+	?OwnedFiles@CApaAppData@@QBEPAVCDesC16Array@@XZ @ 47 NONAME ; class CDesC16Array * CApaAppData::OwnedFiles(void) const
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@@Z @ 48 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &) const
+	?PreferredDataHandlerL@CApaAppList@@QBE?AVTUid@@ABVTDataType@@PBV2@AAH@Z @ 49 NONAME ; class TUid CApaAppList::PreferredDataHandlerL(class TDataType const &, class TUid const *, int &) const
+	?PurgeL@CApaAppList@@QAEXXZ @ 50 NONAME ; void CApaAppList::PurgeL(void)
+	?RegistrationFileName@CApaAppData@@QBE?AVTPtrC16@@XZ @ 51 NONAME ; class TPtrC16 CApaAppData::RegistrationFileName(void) const
+	?RegistrationFileUsed@CApaAppData@@QBEHXZ @ 52 NONAME ; int CApaAppData::RegistrationFileUsed(void) const
+	?ResetForcedRegistrations@CApaAppList@@QAEXXZ @ 53 NONAME ; void CApaAppList::ResetForcedRegistrations(void)
+	?RestartScanL@CApaAppList@@QAEXXZ @ 54 NONAME ; void CApaAppList::RestartScanL(void)
+	?ScreenMode@CApaAppViewData@@QBEHXZ @ 55 NONAME ; int CApaAppViewData::ScreenMode(void) const
+	?Self@CApaAppList@@SAPAV1@XZ @ 56 NONAME ; class CApaAppList * CApaAppList::Self(void)
+	?ServiceArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 57 NONAME ; class CBufFlat * CApaAppList::ServiceArrayBufferL(class TUid) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 58 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid) const
+	?ServiceImplArrayBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@ABVTDataType@@@Z @ 59 NONAME ; class CBufFlat * CApaAppList::ServiceImplArrayBufferL(class TUid, class TDataType const &) const
+	?ServiceOpaqueDataBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@0@Z @ 60 NONAME ; class CBufFlat * CApaAppList::ServiceOpaqueDataBufferL(class TUid, class TUid) const
+	?ServiceUidBufferL@CApaAppList@@QBEPAVCBufFlat@@VTUid@@@Z @ 61 NONAME ; class CBufFlat * CApaAppList::ServiceUidBufferL(class TUid) const
+	?SetRescanCallBackL@CAppSidChecker@@UAEXABVTCallBack@@@Z @ 62 NONAME ; void CAppSidChecker::SetRescanCallBackL(class TCallBack const &)
+	?SetShortCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 63 NONAME ; void CApaAppData::SetShortCaptionL(class TDesC16 const &)
+	?StartIdleUpdateL@CApaAppList@@QAEXPAVMApaAppListObserver@@@Z @ 64 NONAME ; void CApaAppList::StartIdleUpdateL(class MApaAppListObserver *)
+	?StartIdleUpdateL@CApaAppList@@QAEXXZ @ 65 NONAME ; void CApaAppList::StartIdleUpdateL(void)
+	?StopScan@CApaAppList@@QAEXH@Z @ 66 NONAME ; void CApaAppList::StopScan(int)
+	?Uid@CApaAppViewData@@QBE?AVTUid@@XZ @ 67 NONAME ; class TUid CApaAppViewData::Uid(void) const
+	?Views@CApaAppData@@QBEPAV?$CArrayPtrFlat@VCApaAppViewData@@@@XZ @ 68 NONAME ; class CArrayPtrFlat<class CApaAppViewData> * CApaAppData::Views(void) const
+	?reserved1@CAppSidChecker@@EAEXXZ @ 69 NONAME ; void CAppSidChecker::reserved1(void)
+	?reserved2@CAppSidChecker@@EAEXXZ @ 70 NONAME ; void CAppSidChecker::reserved2(void)
+	?reserved3@CAppSidChecker@@EAEXXZ @ 71 NONAME ; void CAppSidChecker::reserved3(void)
+	?AddCustomAppInfoInListL@CApaAppList@@QAEXVTUid@@W4TLanguage@@ABVTDesC16@@@Z @ 72 NONAME ; void CApaAppList::AddCustomAppInfoInListL(class TUid, enum TLanguage, class TDesC16 const &)
+	?UpdateAppListByShortCaptionL@CApaAppList@@QAEXXZ @ 73 NONAME ; void CApaAppList::UpdateAppListByShortCaptionL(void)
+	?SetCaptionL@CApaAppData@@QAEXABVTDesC16@@@Z @ 74 NONAME ; void CApaAppData::SetCaptionL(class TDesC16 const &)
+	?UpdateAppListByIconCaptionOverridesL@CApaAppList@@QAEXXZ @ 75 NONAME ; void CApaAppList::UpdateAppListByIconCaptionOverridesL(void)
+	?SetIconsL@CApaAppData@@QAEXABVTDesC16@@H@Z @ 76 NONAME ; void CApaAppData::SetIconsL(class TDesC16 const &, int)
+	?AppListUpdatePending@CApaAppList@@QAEHXZ @ 77 NONAME ; int CApaAppList::AppListUpdatePending(void)
+	?UninstalledAppArray@CApaAppList@@QAEPAV?$CArrayFixFlat@VTUid@@@@XZ @ 78 NONAME ; class CArrayFixFlat<class TUid> * CApaAppList::UninstalledAppArray(void)
+
Binary file localisation/apparchitecture/conf/apparchitecture.confml has changed
Binary file localisation/apparchitecture/conf/apparchitecture_1028583d.crml has changed
Binary file localisation/apparchitecture/conf/apparchitecture_closedcontentextinfo.confml has changed
Binary file localisation/apparchitecture/conf/apparchitecture_closedcontentextinfo_10003a3f.crml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/eabi/APFILEU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,115 @@
+EXPORTS
+	_ZN19CApaAppLocatorProxy16GetAppEntryByUidER12TApaAppEntry4TUid @ 1 NONAME ABSENT
+	_ZN19CApaAppLocatorProxy21GetAppCapabilityByUidER5TDes84TUid @ 2 NONAME ABSENT
+	_ZN19CApaAppLocatorProxy4NewLER3RFs @ 3 NONAME ABSENT
+	_ZN19CApaAppLocatorProxyD0Ev @ 4 NONAME ABSENT
+	_ZN19CApaAppLocatorProxyD1Ev @ 5 NONAME ABSENT
+	_ZN19CApaAppLocatorProxyD2Ev @ 6 NONAME ABSENT
+	_ZN21CApaScanningAppFinder12FindAllAppsLEv @ 7 NONAME ABSENT
+	_ZN21CApaScanningAppFinder4NewLERK3RFs @ 8 NONAME ABSENT
+	_ZN21CApaScanningAppFinder5NewLCERK3RFs @ 9 NONAME ABSENT
+	_ZN21CApaScanningAppFinder5NextLER12TApaAppEntry @ 10 NONAME ABSENT
+	_ZN21CApaScanningAppFinder8FindAppLERK7TDesC164TUid @ 11 NONAME ABSENT
+	_ZN21CApaScanningAppFinderD0Ev @ 12 NONAME ABSENT
+	_ZN21CApaScanningAppFinderD1Ev @ 13 NONAME ABSENT
+	_ZN21CApaScanningAppFinderD2Ev @ 14 NONAME ABSENT
+	_ZN25CApaScanningControlFinder12FindAllAppsLEv @ 15 NONAME ABSENT
+	_ZN25CApaScanningControlFinder4NewLERK3RFs @ 16 NONAME ABSENT
+	_ZN25CApaScanningControlFinder5NewLCERK3RFs @ 17 NONAME ABSENT
+	_ZN25CApaScanningControlFinder5NextLER12TApaAppEntry @ 18 NONAME ABSENT
+	_ZN25CApaScanningControlFinder8FindAppLERK7TDesC164TUid @ 19 NONAME ABSENT
+	_ZN25CApaScanningControlFinderD0Ev @ 20 NONAME ABSENT
+	_ZN25CApaScanningControlFinderD1Ev @ 21 NONAME ABSENT
+	_ZN25CApaScanningControlFinderD2Ev @ 22 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer10ConstructLEv @ 23 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer14SetRecognizerLERKNS_11TRecognizerE @ 24 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer15RecognizerCountEv @ 25 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer19ScanForRecognizersLEv @ 26 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer23SetRecognizersFromListLERK13CArrayFixFlatINS_11TRecognizerEE @ 27 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer4NewLER3RFsP14MApaAppStarter @ 28 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerC1ER3RFsP14MApaAppStarter @ 29 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerC2ER3RFsP14MApaAppStarter @ 30 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerD0Ev @ 31 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerD1Ev @ 32 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizerD2Ev @ 33 NONAME ABSENT
+	_ZN6Apfile8TempPathEv @ 34 NONAME ABSENT
+	_ZNK21CApaScanningAppFinder22DefaultAppInfoFileNameEv @ 35 NONAME ABSENT
+	_ZNK21CApaScanningAppFinder8TempPathEv @ 36 NONAME ABSENT
+	_ZNK25CApaScanningControlFinder22DefaultAppInfoFileNameEv @ 37 NONAME ABSENT
+	_ZNK25CApaScanningControlFinder8TempPathEv @ 38 NONAME ABSENT
+	_ZNK26CApaScanningFileRecognizer13UpdateCounterEv @ 39 NONAME ABSENT
+	_ZNK26CApaScanningFileRecognizer16RecognizerListLCEv @ 40 NONAME ABSENT
+	_ZNK26CApaScanningFileRecognizerixEi @ 41 NONAME ABSENT
+	_ZTI26CApaScanningFileRecognizer @ 42 NONAME ABSENT ; #<TI>#
+	_ZTV26CApaScanningFileRecognizer @ 43 NONAME ABSENT ; #<VT>#
+	_ZN26CApaScanningFileRecognizer18SetEcomRecognizerLERKNS_11TRecognizerE @ 44 NONAME ABSENT
+	_ZN26CApaScanningFileRecognizer27SetEcomRecognizersFromListLERK13CArrayFixFlatINS_11TRecognizerEE @ 45 NONAME ABSENT
+	_ZTI17CApaRecognizerDll @ 46 NONAME ABSENT ; #<TI>#
+	_ZTI19CApaAppLocatorProxy @ 47 NONAME ABSENT ; #<TI>#
+	_ZTI21CApaScanningAppFinder @ 48 NONAME ABSENT ; #<TI>#
+	_ZTI25CApaScanningControlFinder @ 49 NONAME ABSENT ; #<TI>#
+	_ZTIN26CApaScanningFileRecognizer27CApaBackupOperationObserverE @ 50 NONAME ABSENT ; #<TI>#
+	_ZTV17CApaRecognizerDll @ 51 NONAME ABSENT ; #<VT>#
+	_ZTV19CApaAppLocatorProxy @ 52 NONAME ABSENT ; #<VT>#
+	_ZTV21CApaScanningAppFinder @ 53 NONAME ABSENT ; #<VT>#
+	_ZTV25CApaScanningControlFinder @ 54 NONAME ABSENT ; #<VT>#
+	_ZTVN26CApaScanningFileRecognizer27CApaBackupOperationObserverE @ 55 NONAME ABSENT ; #<VT>#
+	_ZN16CApaAppRegFinder12FindAllAppsLEv @ 56 NONAME ABSENT
+	_ZN16CApaAppRegFinder4NewLERK3RFs @ 57 NONAME ABSENT
+	_ZN16CApaAppRegFinder5NewLCERK3RFs @ 58 NONAME ABSENT
+	_ZN16CApaAppRegFinder5NextLER12TApaAppEntry @ 59 NONAME ABSENT
+	_ZN16CApaAppRegFinder5NextLER12TApaAppEntryRK13RPointerArrayI7HBufC16E @ 60 NONAME ABSENT
+	_ZNK16CApaAppRegFinder8TempPathEv @ 61 NONAME ABSENT
+	_ZTI16CApaAppRegFinder @ 62 NONAME ABSENT ; #<TI>#
+	_ZTV16CApaAppRegFinder @ 63 NONAME ABSENT ; #<VT>#
+	_ZN17CAppLaunchChecker10Reserved_1Ev @ 64 NONAME
+	_ZN17CAppLaunchChecker10Reserved_2Ev @ 65 NONAME
+	_ZN17CAppLaunchChecker10Reserved_3Ev @ 66 NONAME
+	_ZN17CAppLaunchCheckerD0Ev @ 67 NONAME
+	_ZN17CAppLaunchCheckerD1Ev @ 68 NONAME
+	_ZN17CAppLaunchCheckerD2Ev @ 69 NONAME
+	_ZN28CApaScanningRuleBasedPlugIns4NewLEv @ 70 NONAME
+	_ZNK28CApaScanningRuleBasedPlugInsixEi @ 71 NONAME
+	_ZTI16CApaRuleBasedDll @ 72 NONAME ; #<TI>#
+	_ZTI17CAppLaunchChecker @ 73 NONAME ; #<TI>#
+	_ZTV16CApaRuleBasedDll @ 74 NONAME ; #<VT>#
+	_ZTV17CAppLaunchChecker @ 75 NONAME ; #<VT>#
+	_ZN28CApaScanningRuleBasedPlugInsD0Ev @ 76 NONAME
+	_ZN28CApaScanningRuleBasedPlugInsD1Ev @ 77 NONAME
+	_ZN28CApaScanningRuleBasedPlugInsD2Ev @ 78 NONAME
+	_ZTI28CApaScanningRuleBasedPlugIns @ 79 NONAME ; #<TI>#
+	_ZTV28CApaScanningRuleBasedPlugIns @ 80 NONAME ; #<VT>#
+	_ZN28CApaScanningRuleBasedPlugIns24ScanForRuleBasedPlugInsLEv @ 81 NONAME
+	_ZNK28CApaScanningRuleBasedPlugIns19ImplementationCountEv @ 82 NONAME
+	_ZN14CAppSidChecker18SetRescanCallBackLERK9TCallBack @ 83 NONAME ABSENT
+	_ZN14CAppSidChecker9reserved1Ev @ 84 NONAME ABSENT
+	_ZN14CAppSidChecker9reserved2Ev @ 85 NONAME ABSENT
+	_ZN14CAppSidChecker9reserved3Ev @ 86 NONAME ABSENT
+	_ZN14CAppSidCheckerD0Ev @ 87 NONAME ABSENT
+	_ZN14CAppSidCheckerD1Ev @ 88 NONAME ABSENT
+	_ZN14CAppSidCheckerD2Ev @ 89 NONAME ABSENT
+	_ZTI14CAppSidChecker @ 90 NONAME ABSENT ; #<TI>#
+	_ZTV14CAppSidChecker @ 91 NONAME ABSENT ; #<VT>#
+	_ZNK16CApaAppRegFinder9DriveListEv @ 92 NONAME ABSENT
+	_ZN16CApaAppRegFinder26FindAllRemovableMediaAppsLEv @ 93 NONAME ABSENT
+	_ZN26CApaAppInstallationMonitor4NewLEP16CApaAppArcServer @ 94 NONAME
+	_ZN26CApaAppInstallationMonitor5StartEv @ 95 NONAME
+	_ZN26CApaAppInstallationMonitorD0Ev @ 96 NONAME
+	_ZN26CApaAppInstallationMonitorD1Ev @ 97 NONAME
+	_ZN26CApaAppInstallationMonitorD2Ev @ 98 NONAME
+	_ZN21CApfMimeContentPolicy12IsClosedTypeERK7TDesC16 @ 99 NONAME
+	_ZN21CApfMimeContentPolicy13IsClosedFileLER5RFile @ 100 NONAME
+	_ZN21CApfMimeContentPolicy13IsClosedFileLERK7TDesC16 @ 101 NONAME
+	_ZN21CApfMimeContentPolicy14IsDRMEnvelopeLER5RFile @ 102 NONAME
+	_ZN21CApfMimeContentPolicy14IsDRMEnvelopeLERK7TDesC16 @ 103 NONAME
+	_ZN21CApfMimeContentPolicy17IsClosedExtensionERK7TDesC16 @ 104 NONAME
+	_ZN21CApfMimeContentPolicy4NewLER3RFs @ 105 NONAME
+	_ZN21CApfMimeContentPolicy4NewLEv @ 106 NONAME
+	_ZN21CApfMimeContentPolicy5NewLCER3RFs @ 107 NONAME
+	_ZN21CApfMimeContentPolicy5NewLCEv @ 108 NONAME
+	_ZN21CApfMimeContentPolicyD0Ev @ 109 NONAME
+	_ZN21CApfMimeContentPolicyD1Ev @ 110 NONAME
+	_ZN21CApfMimeContentPolicyD2Ev @ 111 NONAME
+	_ZTI21CApfMimeContentPolicy @ 112 NONAME
+	_ZTV21CApfMimeContentPolicy @ 113 NONAME
+
--- a/localisation/apparchitecture/eabi/APFILE_9_REMOVE_UI_FRAMEWORKS_V1U.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-EXPORTS
-	_ZN19CApaAppLocatorProxy16GetAppEntryByUidER12TApaAppEntry4TUid @ 1 NONAME ABSENT
-	_ZN19CApaAppLocatorProxy21GetAppCapabilityByUidER5TDes84TUid @ 2 NONAME ABSENT
-	_ZN19CApaAppLocatorProxy4NewLER3RFs @ 3 NONAME ABSENT
-	_ZN19CApaAppLocatorProxyD0Ev @ 4 NONAME ABSENT
-	_ZN19CApaAppLocatorProxyD1Ev @ 5 NONAME ABSENT
-	_ZN19CApaAppLocatorProxyD2Ev @ 6 NONAME ABSENT
-	_ZN21CApaScanningAppFinder12FindAllAppsLEv @ 7 NONAME ABSENT
-	_ZN21CApaScanningAppFinder4NewLERK3RFs @ 8 NONAME ABSENT
-	_ZN21CApaScanningAppFinder5NewLCERK3RFs @ 9 NONAME ABSENT
-	_ZN21CApaScanningAppFinder5NextLER12TApaAppEntry @ 10 NONAME ABSENT
-	_ZN21CApaScanningAppFinder8FindAppLERK7TDesC164TUid @ 11 NONAME ABSENT
-	_ZN21CApaScanningAppFinderD0Ev @ 12 NONAME ABSENT
-	_ZN21CApaScanningAppFinderD1Ev @ 13 NONAME ABSENT
-	_ZN21CApaScanningAppFinderD2Ev @ 14 NONAME ABSENT
-	_ZN25CApaScanningControlFinder12FindAllAppsLEv @ 15 NONAME ABSENT
-	_ZN25CApaScanningControlFinder4NewLERK3RFs @ 16 NONAME ABSENT
-	_ZN25CApaScanningControlFinder5NewLCERK3RFs @ 17 NONAME ABSENT
-	_ZN25CApaScanningControlFinder5NextLER12TApaAppEntry @ 18 NONAME ABSENT
-	_ZN25CApaScanningControlFinder8FindAppLERK7TDesC164TUid @ 19 NONAME ABSENT
-	_ZN25CApaScanningControlFinderD0Ev @ 20 NONAME ABSENT
-	_ZN25CApaScanningControlFinderD1Ev @ 21 NONAME ABSENT
-	_ZN25CApaScanningControlFinderD2Ev @ 22 NONAME ABSENT
-	_ZN26CApaScanningFileRecognizer10ConstructLEv @ 23 NONAME
-	_ZN26CApaScanningFileRecognizer14SetRecognizerLERKNS_11TRecognizerE @ 24 NONAME ABSENT
-	_ZN26CApaScanningFileRecognizer15RecognizerCountEv @ 25 NONAME
-	_ZN26CApaScanningFileRecognizer19ScanForRecognizersLEv @ 26 NONAME
-	_ZN26CApaScanningFileRecognizer23SetRecognizersFromListLERK13CArrayFixFlatINS_11TRecognizerEE @ 27 NONAME ABSENT
-	_ZN26CApaScanningFileRecognizer4NewLER3RFsP14MApaAppStarter @ 28 NONAME
-	_ZN26CApaScanningFileRecognizerC1ER3RFsP14MApaAppStarter @ 29 NONAME
-	_ZN26CApaScanningFileRecognizerC2ER3RFsP14MApaAppStarter @ 30 NONAME
-	_ZN26CApaScanningFileRecognizerD0Ev @ 31 NONAME
-	_ZN26CApaScanningFileRecognizerD1Ev @ 32 NONAME
-	_ZN26CApaScanningFileRecognizerD2Ev @ 33 NONAME
-	_ZN6Apfile8TempPathEv @ 34 NONAME ABSENT
-	_ZNK21CApaScanningAppFinder22DefaultAppInfoFileNameEv @ 35 NONAME ABSENT
-	_ZNK21CApaScanningAppFinder8TempPathEv @ 36 NONAME ABSENT
-	_ZNK25CApaScanningControlFinder22DefaultAppInfoFileNameEv @ 37 NONAME ABSENT
-	_ZNK25CApaScanningControlFinder8TempPathEv @ 38 NONAME ABSENT
-	_ZNK26CApaScanningFileRecognizer13UpdateCounterEv @ 39 NONAME
-	_ZNK26CApaScanningFileRecognizer16RecognizerListLCEv @ 40 NONAME
-	_ZNK26CApaScanningFileRecognizerixEi @ 41 NONAME
-	_ZTI26CApaScanningFileRecognizer @ 42 NONAME ; #<TI>#
-	_ZTV26CApaScanningFileRecognizer @ 43 NONAME ; #<VT>#
-	_ZN26CApaScanningFileRecognizer18SetEcomRecognizerLERKNS_11TRecognizerE @ 44 NONAME
-	_ZN26CApaScanningFileRecognizer27SetEcomRecognizersFromListLERK13CArrayFixFlatINS_11TRecognizerEE @ 45 NONAME
-	_ZTI17CApaRecognizerDll @ 46 NONAME ; #<TI>#
-	_ZTI19CApaAppLocatorProxy @ 47 NONAME ABSENT ; #<TI>#
-	_ZTI21CApaScanningAppFinder @ 48 NONAME ABSENT ; #<TI>#
-	_ZTI25CApaScanningControlFinder @ 49 NONAME ABSENT ; #<TI>#
-	_ZTIN26CApaScanningFileRecognizer27CApaBackupOperationObserverE @ 50 NONAME ; #<TI>#
-	_ZTV17CApaRecognizerDll @ 51 NONAME ; #<VT>#
-	_ZTV19CApaAppLocatorProxy @ 52 NONAME ABSENT ; #<VT>#
-	_ZTV21CApaScanningAppFinder @ 53 NONAME ABSENT ; #<VT>#
-	_ZTV25CApaScanningControlFinder @ 54 NONAME ABSENT ; #<VT>#
-	_ZTVN26CApaScanningFileRecognizer27CApaBackupOperationObserverE @ 55 NONAME ; #<VT>#
-	_ZN16CApaAppRegFinder12FindAllAppsLEv @ 56 NONAME
-	_ZN16CApaAppRegFinder4NewLERK3RFs @ 57 NONAME
-	_ZN16CApaAppRegFinder5NewLCERK3RFs @ 58 NONAME
-	_ZN16CApaAppRegFinder5NextLER12TApaAppEntry @ 59 NONAME ABSENT
-	_ZN16CApaAppRegFinder5NextLER12TApaAppEntryRK13RPointerArrayI7HBufC16E @ 60 NONAME
-	_ZNK16CApaAppRegFinder8TempPathEv @ 61 NONAME ABSENT
-	_ZTI16CApaAppRegFinder @ 62 NONAME ; #<TI>#
-	_ZTV16CApaAppRegFinder @ 63 NONAME ; #<VT>#
-	_ZN17CAppLaunchChecker10Reserved_1Ev @ 64 NONAME
-	_ZN17CAppLaunchChecker10Reserved_2Ev @ 65 NONAME
-	_ZN17CAppLaunchChecker10Reserved_3Ev @ 66 NONAME
-	_ZN17CAppLaunchCheckerD0Ev @ 67 NONAME
-	_ZN17CAppLaunchCheckerD1Ev @ 68 NONAME
-	_ZN17CAppLaunchCheckerD2Ev @ 69 NONAME
-	_ZN28CApaScanningRuleBasedPlugIns4NewLEv @ 70 NONAME
-	_ZNK28CApaScanningRuleBasedPlugInsixEi @ 71 NONAME
-	_ZTI16CApaRuleBasedDll @ 72 NONAME ; #<TI>#
-	_ZTI17CAppLaunchChecker @ 73 NONAME ; #<TI>#
-	_ZTV16CApaRuleBasedDll @ 74 NONAME ; #<VT>#
-	_ZTV17CAppLaunchChecker @ 75 NONAME ; #<VT>#
-	_ZN28CApaScanningRuleBasedPlugInsD0Ev @ 76 NONAME
-	_ZN28CApaScanningRuleBasedPlugInsD1Ev @ 77 NONAME
-	_ZN28CApaScanningRuleBasedPlugInsD2Ev @ 78 NONAME
-	_ZTI28CApaScanningRuleBasedPlugIns @ 79 NONAME ; #<TI>#
-	_ZTV28CApaScanningRuleBasedPlugIns @ 80 NONAME ; #<VT>#
-	_ZN28CApaScanningRuleBasedPlugIns24ScanForRuleBasedPlugInsLEv @ 81 NONAME
-	_ZNK28CApaScanningRuleBasedPlugIns19ImplementationCountEv @ 82 NONAME
-	_ZN14CAppSidChecker18SetRescanCallBackLERK9TCallBack @ 83 NONAME
-	_ZN14CAppSidChecker9reserved1Ev @ 84 NONAME
-	_ZN14CAppSidChecker9reserved2Ev @ 85 NONAME
-	_ZN14CAppSidChecker9reserved3Ev @ 86 NONAME
-	_ZN14CAppSidCheckerD0Ev @ 87 NONAME
-	_ZN14CAppSidCheckerD1Ev @ 88 NONAME
-	_ZN14CAppSidCheckerD2Ev @ 89 NONAME
-	_ZTI14CAppSidChecker @ 90 NONAME ; #<TI>#
-	_ZTV14CAppSidChecker @ 91 NONAME ; #<VT>#
-	X @ 92 NONAME ABSENT
-	X @ 93 NONAME ABSENT
-	_ZN23CApaAppUnInstallMonitor4NewLEP17CApaAppListServer @ 94 NONAME
-	_ZN23CApaAppUnInstallMonitor5StartEv @ 95 NONAME
-	_ZN23CApaAppUnInstallMonitorD0Ev @ 96 NONAME
-	_ZN23CApaAppUnInstallMonitorD1Ev @ 97 NONAME
-	_ZN23CApaAppUnInstallMonitorD2Ev @ 98 NONAME
-	
-
--- a/localisation/apparchitecture/eabi/APFILE_UI_FRAMEWORKSU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-EXPORTS
-	_ZN19CApaAppLocatorProxy16GetAppEntryByUidER12TApaAppEntry4TUid @ 1 NONAME ABSENT
-	_ZN19CApaAppLocatorProxy21GetAppCapabilityByUidER5TDes84TUid @ 2 NONAME ABSENT
-	_ZN19CApaAppLocatorProxy4NewLER3RFs @ 3 NONAME ABSENT
-	_ZN19CApaAppLocatorProxyD0Ev @ 4 NONAME ABSENT
-	_ZN19CApaAppLocatorProxyD1Ev @ 5 NONAME ABSENT
-	_ZN19CApaAppLocatorProxyD2Ev @ 6 NONAME ABSENT
-	_ZN21CApaScanningAppFinder12FindAllAppsLEv @ 7 NONAME ABSENT
-	_ZN21CApaScanningAppFinder4NewLERK3RFs @ 8 NONAME ABSENT
-	_ZN21CApaScanningAppFinder5NewLCERK3RFs @ 9 NONAME ABSENT
-	_ZN21CApaScanningAppFinder5NextLER12TApaAppEntry @ 10 NONAME ABSENT
-	_ZN21CApaScanningAppFinder8FindAppLERK7TDesC164TUid @ 11 NONAME ABSENT
-	_ZN21CApaScanningAppFinderD0Ev @ 12 NONAME ABSENT
-	_ZN21CApaScanningAppFinderD1Ev @ 13 NONAME ABSENT
-	_ZN21CApaScanningAppFinderD2Ev @ 14 NONAME ABSENT
-	_ZN25CApaScanningControlFinder12FindAllAppsLEv @ 15 NONAME ABSENT
-	_ZN25CApaScanningControlFinder4NewLERK3RFs @ 16 NONAME ABSENT
-	_ZN25CApaScanningControlFinder5NewLCERK3RFs @ 17 NONAME ABSENT
-	_ZN25CApaScanningControlFinder5NextLER12TApaAppEntry @ 18 NONAME ABSENT
-	_ZN25CApaScanningControlFinder8FindAppLERK7TDesC164TUid @ 19 NONAME ABSENT
-	_ZN25CApaScanningControlFinderD0Ev @ 20 NONAME ABSENT
-	_ZN25CApaScanningControlFinderD1Ev @ 21 NONAME ABSENT
-	_ZN25CApaScanningControlFinderD2Ev @ 22 NONAME ABSENT
-	_ZN26CApaScanningFileRecognizer10ConstructLEv @ 23 NONAME
-	_ZN26CApaScanningFileRecognizer14SetRecognizerLERKNS_11TRecognizerE @ 24 NONAME ABSENT
-	_ZN26CApaScanningFileRecognizer15RecognizerCountEv @ 25 NONAME
-	_ZN26CApaScanningFileRecognizer19ScanForRecognizersLEv @ 26 NONAME
-	_ZN26CApaScanningFileRecognizer23SetRecognizersFromListLERK13CArrayFixFlatINS_11TRecognizerEE @ 27 NONAME ABSENT
-	_ZN26CApaScanningFileRecognizer4NewLER3RFsP14MApaAppStarter @ 28 NONAME
-	_ZN26CApaScanningFileRecognizerC1ER3RFsP14MApaAppStarter @ 29 NONAME
-	_ZN26CApaScanningFileRecognizerC2ER3RFsP14MApaAppStarter @ 30 NONAME
-	_ZN26CApaScanningFileRecognizerD0Ev @ 31 NONAME
-	_ZN26CApaScanningFileRecognizerD1Ev @ 32 NONAME
-	_ZN26CApaScanningFileRecognizerD2Ev @ 33 NONAME
-	_ZN6Apfile8TempPathEv @ 34 NONAME ABSENT
-	_ZNK21CApaScanningAppFinder22DefaultAppInfoFileNameEv @ 35 NONAME ABSENT
-	_ZNK21CApaScanningAppFinder8TempPathEv @ 36 NONAME ABSENT
-	_ZNK25CApaScanningControlFinder22DefaultAppInfoFileNameEv @ 37 NONAME ABSENT
-	_ZNK25CApaScanningControlFinder8TempPathEv @ 38 NONAME ABSENT
-	_ZNK26CApaScanningFileRecognizer13UpdateCounterEv @ 39 NONAME
-	_ZNK26CApaScanningFileRecognizer16RecognizerListLCEv @ 40 NONAME
-	_ZNK26CApaScanningFileRecognizerixEi @ 41 NONAME
-	_ZTI26CApaScanningFileRecognizer @ 42 NONAME ; #<TI>#
-	_ZTV26CApaScanningFileRecognizer @ 43 NONAME ; #<VT>#
-	_ZN26CApaScanningFileRecognizer18SetEcomRecognizerLERKNS_11TRecognizerE @ 44 NONAME
-	_ZN26CApaScanningFileRecognizer27SetEcomRecognizersFromListLERK13CArrayFixFlatINS_11TRecognizerEE @ 45 NONAME
-	_ZTI17CApaRecognizerDll @ 46 NONAME ; #<TI>#
-	_ZTI19CApaAppLocatorProxy @ 47 NONAME ABSENT ; #<TI>#
-	_ZTI21CApaScanningAppFinder @ 48 NONAME ABSENT ; #<TI>#
-	_ZTI25CApaScanningControlFinder @ 49 NONAME ABSENT ; #<TI>#
-	_ZTIN26CApaScanningFileRecognizer27CApaBackupOperationObserverE @ 50 NONAME ; #<TI>#
-	_ZTV17CApaRecognizerDll @ 51 NONAME ; #<VT>#
-	_ZTV19CApaAppLocatorProxy @ 52 NONAME ABSENT ; #<VT>#
-	_ZTV21CApaScanningAppFinder @ 53 NONAME ABSENT ; #<VT>#
-	_ZTV25CApaScanningControlFinder @ 54 NONAME ABSENT ; #<VT>#
-	_ZTVN26CApaScanningFileRecognizer27CApaBackupOperationObserverE @ 55 NONAME ; #<VT>#
-	_ZN16CApaAppRegFinder12FindAllAppsLEv @ 56 NONAME
-	_ZN16CApaAppRegFinder4NewLERK3RFs @ 57 NONAME
-	_ZN16CApaAppRegFinder5NewLCERK3RFs @ 58 NONAME
-	_ZN16CApaAppRegFinder5NextLER12TApaAppEntry @ 59 NONAME ABSENT
-	_ZN16CApaAppRegFinder5NextLER12TApaAppEntryRK13RPointerArrayI7HBufC16E @ 60 NONAME
-	_ZNK16CApaAppRegFinder8TempPathEv @ 61 NONAME ABSENT
-	_ZTI16CApaAppRegFinder @ 62 NONAME ; #<TI>#
-	_ZTV16CApaAppRegFinder @ 63 NONAME ; #<VT>#
-	_ZN17CAppLaunchChecker10Reserved_1Ev @ 64 NONAME
-	_ZN17CAppLaunchChecker10Reserved_2Ev @ 65 NONAME
-	_ZN17CAppLaunchChecker10Reserved_3Ev @ 66 NONAME
-	_ZN17CAppLaunchCheckerD0Ev @ 67 NONAME
-	_ZN17CAppLaunchCheckerD1Ev @ 68 NONAME
-	_ZN17CAppLaunchCheckerD2Ev @ 69 NONAME
-	_ZN28CApaScanningRuleBasedPlugIns4NewLEv @ 70 NONAME
-	_ZNK28CApaScanningRuleBasedPlugInsixEi @ 71 NONAME
-	_ZTI16CApaRuleBasedDll @ 72 NONAME ; #<TI>#
-	_ZTI17CAppLaunchChecker @ 73 NONAME ; #<TI>#
-	_ZTV16CApaRuleBasedDll @ 74 NONAME ; #<VT>#
-	_ZTV17CAppLaunchChecker @ 75 NONAME ; #<VT>#
-	_ZN28CApaScanningRuleBasedPlugInsD0Ev @ 76 NONAME
-	_ZN28CApaScanningRuleBasedPlugInsD1Ev @ 77 NONAME
-	_ZN28CApaScanningRuleBasedPlugInsD2Ev @ 78 NONAME
-	_ZTI28CApaScanningRuleBasedPlugIns @ 79 NONAME ; #<TI>#
-	_ZTV28CApaScanningRuleBasedPlugIns @ 80 NONAME ; #<VT>#
-	_ZN28CApaScanningRuleBasedPlugIns24ScanForRuleBasedPlugInsLEv @ 81 NONAME
-	_ZNK28CApaScanningRuleBasedPlugIns19ImplementationCountEv @ 82 NONAME
-	_ZN14CAppSidChecker18SetRescanCallBackLERK9TCallBack @ 83 NONAME
-	_ZN14CAppSidChecker9reserved1Ev @ 84 NONAME
-	_ZN14CAppSidChecker9reserved2Ev @ 85 NONAME
-	_ZN14CAppSidChecker9reserved3Ev @ 86 NONAME
-	_ZN14CAppSidCheckerD0Ev @ 87 NONAME
-	_ZN14CAppSidCheckerD1Ev @ 88 NONAME
-	_ZN14CAppSidCheckerD2Ev @ 89 NONAME
-	_ZTI14CAppSidChecker @ 90 NONAME ; #<TI>#
-	_ZTV14CAppSidChecker @ 91 NONAME ; #<VT>#
-	_ZNK16CApaAppRegFinder9DriveListEv @ 92 NONAME
-	_ZN16CApaAppRegFinder26FindAllRemovableMediaAppsLEv @ 93 NONAME
-	_ZN23CApaAppUnInstallMonitor4NewLEP17CApaAppListServer @ 94 NONAME
-	_ZN23CApaAppUnInstallMonitor5StartEv @ 95 NONAME
-	_ZN23CApaAppUnInstallMonitorD0Ev @ 96 NONAME
-	_ZN23CApaAppUnInstallMonitorD1Ev @ 97 NONAME
-	_ZN23CApaAppUnInstallMonitorD2Ev @ 98 NONAME
-	_ZN21CApfMimeContentPolicy12IsClosedTypeERK7TDesC16 @ 99 NONAME
-	_ZN21CApfMimeContentPolicy13IsClosedFileLER5RFile @ 100 NONAME
-	_ZN21CApfMimeContentPolicy13IsClosedFileLERK7TDesC16 @ 101 NONAME
-	_ZN21CApfMimeContentPolicy14IsDRMEnvelopeLER5RFile @ 102 NONAME
-	_ZN21CApfMimeContentPolicy14IsDRMEnvelopeLERK7TDesC16 @ 103 NONAME
-	_ZN21CApfMimeContentPolicy17IsClosedExtensionERK7TDesC16 @ 104 NONAME
-	_ZN21CApfMimeContentPolicy4NewLER3RFs @ 105 NONAME
-	_ZN21CApfMimeContentPolicy4NewLEv @ 106 NONAME
-	_ZN21CApfMimeContentPolicy5NewLCER3RFs @ 107 NONAME
-	_ZN21CApfMimeContentPolicy5NewLCEv @ 108 NONAME
-	_ZN21CApfMimeContentPolicyD0Ev @ 109 NONAME
-	_ZN21CApfMimeContentPolicyD1Ev @ 110 NONAME
-	_ZN21CApfMimeContentPolicyD2Ev @ 111 NONAME
-	_ZTI21CApfMimeContentPolicy @ 112 NONAME
-	_ZTV21CApfMimeContentPolicy @ 113 NONAME
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/eabi/APGRFXU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,435 @@
+EXPORTS
+	_ZNK11CApaAppData11GetIconInfoERiS0_ @ 1 NONAME ABSENT
+	_ZN11CApaAppData16CanUseScreenModeEi @ 2 NONAME ABSENT
+	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 3 NONAME ABSENT
+	_ZN11CApaAppList16StartIdleUpdateLEv @ 4 NONAME ABSENT
+	_ZN11CApaAppList4NewLER3RFsP16CApaAppRegFinderii @ 5 NONAME ABSENT
+	_ZN11CApaAppList6PurgeLEv @ 6 NONAME ABSENT
+	_ZN11CApaAppList7UpdateLEv @ 7 NONAME ABSENT
+	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 8 NONAME ABSENT
+	_ZN11CApaAppListD0Ev @ 9 NONAME ABSENT
+	_ZN11CApaAppListD1Ev @ 10 NONAME ABSENT
+	_ZN11CApaAppListD2Ev @ 11 NONAME ABSENT
+	_ZN12TApaTaskList10CycleTasksE4TUidNS_15TCycleDirectionE @ 12 NONAME
+	_ZN12TApaTaskList7FindAppE4TUid @ 13 NONAME
+	_ZN12TApaTaskList7FindAppERK7TDesC16 @ 14 NONAME
+	_ZN12TApaTaskList7FindDocERK7TDesC16 @ 15 NONAME
+	_ZN12TApaTaskList9FindByPosEi @ 16 NONAME
+	_ZN12TApaTaskListC1ER10RWsSession @ 17 NONAME
+	_ZN12TApaTaskListC2ER10RWsSession @ 18 NONAME
+	_ZN13RApaLsSession13StartDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 19 NONAME
+	_ZN13RApaLsSession13StartDocumentERK7TDesC16R9TThreadIdNS_11TLaunchTypeE @ 20 NONAME
+	_ZN13RApaLsSession13StartDocumentERK7TDesC16RK9TDataTypeR9TThreadIdNS_11TLaunchTypeE @ 21 NONAME
+	_ZN13RApaLsSession14CreateDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 22 NONAME
+	_ZN13RApaLsSession17SetMaxDataBufSizeEi @ 23 NONAME
+	_ZN13RApaLsSession21SetAcceptedConfidenceEi @ 24 NONAME
+	_ZN13RApaLsSession7ConnectEv @ 25 NONAME
+	_ZN13RApaLsSession8StartAppERK15CApaCommandLine @ 26 NONAME
+	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadId @ 27 NONAME
+	_ZN13RApaLsSessionC1Ev @ 28 NONAME
+	_ZN13RApaLsSessionC2Ev @ 29 NONAME
+	_ZN16AppInfoFileUtils14GetAifFileNameERK3RFsR6TDes16 @ 30 NONAME ABSENT
+	_ZN16CApaMaskedBitmap12InternalizeLER11RReadStream @ 31 NONAME
+	_ZN16CApaMaskedBitmap13SetMaskBitmapEP10CFbsBitmap @ 32 NONAME
+	_ZN16CApaMaskedBitmap4NewLEPKS_ @ 33 NONAME
+	_ZN16CApaMaskedBitmap5NewLCEv @ 34 NONAME
+	_ZN16CApaMaskedBitmapD0Ev @ 35 NONAME
+	_ZN16CApaMaskedBitmapD1Ev @ 36 NONAME
+	_ZN16CApaMaskedBitmapD2Ev @ 37 NONAME
+	_ZN17CApaSystemControl7CreateLEv @ 38 NONAME
+	_ZN18TApaPictureFactoryC1EP11CApaProcess @ 39 NONAME
+	_ZN18TApaPictureFactoryC2EP11CApaProcess @ 40 NONAME
+	_ZN19CApaAppListNotifier4NewLEP23MApaAppListServObserverN7CActive9TPriorityE @ 41 NONAME
+	_ZN19CApaAppListNotifierD0Ev @ 42 NONAME
+	_ZN19CApaAppListNotifierD1Ev @ 43 NONAME
+	_ZN19CApaAppListNotifierD2Ev @ 44 NONAME
+	_ZN19CApaWindowGroupName11SetAppReadyEi @ 45 NONAME
+	_ZN19CApaWindowGroupName11SetCaptionLERK7TDesC16 @ 46 NONAME
+	_ZN19CApaWindowGroupName11SetDocNameLERK7TDesC16 @ 47 NONAME
+	_ZN19CApaWindowGroupName12FindByAppUidE4TUidR10RWsSessionRi @ 48 NONAME
+	_ZN19CApaWindowGroupName13FindByCaptionERK7TDesC16R10RWsSessionRi @ 49 NONAME
+	_ZN19CApaWindowGroupName13FindByDocNameERK7TDesC16R10RWsSessionRi @ 50 NONAME
+	_ZN19CApaWindowGroupName17SetDocNameIsAFileEi @ 51 NONAME
+	_ZN19CApaWindowGroupName18ConstructFromWgIdLEi @ 52 NONAME
+	_ZN19CApaWindowGroupName18SetWindowGroupNameEP7HBufC16 @ 53 NONAME
+	_ZN19CApaWindowGroupName19SetWindowGroupNameLERK7TDesC16 @ 54 NONAME
+	_ZN19CApaWindowGroupName26SetRespondsToShutdownEventEi @ 55 NONAME
+	_ZN19CApaWindowGroupName29SetRespondsToSwitchFilesEventEi @ 56 NONAME
+	_ZN19CApaWindowGroupName3NewERK10RWsSessionP7HBufC16 @ 57 NONAME
+	_ZN19CApaWindowGroupName4NewLERK10RWsSession @ 58 NONAME
+	_ZN19CApaWindowGroupName4NewLERK10RWsSessionRK7TDesC16 @ 59 NONAME
+	_ZN19CApaWindowGroupName4NewLERK10RWsSessioni @ 60 NONAME
+	_ZN19CApaWindowGroupName5NewLCERK10RWsSession @ 61 NONAME
+	_ZN19CApaWindowGroupName5NewLCERK10RWsSessionRK7TDesC16 @ 62 NONAME
+	_ZN19CApaWindowGroupName5NewLCERK10RWsSessioni @ 63 NONAME
+	_ZNK19CApaWindowGroupName6HiddenEv @ 64 NONAME
+	_ZN19CApaWindowGroupName7SetBusyEi @ 65 NONAME
+	_ZN19CApaWindowGroupName9SetAppUidE4TUid @ 66 NONAME
+	_ZN19CApaWindowGroupName9SetHiddenEi @ 67 NONAME
+	_ZN19CApaWindowGroupName9SetSystemEi @ 68 NONAME
+	_ZN19CApaWindowGroupNameD0Ev @ 69 NONAME
+	_ZN19CApaWindowGroupNameD1Ev @ 70 NONAME
+	_ZN19CApaWindowGroupNameD2Ev @ 71 NONAME
+	_ZN21CApaAppInfoFileReader12StretchDrawLEP10CFbsBitmapS1_5TSize @ 72 NONAME ABSENT
+	_ZN21CApaAppInfoFileReader19CreateMaskedBitmapLEi @ 73 NONAME ABSENT
+	_ZN21CApaAppInfoFileReader4NewLER3RFsRK7TDesC164TUid @ 74 NONAME ABSENT
+	_ZN21CApaAppInfoFileReader5NewLCER3RFsRK7TDesC164TUid @ 75 NONAME ABSENT
+	_ZN21CApaAppInfoFileReader8CaptionLE9TLanguage @ 76 NONAME ABSENT
+	_ZN21CApaAppInfoFileReaderD0Ev @ 77 NONAME ABSENT
+	_ZN21CApaAppInfoFileReaderD1Ev @ 78 NONAME ABSENT
+	_ZN21CApaAppInfoFileReaderD2Ev @ 79 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter10StoreViewLE4TUid @ 80 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter11AddCaptionLE9TLanguageRK7TDesC16 @ 81 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter12AddDataTypeLERK21TDataTypeWithPriority @ 82 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter12AddViewIconLER16CApaMaskedBitmap4TUid @ 83 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter13AddOwnedFileLERK7TDesC16 @ 84 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter13SetCapabilityERK6TDesC8 @ 85 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter15AddViewCaptionLE9TLanguageRK7TDesC164TUid @ 86 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter5NewLCER3RFsRK7TDesC164TUid @ 87 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter6StoreLEv @ 88 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddIconLER16CApaMaskedBitmap @ 89 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddIconLERK7TDesC16 @ 90 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddViewLE4TUid @ 91 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddViewLE4TUidi @ 92 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD0Ev @ 93 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD1Ev @ 94 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD2Ev @ 95 NONAME ABSENT
+	_ZN21CApaSystemControlList4NewLER3RFsR13CApaAppFinderRK7TDesC16 @ 96 NONAME ABSENT
+	_ZN21CApaSystemControlList7UpdateLEv @ 97 NONAME
+	_ZN21CApaSystemControlListD0Ev @ 98 NONAME
+	_ZN21CApaSystemControlListD1Ev @ 99 NONAME
+	_ZN21CApaSystemControlListD2Ev @ 100 NONAME
+	_ZN8CApaDoor16SetFormatToIconLEv @ 101 NONAME
+	_ZN8CApaDoor17SetFormatToGlassLEv @ 102 NONAME
+	_ZN8CApaDoor25SetFormatToTemporaryIconLEi @ 103 NONAME
+	_ZN8CApaDoor4NewLER3RFsR12CApaDocumentRK5TSize @ 104 NONAME
+	_ZN8CApaDoor4NewLER3RFsRK12CStreamStore9TStreamIdR11CApaProcess @ 105 NONAME
+	_ZN8CApaDoor5NewLCER3RFsR12CApaDocumentRK5TSize @ 106 NONAME
+	_ZN8CApaDoor8RestoreLERK12CStreamStore9TStreamId @ 107 NONAME
+	_ZN8CApaDoor9DocumentLEi @ 108 NONAME
+	_ZN8CApaDoorD0Ev @ 109 NONAME
+	_ZN8CApaDoorD1Ev @ 110 NONAME
+	_ZN8CApaDoorD2Ev @ 111 NONAME
+	_ZN8TApaTask11SendMessageE4TUidRK6TDesC8 @ 112 NONAME
+	_ZN8TApaTask14SwitchOpenFileERK7TDesC16 @ 113 NONAME
+	_ZN8TApaTask15SendSystemEventE15TApaSystemEvent @ 114 NONAME
+	_ZN8TApaTask16SendToBackgroundEv @ 115 NONAME
+	_ZN8TApaTask16SwitchCreateFileERK7TDesC16 @ 116 NONAME
+	_ZN8TApaTask17BringToForegroundEv @ 117 NONAME
+	_ZN8TApaTask7EndTaskEv @ 118 NONAME
+	_ZN8TApaTask7SendKeyERK9TKeyEvent @ 119 NONAME
+	_ZN8TApaTask7SendKeyEii @ 120 NONAME
+	_ZN8TApaTask7SetWgIdEi @ 121 NONAME
+	_ZN8TApaTask8KillTaskEv @ 122 NONAME
+	_ZN8TApaTaskC1ER10RWsSession @ 123 NONAME
+	_ZN8TApaTaskC2ER10RWsSession @ 124 NONAME
+	_ZNK11CApaAppData10CapabilityER5TDes8 @ 125 NONAME ABSENT
+	_ZNK11CApaAppData10IconSizesLEv @ 126 NONAME ABSENT
+	_ZNK11CApaAppData10OwnedFilesEv @ 127 NONAME ABSENT
+	_ZNK11CApaAppData4IconE5TSize @ 128 NONAME ABSENT
+	_ZNK11CApaAppData4IconEi @ 129 NONAME ABSENT
+	_ZNK11CApaAppData5ViewsEv @ 130 NONAME ABSENT
+	_ZNK11CApaAppData8AppEntryEv @ 131 NONAME ABSENT
+	_ZNK11CApaAppData8DataTypeERK9TDataType @ 132 NONAME ABSENT
+	_ZNK11CApaAppList12AppDataByUidE4TUid @ 133 NONAME ABSENT
+	_ZNK11CApaAppList13UpdateCounterEv @ 134 NONAME ABSENT
+	_ZNK11CApaAppList19IsFirstScanCompleteEv @ 135 NONAME ABSENT
+	_ZNK11CApaAppList20IsIdleUpdateCompleteEv @ 136 NONAME ABSENT
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataType @ 137 NONAME ABSENT
+	_ZNK11CApaAppList5CountEv @ 138 NONAME ABSENT
+	_ZNK11CApaAppList7NextAppEPK11CApaAppData @ 139 NONAME ABSENT
+	_ZNK11CApaAppList7NextAppEPK11CApaAppDatai @ 140 NONAME ABSENT
+	_ZNK11CApaAppList8FirstAppEi @ 141 NONAME ABSENT
+	_ZNK11CApaAppList8FirstAppEv @ 142 NONAME ABSENT
+	_ZNK13RApaLsSession10GetAllAppsEi @ 143 NONAME
+	_ZNK13RApaLsSession10GetAllAppsEv @ 144 NONAME
+	_ZNK13RApaLsSession10GetAppIconE4TUid5TSizeR16CApaMaskedBitmap @ 145 NONAME
+	_ZNK13RApaLsSession10GetAppIconE4TUidiR16CApaMaskedBitmap @ 146 NONAME
+	_ZNK13RApaLsSession10GetAppInfoER11TApaAppInfo4TUid @ 147 NONAME
+	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfo @ 148 NONAME
+	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfoi @ 149 NONAME
+	_ZNK13RApaLsSession11GetAppViewsER13CArrayFixFlatI15TApaAppViewInfoE4TUid @ 150 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK7TDesC16RK6TDesC8R22TDataRecognitionResult @ 151 NONAME
+	_ZNK13RApaLsSession14AppForDataTypeERK9TDataTypeR4TUid @ 152 NONAME
+	_ZNK13RApaLsSession14AppForDocumentERK7TDesC16R4TUidR9TDataType @ 153 NONAME
+	_ZNK13RApaLsSession14GetAppInfo_7_0ER15TApaAppInfo_7_04TUid @ 154 NONAME ABSENT
+	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RK5TSizeR16CApaMaskedBitmap @ 155 NONAME
+	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0 @ 156 NONAME ABSENT
+	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0i @ 157 NONAME ABSENT
+	_ZNK13RApaLsSession15GetAppIconSizesE4TUidR13CArrayFixFlatI5TSizeE @ 158 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilter @ 159 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilteri @ 160 NONAME
+	_ZNK13RApaLsSession16GetAppCapabilityER5TDes84TUid @ 161 NONAME
+	_ZNK13RApaLsSession16GetAppOwnedFilesER12CDesC16Array4TUid @ 162 NONAME
+	_ZNK13RApaLsSession17GetEmbeddableAppsEi @ 163 NONAME
+	_ZNK13RApaLsSession17GetEmbeddableAppsEv @ 164 NONAME
+	_ZNK13RApaLsSession17GetMaxDataBufSizeERi @ 165 NONAME
+	_ZNK13RApaLsSession18EmbeddableAppCountERi @ 166 NONAME
+	_ZNK13RApaLsSession21GetAcceptedConfidenceERi @ 167 NONAME
+	_ZNK13RApaLsSession21RecognizeSpecificDataERK7TDesC16RK6TDesC8RK9TDataTypeRi @ 168 NONAME
+	_ZNK13RApaLsSession22GetSupportedDataTypesLER13CArrayFixFlatI9TDataTypeE @ 169 NONAME
+	_ZNK13RApaLsSession23NumberOfOwnDefinedIconsE4TUidRi @ 170 NONAME
+	_ZNK13RApaLsSession7VersionEv @ 171 NONAME
+	_ZNK13RApaLsSession8AppCountERi @ 172 NONAME
+	_ZNK13RApaLsSession9IsProgramERK7TDesC16Ri @ 173 NONAME
+	_ZNK15CApaAIFViewData10ScreenModeEv @ 174 NONAME ABSENT
+	_ZNK15CApaAIFViewData12IconByIndexLEi @ 175 NONAME ABSENT
+	_ZNK15CApaAIFViewData13NumberOfIconsEv @ 176 NONAME ABSENT
+	_ZNK15CApaAIFViewData7ViewUidEv @ 177 NONAME ABSENT
+	_ZNK15CApaAIFViewData8CaptionLE9TLanguage @ 178 NONAME ABSENT
+	_ZNK15CApaAppViewData10IconSizesLEv @ 179 NONAME ABSENT
+	_ZNK15CApaAppViewData10ScreenModeEv @ 180 NONAME ABSENT
+	_ZNK15CApaAppViewData3UidEv @ 181 NONAME ABSENT
+	_ZNK15CApaAppViewData4IconERK5TSize @ 182 NONAME ABSENT
+	_ZNK16CApaMaskedBitmap12ExternalizeLER12RWriteStream @ 183 NONAME
+	_ZNK16CApaMaskedBitmap4MaskEv @ 184 NONAME
+	_ZNK17CApaSystemControl12ShortCaptionEv @ 185 NONAME
+	_ZNK17CApaSystemControl4IconEv @ 186 NONAME
+	_ZNK17CApaSystemControl4TypeEv @ 187 NONAME
+	_ZNK17CApaSystemControl7CaptionEv @ 188 NONAME
+	_ZNK17CApaSystemControl8FileNameEv @ 189 NONAME
+	_ZNK18TApaPictureFactory11NewPictureLER14TPictureHeaderRK12CStreamStore @ 190 NONAME
+	_ZNK19CApaWindowGroupName10IsAppReadyEv @ 191 NONAME
+	_ZNK19CApaWindowGroupName14DocNameIsAFileEv @ 192 NONAME
+	_ZNK19CApaWindowGroupName15WindowGroupNameEv @ 193 NONAME
+	_ZNK19CApaWindowGroupName18SetWindowGroupNameER12RWindowGroup @ 194 NONAME
+	_ZNK19CApaWindowGroupName23RespondsToShutdownEventEv @ 195 NONAME
+	_ZNK19CApaWindowGroupName26RespondsToSwitchFilesEventEv @ 196 NONAME
+	_ZNK19CApaWindowGroupName6AppUidEv @ 197 NONAME
+	_ZNK19CApaWindowGroupName6IsBusyEv @ 198 NONAME
+	_ZNK19CApaWindowGroupName7CaptionEv @ 199 NONAME
+	_ZNK19CApaWindowGroupName7DocNameEv @ 200 NONAME
+	_ZNK19CApaWindowGroupName8IsSystemEv @ 201 NONAME
+	_ZNK21CApaAppInfoFileReader10CapabilityER5TDes8 @ 202 NONAME ABSENT
+	_ZNK21CApaAppInfoFileReader14GetOwnedFilesLER12CDesC16Array @ 203 NONAME ABSENT
+	_ZNK21CApaAppInfoFileReader15NumberOfBitmapsEv @ 204 NONAME ABSENT
+	_ZNK21CApaAppInfoFileReader19DataTypesSupportedLER9CArrayFixI21TDataTypeWithPriorityE @ 205 NONAME ABSENT
+	_ZNK21CApaAppInfoFileReader9GetViewsLER9CArrayPtrI15CApaAIFViewDataE @ 206 NONAME ABSENT
+	_ZNK21CApaSystemControlList5CountEv @ 207 NONAME
+	_ZNK21CApaSystemControlList5IndexE4TUid @ 208 NONAME
+	_ZNK21CApaSystemControlList7ControlE4TUid @ 209 NONAME
+	_ZNK21CApaSystemControlList7ControlEi @ 210 NONAME
+	_ZNK8CApaDoor7AppUidLEv @ 211 NONAME
+	_ZNK8TApaTask4WgIdEv @ 212 NONAME
+	_ZNK8TApaTask6ExistsEv @ 213 NONAME
+	_ZNK8TApaTask8ThreadIdEv @ 214 NONAME
+	_ZTI18TApaPictureFactory @ 215 NONAME ; #<TI>#
+	_ZTV18TApaPictureFactory @ 216 NONAME ; #<VT>#
+	_ZTI11CApaAppData @ 217 NONAME ABSENT ; #<TI>#
+	_ZTI11CApaAppList @ 218 NONAME ABSENT ; #<TI>#
+	_ZTI12CApaAppEntry @ 219 NONAME ABSENT ; #<TI>#
+	_ZTI14CApaAIFCaption @ 220 NONAME ABSENT ; #<TI>#
+	_ZTI15CApaAIFViewData @ 221 NONAME ABSENT ; #<TI>#
+	_ZTI15CApaAppInfoFile @ 222 NONAME ABSENT ; #<TI>#
+	_ZTI15CApaAppViewData @ 223 NONAME ABSENT ; #<TI>#
+	_ZTI15CApaIconPicture @ 224 NONAME ; #<TI>#
+	_ZTI16CApaMaskedBitmap @ 225 NONAME ; #<TI>#
+	_ZTI16TDesCArrayFiller @ 226 NONAME ABSENT ; #<TI>#
+	_ZTI16TSizeArrayFiller @ 227 NONAME ABSENT ; #<TI>#
+	_ZTI17CApaSystemControl @ 228 NONAME ; #<TI>#
+	_ZTI19CApaAppListNotifier @ 229 NONAME ; #<TI>#
+	_ZTI19CApaWindowGroupName @ 230 NONAME ; #<TI>#
+	_ZTI20TViewDataArrayFiller @ 231 NONAME ABSENT ; #<TI>#
+	_ZTI21CApaAppInfoFileReader @ 232 NONAME ABSENT ; #<TI>#
+	_ZTI21CApaAppInfoFileWriter @ 233 NONAME ABSENT ; #<TI>#
+	_ZTI21CApaSystemControlList @ 234 NONAME ; #<TI>#
+	_ZTI7HBufBuf @ 235 NONAME ; #<TI>#
+	_ZTI8CApaDoor @ 236 NONAME ; #<TI>#
+	_ZTV11CApaAppData @ 237 NONAME ABSENT ; #<VT>#
+	_ZTV11CApaAppList @ 238 NONAME ABSENT ; #<VT>#
+	_ZTV12CApaAppEntry @ 239 NONAME ABSENT ; #<VT>#
+	_ZTV14CApaAIFCaption @ 240 NONAME ABSENT ; #<VT>#
+	_ZTV15CApaAIFViewData @ 241 NONAME ABSENT ; #<VT>#
+	_ZTV15CApaAppInfoFile @ 242 NONAME ABSENT ; #<VT>#
+	_ZTV15CApaAppViewData @ 243 NONAME ABSENT ; #<VT>#
+	_ZTV15CApaIconPicture @ 244 NONAME ; #<VT>#
+	_ZTV16CApaMaskedBitmap @ 245 NONAME ; #<VT>#
+	_ZTV16TDesCArrayFiller @ 246 NONAME ABSENT ; #<VT>#
+	_ZTV16TSizeArrayFiller @ 247 NONAME ABSENT ; #<VT>#
+	_ZTV17CApaSystemControl @ 248 NONAME ; #<VT>#
+	_ZTV19CApaAppListNotifier @ 249 NONAME ; #<VT>#
+	_ZTV19CApaWindowGroupName @ 250 NONAME ; #<VT>#
+	_ZTV20TViewDataArrayFiller @ 251 NONAME ABSENT ; #<VT>#
+	_ZTV21CApaAppInfoFileReader @ 252 NONAME ABSENT ; #<VT>#
+	_ZTV21CApaAppInfoFileWriter @ 253 NONAME ABSENT ; #<VT>#
+	_ZTV21CApaSystemControlList @ 254 NONAME ; #<VT>#
+	_ZTV7HBufBuf @ 255 NONAME ; #<VT>#
+	_ZTV8CApaDoor @ 256 NONAME ; #<VT>#
+	_ZN11CApaAppList4NewLER3RFsP13CApaAppFinderP16CApaAppRegFinderi @ 257 NONAME ABSENT
+	_ZNK11CApaAppData12IconFileNameEv @ 258 NONAME ABSENT
+	_ZNK11CApaAppData14NonMbmIconFileEv @ 259 NONAME ABSENT
+	_ZNK11CApaAppData19DefaultScreenNumberEv @ 260 NONAME ABSENT
+	_ZNK11CApaAppData20RegistrationFileUsedEv @ 261 NONAME ABSENT
+	_ZNK13RApaLsSession10GetAppIconE4TUidRP7HBufC16 @ 262 NONAME
+	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RP7HBufC16 @ 263 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsEjj @ 264 NONAME
+	_ZNK13RApaLsSession15GetFilteredAppsEjji @ 265 NONAME
+	_ZNK15CApaAppViewData12IconFileNameEv @ 266 NONAME ABSENT
+	_ZNK15CApaAppViewData14NonMbmIconFileEv @ 267 NONAME ABSENT
+	_ZTI17CApaAppInfoReader @ 268 NONAME ABSENT ; #<TI>#
+	_ZTI19CApaAppInfoReaderV1 @ 269 NONAME ABSENT ; #<TI>#
+	_ZTI19CApaAppInfoReaderV2 @ 270 NONAME ABSENT ; #<TI>#
+	_ZTV17CApaAppInfoReader @ 271 NONAME ABSENT ; #<VT>#
+	_ZTV19CApaAppInfoReaderV1 @ 272 NONAME ABSENT ; #<VT>#
+	_ZTV19CApaAppInfoReaderV2 @ 273 NONAME ABSENT ; #<VT>#
+	_Z16StartupApaServerR14MApaAppStarter @ 274 NONAME ABSENT
+	_Z23StartupApaServerProcessv @ 275 NONAME
+	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType @ 276 NONAME
+	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUid @ 277 NONAME
+	_ZN13RApaLsSession25InsertDataMappingIfHigherERK9TDataTypel4TUidRi @ 278 NONAME
+	_ZNK11CApaAppData19ApplicationLanguageEv @ 279 NONAME ABSENT
+	_ZNK13RApaLsSession19ApplicationLanguageE4TUidR9TLanguage @ 280 NONAME
+	_ZN21CApaSystemControlList4NewLER3RFs @ 281 NONAME
+	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 282 NONAME ABSENT
+	_ZNK11CApaAppList17ServiceUidBufferLE4TUid @ 283 NONAME ABSENT
+	_ZNK11CApaAppList19ServiceArrayBufferLE4TUid @ 284 NONAME ABSENT
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataTypePK4TUidRi @ 285 NONAME ABSENT
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUid @ 286 NONAME ABSENT
+	_ZNK11CApaAppList24ServiceOpaqueDataBufferLE4TUidS0_ @ 287 NONAME ABSENT
+	_ZNK13RApaLsSession13GetServerAppsE4TUid @ 288 NONAME
+	_ZNK13RApaLsSession13GetServerAppsE4TUidi @ 289 NONAME
+	_ZNK13RApaLsSession15GetAppServicesLE4TUidR13CArrayFixFlatIS0_E @ 290 NONAME
+	_ZNK13RApaLsSession16GetAppServicesLCE4TUid @ 291 NONAME
+	_ZNK13RApaLsSession24AppForDataTypeAndServiceERK9TDataType4TUidRS3_ @ 292 NONAME
+	_ZNK13RApaLsSession24AppForDocumentAndServiceERK5RFile4TUidRS3_R9TDataType @ 293 NONAME
+	_ZNK13RApaLsSession24AppForDocumentAndServiceERK7TDesC164TUidRS3_R9TDataType @ 294 NONAME
+	_ZNK13RApaLsSession25GetAppServiceOpaqueDataLCE4TUidS0_ @ 295 NONAME
+	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUid @ 296 NONAME
+	_ZNK18TApaAppServiceInfo10OpaqueDataEv @ 297 NONAME ABSENT
+	_ZNK18TApaAppServiceInfo3UidEv @ 298 NONAME ABSENT
+	_ZTI30CApaAppServiceInfoArrayWrapper @ 299 NONAME ABSENT ; #<TI>#
+	_ZTV30CApaAppServiceInfoArrayWrapper @ 300 NONAME ABSENT ; #<VT>#
+	_ZN13RApaLsSession13StartDocumentER5RFileR9TThreadIdP14TRequestStatus @ 301 NONAME
+	_ZN21CApaAppInfoFileReader27CreateMaskedBitmapByIndexLCEi @ 302 NONAME ABSENT
+	_ZNK13RApaLsSession36CancelListPopulationCompleteObserverEv @ 303 NONAME
+	_ZNK13RApaLsSession38RegisterListPopulationCompleteObserverER14TRequestStatus @ 304 NONAME
+	_ZN8ApaUtils24HandleAsRegistrationFileERK8TUidType @ 305 NONAME ABSENT
+	_ZN13RApaLsSession33RegisterJavaMIDletViaIterimFormatERK7TDesC16R5RFile @ 306 NONAME ABSENT
+	_ZN22ForJavaMIDletInstaller33CheckInterimFormatFileNotCorruptLER5RFile @ 307 NONAME ABSENT
+	_ZN13RApaLsSession20DeregisterJavaMIDletERK7TDesC16 @ 308 NONAME ABSENT
+	_ZN13RApaLsSession13SetFsSessionLER3RFs @ 309 NONAME
+	_ZN13RApaLsSession13StartDocumentER5RFile4TUidR9TThreadIdP14TRequestStatus @ 310 NONAME
+	_ZN13RApaLsSession13StartDocumentER5RFileRK9TDataTypeR9TThreadIdP14TRequestStatus @ 311 NONAME
+	_ZN13RApaLsSession14ClearFsSessionEv @ 312 NONAME
+	_ZN13RApaLsSession9FsSessionEv @ 313 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK5RFileR22TDataRecognitionResult @ 314 NONAME
+	_ZNK13RApaLsSession14AppForDocumentERK5RFileR4TUidR9TDataType @ 315 NONAME
+	_ZNK13RApaLsSession21RecognizeSpecificDataERK5RFileRK9TDataTypeRi @ 316 NONAME
+	_ZNK13RApaLsSession19GetPreferredBufSizeERi @ 317 NONAME
+	_ZN22ForJavaMIDletInstaller18GetJavaMIDletInfoLER3RFsRK7TDesC16RmS5_ @ 318 NONAME ABSENT
+	_ZN22ForJavaMIDletInstaller28NewInterimFormatFileWriterLCER3RFsRK7TDesC164TUidmi @ 319 NONAME ABSENT
+	_ZNK18TApaAppServiceInfo9DataTypesEv @ 320 NONAME ABSENT
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUidRK9TDataType @ 321 NONAME ABSENT
+	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUidRK9TDataType @ 322 NONAME
+	_ZN13RApaLsSession5CloseEv @ 323 NONAME
+	_ZTI22CApaLsSessionExtension @ 324 NONAME ABSENT ; #<TI>#
+	_ZTV22CApaLsSessionExtension @ 325 NONAME ABSENT ; #<VT>#
+	_ZN13RApaLsSession23RApaLsSession_Reserved1Ev @ 326 NONAME
+	_ZN13RApaLsSession23RApaLsSession_Reserved2Ev @ 327 NONAME
+	_ZN18TApaPictureFactoryC1Ev @ 328 NONAME
+	_ZN18TApaPictureFactoryC2Ev @ 329 NONAME
+	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved1Ev @ 330 NONAME
+	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved2Ev @ 331 NONAME
+	_ZN23MApaAppListServObserverC2Ev @ 332 NONAME
+	_ZTI13RApaLsSession @ 333 NONAME ; #<TI>#
+	_ZTI23MApaAppListServObserver @ 334 NONAME ; #<TI>#
+	_ZTV13RApaLsSession @ 335 NONAME ; #<VT>#
+	_ZTV23MApaAppListServObserver @ 336 NONAME ; #<VT>#
+	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArray @ 337 NONAME
+	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArrayR14TRequestStatus @ 338 NONAME
+	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArray @ 339 NONAME
+	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArrayR14TRequestStatus @ 340 NONAME
+	_ZN13RApaLsSession20CancelRecognizeFilesEv @ 341 NONAME
+	_ZN27CDataRecognitionResultArrayC1Ev @ 342 NONAME
+	_ZN27CDataRecognitionResultArrayC2Ev @ 343 NONAME
+	_ZN27CDataRecognitionResultArrayD0Ev @ 344 NONAME
+	_ZN27CDataRecognitionResultArrayD1Ev @ 345 NONAME
+	_ZN27CDataRecognitionResultArrayD2Ev @ 346 NONAME
+	_ZNK27CDataRecognitionResultArray12GetFileNameLER4TBufILi256EEj @ 347 NONAME
+	_ZNK27CDataRecognitionResultArray25GetDataRecognitionResultLER22TDataRecognitionResultj @ 348 NONAME
+	_ZNK27CDataRecognitionResultArray4PathEv @ 349 NONAME
+	_ZNK27CDataRecognitionResultArray5CountEv @ 350 NONAME
+	_ZTI21CAsyncFileRecognition @ 351 NONAME ABSENT ; #<TI>#
+	_ZTI27CDataRecognitionResultArray @ 352 NONAME ; #<TI>#
+	_ZTI32CDataRecognitionResultArrayEntry @ 353 NONAME ABSENT ; #<TI>#
+	_ZTV21CAsyncFileRecognition @ 354 NONAME ABSENT ; #<VT>#
+	_ZTV27CDataRecognitionResultArray @ 355 NONAME ; #<VT>#
+	_ZTV32CDataRecognitionResultArrayEntry @ 356 NONAME ABSENT ; #<VT>#
+	_ZNK13RApaLsSession16GetAppByDataTypeERK9TDataType4TUidRS3_ @ 357 NONAME
+	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType4TUid @ 358 NONAME
+	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUidS3_ @ 359 NONAME
+	_ZN13RApaLsSession29RegisterNonNativeApplicationLE4TUidRK10TDriveUnitR34CApaRegistrationResourceFileWriterP33CApaLocalisableResourceFileWriterPK5RFile @ 360 NONAME
+	_ZN13RApaLsSession31DeregisterNonNativeApplicationLE4TUid @ 361 NONAME
+	_ZN13RApaLsSession33RegisterNonNativeApplicationTypeLE4TUidRK7TDesC16 @ 362 NONAME
+	_ZN13RApaLsSession35DeregisterNonNativeApplicationTypeLE4TUid @ 363 NONAME
+	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadIdP14TRequestStatus @ 364 NONAME
+	_ZNK11CApaAppData10OpaqueDataEv @ 365 NONAME ABSENT
+	_ZNK11CApaAppData20RegistrationFileNameEv @ 366 NONAME ABSENT
+	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 367 NONAME ABSENT
+	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 368 NONAME ABSENT
+	_ZNK13RApaLsSession22GetDefaultScreenNumberERi4TUid @ 369 NONAME
+	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 370 NONAME ABSENT
+	_ZNK13RApaLsSession21MatchesSecurityPolicyERi4TUidRK15TSecurityPolicy @ 371 NONAME
+	_ZN33CApaLocalisableResourceFileWriterD1Ev @ 372 NONAME
+	_ZN33CApaLocalisableResourceFileWriterD2Ev @ 373 NONAME
+	_ZN34CApaRegistrationResourceFileWriter12AddDataTypeLEiRK6TDesC8 @ 374 NONAME
+	_ZN34CApaRegistrationResourceFileWriter13SetGroupNameLERK7TDesC16 @ 375 NONAME
+	_ZN34CApaRegistrationResourceFileWriter14SetOpaqueDataLERK6TDesC8 @ 376 NONAME
+	_ZN34CApaRegistrationResourceFileWriter15SetAppIsHiddenLEi @ 377 NONAME
+	_ZN34CApaRegistrationResourceFileWriter17SetEmbeddabilityLEN17TApaAppCapability14TEmbeddabilityE @ 378 NONAME
+	_ZN34CApaRegistrationResourceFileWriter19SetSupportsNewFileLEi @ 379 NONAME
+	_ZN34CApaRegistrationResourceFileWriter21AddFileOwnershipInfoLERK7TDesC16 @ 380 NONAME
+	_ZN34CApaRegistrationResourceFileWriter22SetLaunchInBackgroundLEi @ 381 NONAME
+	_ZN34CApaRegistrationResourceFileWriter23SetDefaultScreenNumberLEi @ 382 NONAME
+	_ZN34CApaRegistrationResourceFileWriter4NewLE4TUidRK7TDesC16j @ 383 NONAME
+	_ZN34CApaRegistrationResourceFileWriterD0Ev @ 384 NONAME
+	_ZN34CApaRegistrationResourceFileWriterD1Ev @ 385 NONAME
+	_ZN34CApaRegistrationResourceFileWriterD2Ev @ 386 NONAME
+	_ZNK11CApaAppData24NonNativeApplicationTypeEv @ 387 NONAME ABSENT
+	_ZTI33CApaLocalisableResourceFileWriter @ 388 NONAME ; #<TI>#
+	_ZTI34CApaRegistrationResourceFileWriter @ 389 NONAME ; #<TI>#
+	_ZTIN26CApaResourceFileWriterBase11RBufferSinkE @ 390 NONAME ; #<TI>#
+	_ZTV33CApaLocalisableResourceFileWriter @ 391 NONAME ; #<VT>#
+	_ZTV34CApaRegistrationResourceFileWriter @ 392 NONAME ; #<VT>#
+	_ZTVN26CApaResourceFileWriterBase11RBufferSinkE @ 393 NONAME ; #<VT>#
+	_ZN33CApaLocalisableResourceFileWriter4NewLERK7TDesC16S2_iS2_ @ 394 NONAME
+	_ZN33CApaLocalisableResourceFileWriterD0Ev @ 395 NONAME
+	_ZN13RApaLsSession12CancelNotifyEv @ 396 NONAME
+	_ZN13RApaLsSession9SetNotifyEiR14TRequestStatus @ 397 NONAME
+	_ZNK11CApaAppList17AppScanInProgressEv @ 398 NONAME ABSENT
+	_ZN13RApaLsSession25NotifyOnDataMappingChangeER14TRequestStatus @ 399 NONAME
+	_ZN13RApaLsSession31CancelNotifyOnDataMappingChangeEv @ 400 NONAME
+	_ZNK13RApaLsSession10GetAppTypeER4TUidS0_ @ 401 NONAME
+	_ZN13RApaLsSession35CommitNonNativeApplicationsUpdatesLEv @ 402 NONAME
+	_ZN13RApaLsSession36PrepareNonNativeApplicationsUpdatesLEv @ 403 NONAME
+	_ZN13RApaLsSession36RollbackNonNativeApplicationsUpdatesEv @ 404 NONAME
+	_ZN11CApaAppList15UpdatedAppsListEv @ 405 NONAME ABSENT
+	_ZN11CApaAppList18SetUpdatedAppsListEP16CUpdatedAppsList @ 406 NONAME ABSENT
+	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 407 NONAME ABSENT
+	_ZN11CApaAppDataD0Ev @ 408 NONAME ABSENT
+	_ZN11CApaAppDataD1Ev @ 409 NONAME ABSENT
+	_ZN11CApaAppDataD2Ev @ 410 NONAME ABSENT
+	_ZN11CApaAppList24ShareProtectedFileServerEv @ 411 NONAME ABSENT
+	_ZN11CApaAppList4SelfEv @ 412 NONAME ABSENT
+	X @ 413 NONAME ABSENT
+	X @ 414 NONAME ABSENT
+	X @ 415 NONAME ABSENT
+	X @ 416 NONAME ABSENT
+	_ZN13RApaLsSession18SetAppShortCaptionERK7TDesC169TLanguage4TUid @ 417 NONAME
+	_ZN11CApaAppData16SetShortCaptionLERK7TDesC16 @ 418 NONAME ABSENT
+	_ZN11CApaAppList14CompareStringsERK7HBufC16S2_ @ 419 NONAME ABSENT
+	_ZN11CApaAppList22AddForcedRegistrationLEP7HBufC16 @ 420 NONAME ABSENT
+	_ZN13RApaLsSession17ForceRegistrationERK13RPointerArrayI7TDesC16E @ 421 NONAME
+	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 422 NONAME ABSENT
+	_ZN11CApaAppList12RestartScanLEv @ 423 NONAME ABSENT
+	_ZN11CApaAppList8StopScanEv @ 424 NONAME ABSENT
+	KMinApplicationStackSize @ 425 NONAME DATA 4
+	_Z23MinApplicationStackSizev @ 426 NONAME
+	_ZNK11CApaAppData9IsPendingEv @ 427 NONAME ABSENT
+	_ZNK11CApaAppList23IsLanguageChangePendingEv @ 428 NONAME ABSENT
+	_ZNK13RApaLsSession10GetAppIconE4TUidR5RFile @ 429 NONAME
+	_ZN17CApaSecurityUtils16CheckAppSecurityERK7TPtrC16RiS3_ @ 430 NONAME
+	X @ 431 NONAME ABSENT
+	X @ 432 NONAME ABSENT
+	_ZN13RApaLsSession40ForceCommitNonNativeApplicationsUpdatesLEv @ 433 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK6TDesC8R22TDataRecognitionResult @ 434 NONAME
--- a/localisation/apparchitecture/eabi/APGRFX_9_REMOVE_UI_FRAMEWORKS_V1U.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,338 +0,0 @@
-EXPORTS
-	_ZN11CApaAppData11GetIconInfoERiS0_ @ 1 NONAME
-	_ZN11CApaAppData16CanUseScreenModeEi @ 2 NONAME
-	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 3 NONAME
-	_ZN11CApaAppList16StartIdleUpdateLEv @ 4 NONAME
-	_ZN11CApaAppList4NewLER3RFsP13CApaAppFinder @ 5 NONAME
-	_ZN11CApaAppList6PurgeLEv @ 6 NONAME
-	_ZN11CApaAppList7UpdateLEv @ 7 NONAME
-	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 8 NONAME
-	_ZN11CApaAppListD0Ev @ 9 NONAME
-	_ZN11CApaAppListD1Ev @ 10 NONAME
-	_ZN11CApaAppListD2Ev @ 11 NONAME
-	_ZN12TApaTaskList10CycleTasksE4TUidNS_15TCycleDirectionE @ 12 NONAME
-	_ZN12TApaTaskList7FindAppE4TUid @ 13 NONAME
-	_ZN12TApaTaskList7FindAppERK7TDesC16 @ 14 NONAME
-	_ZN12TApaTaskList7FindDocERK7TDesC16 @ 15 NONAME
-	_ZN12TApaTaskList9FindByPosEi @ 16 NONAME
-	_ZN12TApaTaskListC1ER10RWsSession @ 17 NONAME
-	_ZN12TApaTaskListC2ER10RWsSession @ 18 NONAME
-	_ZN13RApaLsSession13StartDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 19 NONAME
-	_ZN13RApaLsSession13StartDocumentERK7TDesC16R9TThreadIdNS_11TLaunchTypeE @ 20 NONAME
-	_ZN13RApaLsSession13StartDocumentERK7TDesC16RK9TDataTypeR9TThreadIdNS_11TLaunchTypeE @ 21 NONAME
-	_ZN13RApaLsSession14CreateDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 22 NONAME
-	_ZN13RApaLsSession17SetMaxDataBufSizeEi @ 23 NONAME
-	_ZN13RApaLsSession21SetAcceptedConfidenceEi @ 24 NONAME
-	_ZN13RApaLsSession7ConnectEv @ 25 NONAME
-	_ZN13RApaLsSession8StartAppERK15CApaCommandLine @ 26 NONAME
-	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadId @ 27 NONAME
-	_ZN13RApaLsSessionC1Ev @ 28 NONAME
-	_ZN13RApaLsSessionC2Ev @ 29 NONAME
-	_ZN16AppInfoFileUtils14GetAifFileNameERK3RFsR6TDes16 @ 30 NONAME ABSENT
-	_ZN16CApaMaskedBitmap12InternalizeLER11RReadStream @ 31 NONAME
-	_ZN16CApaMaskedBitmap13SetMaskBitmapEP10CFbsBitmap @ 32 NONAME
-	_ZN16CApaMaskedBitmap4NewLEPS_ @ 33 NONAME
-	_ZN16CApaMaskedBitmap5NewLCEv @ 34 NONAME
-	_ZN16CApaMaskedBitmapD0Ev @ 35 NONAME
-	_ZN16CApaMaskedBitmapD1Ev @ 36 NONAME
-	_ZN16CApaMaskedBitmapD2Ev @ 37 NONAME
-	_ZN17CApaSystemControl7CreateLEv @ 38 NONAME
-	_ZN18TApaPictureFactoryC1EP11CApaProcess @ 39 NONAME
-	_ZN18TApaPictureFactoryC2EP11CApaProcess @ 40 NONAME
-	_ZN19CApaAppListNotifier4NewLEP23MApaAppListServObserverN7CActive9TPriorityE @ 41 NONAME
-	_ZN19CApaAppListNotifierD0Ev @ 42 NONAME
-	_ZN19CApaAppListNotifierD1Ev @ 43 NONAME
-	_ZN19CApaAppListNotifierD2Ev @ 44 NONAME
-	_ZN19CApaWindowGroupName11SetAppReadyEi @ 45 NONAME
-	_ZN19CApaWindowGroupName11SetCaptionLERK7TDesC16 @ 46 NONAME
-	_ZN19CApaWindowGroupName11SetDocNameLERK7TDesC16 @ 47 NONAME
-	_ZN19CApaWindowGroupName12FindByAppUidE4TUidR10RWsSessionRi @ 48 NONAME
-	_ZN19CApaWindowGroupName13FindByCaptionERK7TDesC16R10RWsSessionRi @ 49 NONAME
-	_ZN19CApaWindowGroupName13FindByDocNameERK7TDesC16R10RWsSessionRi @ 50 NONAME
-	_ZN19CApaWindowGroupName17SetDocNameIsAFileEi @ 51 NONAME
-	_ZN19CApaWindowGroupName18ConstructFromWgIdLEi @ 52 NONAME
-	_ZN19CApaWindowGroupName18SetWindowGroupNameEP7HBufC16 @ 53 NONAME
-	_ZN19CApaWindowGroupName19SetWindowGroupNameLERK7TDesC16 @ 54 NONAME
-	_ZN19CApaWindowGroupName26SetRespondsToShutdownEventEi @ 55 NONAME
-	_ZN19CApaWindowGroupName29SetRespondsToSwitchFilesEventEi @ 56 NONAME
-	_ZN19CApaWindowGroupName3NewERK10RWsSessionP7HBufC16 @ 57 NONAME
-	_ZN19CApaWindowGroupName4NewLERK10RWsSession @ 58 NONAME
-	_ZN19CApaWindowGroupName4NewLERK10RWsSessionRK7TDesC16 @ 59 NONAME
-	_ZN19CApaWindowGroupName4NewLERK10RWsSessioni @ 60 NONAME
-	_ZN19CApaWindowGroupName5NewLCERK10RWsSession @ 61 NONAME
-	_ZN19CApaWindowGroupName5NewLCERK10RWsSessionRK7TDesC16 @ 62 NONAME
-	_ZN19CApaWindowGroupName5NewLCERK10RWsSessioni @ 63 NONAME
-	_ZN19CApaWindowGroupName6HiddenEv @ 64 NONAME
-	_ZN19CApaWindowGroupName7SetBusyEi @ 65 NONAME
-	_ZN19CApaWindowGroupName9SetAppUidE4TUid @ 66 NONAME
-	_ZN19CApaWindowGroupName9SetHiddenEi @ 67 NONAME
-	_ZN19CApaWindowGroupName9SetSystemEi @ 68 NONAME
-	_ZN19CApaWindowGroupNameD0Ev @ 69 NONAME
-	_ZN19CApaWindowGroupNameD1Ev @ 70 NONAME
-	_ZN19CApaWindowGroupNameD2Ev @ 71 NONAME
-	_ZN21CApaAppInfoFileReader12StretchDrawLEP10CFbsBitmapS1_5TSize @ 72 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader19CreateMaskedBitmapLEi @ 73 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader4NewLER3RFsRK7TDesC164TUid @ 74 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader5NewLCER3RFsRK7TDesC164TUid @ 75 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader8CaptionLE9TLanguage @ 76 NONAME ABSENT
-	_ZN21CApaAppInfoFileReaderD0Ev @ 77 NONAME ABSENT
-	_ZN21CApaAppInfoFileReaderD1Ev @ 78 NONAME ABSENT
-	_ZN21CApaAppInfoFileReaderD2Ev @ 79 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter10StoreViewLE4TUid @ 80 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter11AddCaptionLE9TLanguageRK7TDesC16 @ 81 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter12AddDataTypeLERK21TDataTypeWithPriority @ 82 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter12AddViewIconLER16CApaMaskedBitmap4TUid @ 83 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter13AddOwnedFileLERK7TDesC16 @ 84 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter13SetCapabilityERK6TDesC8 @ 85 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter15AddViewCaptionLE9TLanguageRK7TDesC164TUid @ 86 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter5NewLCER3RFsRK7TDesC164TUid @ 87 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter6StoreLEv @ 88 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter8AddIconLER16CApaMaskedBitmap @ 89 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter8AddIconLERK7TDesC16 @ 90 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter8AddViewLE4TUid @ 91 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter8AddViewLE4TUidi @ 92 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriterD0Ev @ 93 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriterD1Ev @ 94 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriterD2Ev @ 95 NONAME ABSENT
-	_ZN21CApaSystemControlList4NewLER3RFsR13CApaAppFinderRK7TDesC16 @ 96 NONAME ABSENT
-	_ZN21CApaSystemControlList7UpdateLEv @ 97 NONAME
-	_ZN21CApaSystemControlListD0Ev @ 98 NONAME
-	_ZN21CApaSystemControlListD1Ev @ 99 NONAME
-	_ZN21CApaSystemControlListD2Ev @ 100 NONAME
-	_ZN8CApaDoor16SetFormatToIconLEv @ 101 NONAME
-	_ZN8CApaDoor17SetFormatToGlassLEv @ 102 NONAME
-	_ZN8CApaDoor25SetFormatToTemporaryIconLEi @ 103 NONAME
-	_ZN8CApaDoor4NewLER3RFsR12CApaDocumentRK5TSize @ 104 NONAME
-	_ZN8CApaDoor4NewLER3RFsRK12CStreamStore9TStreamIdR11CApaProcess @ 105 NONAME
-	_ZN8CApaDoor5NewLCER3RFsR12CApaDocumentRK5TSize @ 106 NONAME
-	_ZN8CApaDoor8RestoreLERK12CStreamStore9TStreamId @ 107 NONAME
-	_ZN8CApaDoor9DocumentLEi @ 108 NONAME
-	_ZN8CApaDoorD0Ev @ 109 NONAME
-	_ZN8CApaDoorD1Ev @ 110 NONAME
-	_ZN8CApaDoorD2Ev @ 111 NONAME
-	_ZN8TApaTask11SendMessageE4TUidRK6TDesC8 @ 112 NONAME
-	_ZN8TApaTask14SwitchOpenFileERK7TDesC16 @ 113 NONAME
-	_ZN8TApaTask15SendSystemEventE15TApaSystemEvent @ 114 NONAME
-	_ZN8TApaTask16SendToBackgroundEv @ 115 NONAME
-	_ZN8TApaTask16SwitchCreateFileERK7TDesC16 @ 116 NONAME
-	_ZN8TApaTask17BringToForegroundEv @ 117 NONAME
-	_ZN8TApaTask7EndTaskEv @ 118 NONAME
-	_ZN8TApaTask7SendKeyERK9TKeyEvent @ 119 NONAME
-	_ZN8TApaTask7SendKeyEii @ 120 NONAME
-	_ZN8TApaTask7SetWgIdEi @ 121 NONAME
-	_ZN8TApaTask8KillTaskEv @ 122 NONAME
-	_ZN8TApaTaskC1ER10RWsSession @ 123 NONAME
-	_ZN8TApaTaskC2ER10RWsSession @ 124 NONAME
-	_ZNK11CApaAppData10CapabilityER5TDes8 @ 125 NONAME
-	_ZNK11CApaAppData10IconSizesLEv @ 126 NONAME
-	_ZNK11CApaAppData10OwnedFilesEv @ 127 NONAME
-	_ZNK11CApaAppData4IconE5TSize @ 128 NONAME
-	_ZNK11CApaAppData4IconEi @ 129 NONAME
-	_ZNK11CApaAppData5ViewsEv @ 130 NONAME
-	_ZNK11CApaAppData8AppEntryEv @ 131 NONAME
-	_ZNK11CApaAppData8DataTypeERK9TDataType @ 132 NONAME
-	_ZNK11CApaAppList12AppDataByUidE4TUid @ 133 NONAME
-	_ZNK11CApaAppList13UpdateCounterEv @ 134 NONAME
-	_ZNK11CApaAppList19IsFirstScanCompleteEv @ 135 NONAME
-	_ZNK11CApaAppList20IsIdleUpdateCompleteEv @ 136 NONAME
-	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataType @ 137 NONAME
-	_ZNK11CApaAppList5CountEv @ 138 NONAME
-	_ZNK11CApaAppList7NextAppEPK11CApaAppData @ 139 NONAME
-	_ZNK11CApaAppList7NextAppEPK11CApaAppDatai @ 140 NONAME
-	_ZNK11CApaAppList8FirstAppEi @ 141 NONAME
-	_ZNK11CApaAppList8FirstAppEv @ 142 NONAME
-	_ZNK13RApaLsSession10GetAllAppsEi @ 143 NONAME
-	_ZNK13RApaLsSession10GetAllAppsEv @ 144 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUid5TSizeR16CApaMaskedBitmap @ 145 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUidiR16CApaMaskedBitmap @ 146 NONAME
-	_ZNK13RApaLsSession10GetAppInfoER11TApaAppInfo4TUid @ 147 NONAME
-	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfo @ 148 NONAME
-	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfoi @ 149 NONAME
-	_ZNK13RApaLsSession11GetAppViewsER13CArrayFixFlatI15TApaAppViewInfoE4TUid @ 150 NONAME
-	_ZNK13RApaLsSession13RecognizeDataERK7TDesC16RK6TDesC8R22TDataRecognitionResult @ 151 NONAME
-	_ZNK13RApaLsSession14AppForDataTypeERK9TDataTypeR4TUid @ 152 NONAME
-	_ZNK13RApaLsSession14AppForDocumentERK7TDesC16R4TUidR9TDataType @ 153 NONAME
-	_ZNK13RApaLsSession14GetAppInfo_7_0ER15TApaAppInfo_7_04TUid @ 154 NONAME ABSENT
-	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RK5TSizeR16CApaMaskedBitmap @ 155 NONAME
-	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0 @ 156 NONAME ABSENT
-	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0i @ 157 NONAME ABSENT
-	_ZNK13RApaLsSession15GetAppIconSizesE4TUidR13CArrayFixFlatI5TSizeE @ 158 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilter @ 159 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilteri @ 160 NONAME
-	_ZNK13RApaLsSession16GetAppCapabilityER5TDes84TUid @ 161 NONAME
-	_ZNK13RApaLsSession16GetAppOwnedFilesER12CDesC16Array4TUid @ 162 NONAME
-	_ZNK13RApaLsSession17GetEmbeddableAppsEi @ 163 NONAME
-	_ZNK13RApaLsSession17GetEmbeddableAppsEv @ 164 NONAME
-	_ZNK13RApaLsSession17GetMaxDataBufSizeERi @ 165 NONAME
-	_ZNK13RApaLsSession18EmbeddableAppCountERi @ 166 NONAME
-	_ZNK13RApaLsSession21GetAcceptedConfidenceERi @ 167 NONAME
-	_ZNK13RApaLsSession21RecognizeSpecificDataERK7TDesC16RK6TDesC8RK9TDataTypeRi @ 168 NONAME
-	_ZNK13RApaLsSession22GetSupportedDataTypesLER13CArrayFixFlatI9TDataTypeE @ 169 NONAME
-	_ZNK13RApaLsSession23NumberOfOwnDefinedIconsE4TUidRi @ 170 NONAME
-	_ZNK13RApaLsSession7VersionEv @ 171 NONAME
-	_ZNK13RApaLsSession8AppCountERi @ 172 NONAME
-	_ZNK13RApaLsSession9IsProgramERK7TDesC16Ri @ 173 NONAME
-	_ZNK15CApaAIFViewData10ScreenModeEv @ 174 NONAME ABSENT
-	_ZNK15CApaAIFViewData12IconByIndexLEi @ 175 NONAME ABSENT
-	_ZNK15CApaAIFViewData13NumberOfIconsEv @ 176 NONAME ABSENT
-	_ZNK15CApaAIFViewData7ViewUidEv @ 177 NONAME ABSENT
-	_ZNK15CApaAIFViewData8CaptionLE9TLanguage @ 178 NONAME ABSENT
-	_ZNK15CApaAppViewData10IconSizesLEv @ 179 NONAME
-	_ZNK15CApaAppViewData10ScreenModeEv @ 180 NONAME
-	_ZNK15CApaAppViewData3UidEv @ 181 NONAME
-	_ZNK15CApaAppViewData4IconERK5TSize @ 182 NONAME
-	_ZNK16CApaMaskedBitmap12ExternalizeLER12RWriteStream @ 183 NONAME
-	_ZNK16CApaMaskedBitmap4MaskEv @ 184 NONAME
-	_ZNK17CApaSystemControl12ShortCaptionEv @ 185 NONAME
-	_ZNK17CApaSystemControl4IconEv @ 186 NONAME
-	_ZNK17CApaSystemControl4TypeEv @ 187 NONAME
-	_ZNK17CApaSystemControl7CaptionEv @ 188 NONAME
-	_ZNK17CApaSystemControl8FileNameEv @ 189 NONAME
-	_ZNK18TApaPictureFactory11NewPictureLER14TPictureHeaderRK12CStreamStore @ 190 NONAME
-	_ZNK19CApaWindowGroupName10IsAppReadyEv @ 191 NONAME
-	_ZNK19CApaWindowGroupName14DocNameIsAFileEv @ 192 NONAME
-	_ZNK19CApaWindowGroupName15WindowGroupNameEv @ 193 NONAME
-	_ZNK19CApaWindowGroupName18SetWindowGroupNameER12RWindowGroup @ 194 NONAME
-	_ZNK19CApaWindowGroupName23RespondsToShutdownEventEv @ 195 NONAME
-	_ZNK19CApaWindowGroupName26RespondsToSwitchFilesEventEv @ 196 NONAME
-	_ZNK19CApaWindowGroupName6AppUidEv @ 197 NONAME
-	_ZNK19CApaWindowGroupName6IsBusyEv @ 198 NONAME
-	_ZNK19CApaWindowGroupName7CaptionEv @ 199 NONAME
-	_ZNK19CApaWindowGroupName7DocNameEv @ 200 NONAME
-	_ZNK19CApaWindowGroupName8IsSystemEv @ 201 NONAME
-	_ZNK21CApaAppInfoFileReader10CapabilityER5TDes8 @ 202 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader14GetOwnedFilesLER12CDesC16Array @ 203 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader15NumberOfBitmapsEv @ 204 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader19DataTypesSupportedLER9CArrayFixI21TDataTypeWithPriorityE @ 205 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader9GetViewsLER9CArrayPtrI15CApaAIFViewDataE @ 206 NONAME ABSENT
-	_ZNK21CApaSystemControlList5CountEv @ 207 NONAME
-	_ZNK21CApaSystemControlList5IndexE4TUid @ 208 NONAME
-	_ZNK21CApaSystemControlList7ControlE4TUid @ 209 NONAME
-	_ZNK21CApaSystemControlList7ControlEi @ 210 NONAME
-	_ZNK8CApaDoor7AppUidLEv @ 211 NONAME
-	_ZNK8TApaTask4WgIdEv @ 212 NONAME
-	_ZNK8TApaTask6ExistsEv @ 213 NONAME
-	_ZNK8TApaTask8ThreadIdEv @ 214 NONAME
-	_ZTI18TApaPictureFactory @ 215 NONAME ; #<TI>#
-	_ZTV18TApaPictureFactory @ 216 NONAME ; #<VT>#
-	_ZTI11CApaAppData @ 217 NONAME ; #<TI>#
-	_ZTI11CApaAppList @ 218 NONAME ; #<TI>#
-	_ZTI12CApaAppEntry @ 219 NONAME ; #<TI>#
-	_ZTI14CApaAIFCaption @ 220 NONAME ABSENT ; #<TI>#
-	_ZTI15CApaAIFViewData @ 221 NONAME ABSENT ; #<TI>#
-	_ZTI15CApaAppInfoFile @ 222 NONAME ABSENT ; #<TI>#
-	_ZTI15CApaAppViewData @ 223 NONAME ; #<TI>#
-	_ZTI15CApaIconPicture @ 224 NONAME ; #<TI>#
-	_ZTI16CApaMaskedBitmap @ 225 NONAME ; #<TI>#
-	_ZTI16TDesCArrayFiller @ 226 NONAME ; #<TI>#
-	_ZTI16TSizeArrayFiller @ 227 NONAME ; #<TI>#
-	_ZTI17CApaSystemControl @ 228 NONAME ; #<TI>#
-	_ZTI19CApaAppListNotifier @ 229 NONAME ; #<TI>#
-	_ZTI19CApaWindowGroupName @ 230 NONAME ; #<TI>#
-	_ZTI20TViewDataArrayFiller @ 231 NONAME ; #<TI>#
-	_ZTI21CApaAppInfoFileReader @ 232 NONAME ABSENT ; #<TI>#
-	_ZTI21CApaAppInfoFileWriter @ 233 NONAME ABSENT ; #<TI>#
-	_ZTI21CApaSystemControlList @ 234 NONAME ; #<TI>#
-	_ZTI7HBufBuf @ 235 NONAME ; #<TI>#
-	_ZTI8CApaDoor @ 236 NONAME ; #<TI>#
-	_ZTV11CApaAppData @ 237 NONAME ; #<VT>#
-	_ZTV11CApaAppList @ 238 NONAME ; #<VT>#
-	_ZTV12CApaAppEntry @ 239 NONAME ; #<VT>#
-	_ZTV14CApaAIFCaption @ 240 NONAME ABSENT ; #<VT>#
-	_ZTV15CApaAIFViewData @ 241 NONAME ABSENT ; #<VT>#
-	_ZTV15CApaAppInfoFile @ 242 NONAME ABSENT ; #<VT>#
-	_ZTV15CApaAppViewData @ 243 NONAME ; #<VT>#
-	_ZTV15CApaIconPicture @ 244 NONAME ; #<VT>#
-	_ZTV16CApaMaskedBitmap @ 245 NONAME ; #<VT>#
-	_ZTV16TDesCArrayFiller @ 246 NONAME ; #<VT>#
-	_ZTV16TSizeArrayFiller @ 247 NONAME ; #<VT>#
-	_ZTV17CApaSystemControl @ 248 NONAME ; #<VT>#
-	_ZTV19CApaAppListNotifier @ 249 NONAME ; #<VT>#
-	_ZTV19CApaWindowGroupName @ 250 NONAME ; #<VT>#
-	_ZTV20TViewDataArrayFiller @ 251 NONAME ; #<VT>#
-	_ZTV21CApaAppInfoFileReader @ 252 NONAME ABSENT ; #<VT>#
-	_ZTV21CApaAppInfoFileWriter @ 253 NONAME ABSENT ; #<VT>#
-	_ZTV21CApaSystemControlList @ 254 NONAME ; #<VT>#
-	_ZTV7HBufBuf @ 255 NONAME ; #<VT>#
-	_ZTV8CApaDoor @ 256 NONAME ; #<VT>#
-	_ZN11CApaAppList4NewLER3RFsP13CApaAppFinderP16CApaAppRegFinder @ 257 NONAME
-	_ZNK11CApaAppData12IconFileNameEv @ 258 NONAME
-	_ZNK11CApaAppData14NonMbmIconFileEv @ 259 NONAME
-	_ZNK11CApaAppData19DefaultScreenNumberEv @ 260 NONAME
-	_ZNK11CApaAppData20RegistrationFileUsedEv @ 261 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUidRP7HBufC16 @ 262 NONAME
-	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RP7HBufC16 @ 263 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsEjj @ 264 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsEjji @ 265 NONAME
-	_ZNK15CApaAppViewData12IconFileNameEv @ 266 NONAME
-	_ZNK15CApaAppViewData14NonMbmIconFileEv @ 267 NONAME
-	_ZTI17CApaAppInfoReader @ 268 NONAME ; #<TI>#
-	_ZTI19CApaAppInfoReaderV1 @ 269 NONAME ABSENT ; #<TI>#
-	_ZTI19CApaAppInfoReaderV2 @ 270 NONAME ; #<TI>#
-	_ZTV17CApaAppInfoReader @ 271 NONAME ; #<VT>#
-	_ZTV19CApaAppInfoReaderV1 @ 272 NONAME ABSENT ; #<VT>#
-	_ZTV19CApaAppInfoReaderV2 @ 273 NONAME ; #<VT>#
-	_Z16StartupApaServerR14MApaAppStarter @ 274 NONAME
-	_Z23StartupApaServerProcessv @ 275 NONAME
-	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType @ 276 NONAME
-	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypes4TUid @ 277 NONAME
-	_ZN13RApaLsSession25InsertDataMappingIfHigherERK9TDataTypes4TUidRi @ 278 NONAME
-	_ZNK11CApaAppData19ApplicationLanguageEv @ 279 NONAME
-	_ZNK13RApaLsSession19ApplicationLanguageE4TUidR9TLanguage @ 280 NONAME
-	_ZN21CApaSystemControlList4NewLER3RFs @ 281 NONAME
-	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 282 NONAME
-	_ZNK11CApaAppList17ServiceUidBufferLE4TUid @ 283 NONAME
-	_ZNK11CApaAppList19ServiceArrayBufferLE4TUid @ 284 NONAME
-	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataTypePK4TUid @ 285 NONAME
-	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUid @ 286 NONAME
-	_ZNK11CApaAppList24ServiceOpaqueDataBufferLE4TUidS0_ @ 287 NONAME
-	_ZNK13RApaLsSession13GetServerAppsE4TUid @ 288 NONAME
-	_ZNK13RApaLsSession13GetServerAppsE4TUidi @ 289 NONAME
-	_ZNK13RApaLsSession15GetAppServicesLE4TUidR13CArrayFixFlatIS0_E @ 290 NONAME
-	_ZNK13RApaLsSession16GetAppServicesLCE4TUid @ 291 NONAME
-	_ZNK13RApaLsSession24AppForDataTypeAndServiceERK9TDataType4TUidRS3_ @ 292 NONAME
-	_ZNK13RApaLsSession24AppForDocumentAndServiceER5RFile4TUidRS2_R9TDataType @ 293 NONAME
-	_ZNK13RApaLsSession24AppForDocumentAndServiceERK7TDesC164TUidRS3_R9TDataType @ 294 NONAME
-	_ZNK13RApaLsSession25GetAppServiceOpaqueDataLCE4TUidS0_ @ 295 NONAME
-	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUid @ 296 NONAME
-	_ZNK18TApaAppServiceInfo10OpaqueDataEv @ 297 NONAME
-	_ZNK18TApaAppServiceInfo3UidEv @ 298 NONAME
-	_ZTI30CApaAppServiceInfoArrayWrapper @ 299 NONAME ; #<TI>#
-	_ZTV30CApaAppServiceInfoArrayWrapper @ 300 NONAME ; #<VT>#
-	_ZN13RApaLsSession13StartDocumentER5RFileR9TThreadIdP14TRequestStatus @ 301 NONAME
-	_ZN21CApaAppInfoFileReader27CreateMaskedBitmapByIndexLCEi @ 302 NONAME ABSENT
-	_ZNK13RApaLsSession36CancelListPopulationCompleteObserverEv @ 303 NONAME
-	_ZNK13RApaLsSession38RegisterListPopulationCompleteObserverER14TRequestStatus @ 304 NONAME
-	_ZN8ApaUtils24HandleAsRegistrationFileERK8TUidType @ 305 NONAME
-	_ZN13RApaLsSession33RegisterJavaMIDletViaIterimFormatERK7TDesC16R5RFile @ 306 NONAME ABSENT
-	_ZN22ForJavaMIDletInstaller33CheckInterimFormatFileNotCorruptLER5RFile @ 307 NONAME ABSENT
-	_ZN13RApaLsSession20DeregisterJavaMIDletERK7TDesC16 @ 308 NONAME ABSENT
-	_ZN13RApaLsSession13SetFsSessionLER3RFs @ 309 NONAME
-	_ZN13RApaLsSession13StartDocumentER5RFile4TUidR9TThreadIdP14TRequestStatus @ 310 NONAME
-	_ZN13RApaLsSession13StartDocumentER5RFileRK9TDataTypeR9TThreadIdP14TRequestStatus @ 311 NONAME
-	_ZN13RApaLsSession14ClearFsSessionEv @ 312 NONAME
-	_ZN13RApaLsSession9FsSessionEv @ 313 NONAME
-	_ZNK13RApaLsSession13RecognizeDataER5RFileR22TDataRecognitionResult @ 314 NONAME
-	_ZNK13RApaLsSession14AppForDocumentER5RFileR4TUidR9TDataType @ 315 NONAME
-	_ZNK13RApaLsSession21RecognizeSpecificDataER5RFileRK9TDataTypeRi @ 316 NONAME
-	_ZNK13RApaLsSession19GetPreferredBufSizeERi @ 317 NONAME
-	_ZN22ForJavaMIDletInstaller18GetJavaMIDletInfoLER3RFsRK7TDesC16RmS5_ @ 318 NONAME ABSENT
-	_ZN22ForJavaMIDletInstaller28NewInterimFormatFileWriterLCER3RFsRK7TDesC164TUidmi @ 319 NONAME ABSENT
-	_ZNK18TApaAppServiceInfo9DataTypesEv @ 320 NONAME
-	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUidRK9TDataType @ 321 NONAME
-	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUidRK9TDataType @ 322 NONAME
-	_ZN13RApaLsSession5CloseEv @ 323 NONAME
-	_ZTI22CApaLsSessionExtension @ 324 NONAME ; #<TI>#
-	_ZTV22CApaLsSessionExtension @ 325 NONAME ; #<VT>#
-	_ZN13RApaLsSession28RegisterNonNativeApplicationE4TUidR5RFilePS1_S3_ @ 326 NONAME
-	_ZN13RApaLsSession30DeregisterNonNativeApplicationE4TUid @ 327 NONAME
-	_ZN13RApaLsSession32RegisterNonNativeApplicationTypeE4TUidRK7TDesC16 @ 328 NONAME
-	_ZN13RApaLsSession34DeregisterNonNativeApplicationTypeE4TUid @ 329 NONAME
-	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadIdP14TRequestStatus @ 330 NONAME
-	_ZNK11CApaAppData10OpaqueDataEv @ 331 NONAME
-	_ZNK11CApaAppData20RegistrationFileNameEv @ 332 NONAME
-	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 333 NONAME
-	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 334 NONAME
-	_ZN13RApaLsSession18SetAppShortCaptionERK7TDesC169TLanguage4TUid @ 335 NONAME
-	_ZN17CApaSecurityUtils16CheckAppSecurityERK7TPtrC16RiS3_ @ 336 NONAME
-
--- a/localisation/apparchitecture/eabi/APGRFX_9_REMOVE_UI_FRAMEWORKS_V1_EXCEPT_REMNANT_FOR_JAVA_MIDLET_INSTALLERU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,429 +0,0 @@
-EXPORTS
-	_ZNK11CApaAppData11GetIconInfoERiS0_ @ 1 NONAME
-	_ZN11CApaAppData16CanUseScreenModeEi @ 2 NONAME
-	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 3 NONAME
-	_ZN11CApaAppList16StartIdleUpdateLEv @ 4 NONAME
-	_ZN11CApaAppList4NewLER3RFsP16CApaAppRegFinderi @ 5 NONAME
-	_ZN11CApaAppList6PurgeLEv @ 6 NONAME
-	_ZN11CApaAppList7UpdateLEv @ 7 NONAME ABSENT
-	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 8 NONAME
-	_ZN11CApaAppListD0Ev @ 9 NONAME
-	_ZN11CApaAppListD1Ev @ 10 NONAME
-	_ZN11CApaAppListD2Ev @ 11 NONAME
-	_ZN12TApaTaskList10CycleTasksE4TUidNS_15TCycleDirectionE @ 12 NONAME
-	_ZN12TApaTaskList7FindAppE4TUid @ 13 NONAME
-	_ZN12TApaTaskList7FindAppERK7TDesC16 @ 14 NONAME
-	_ZN12TApaTaskList7FindDocERK7TDesC16 @ 15 NONAME
-	_ZN12TApaTaskList9FindByPosEi @ 16 NONAME
-	_ZN12TApaTaskListC1ER10RWsSession @ 17 NONAME
-	_ZN12TApaTaskListC2ER10RWsSession @ 18 NONAME
-	_ZN13RApaLsSession13StartDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 19 NONAME
-	_ZN13RApaLsSession13StartDocumentERK7TDesC16R9TThreadIdNS_11TLaunchTypeE @ 20 NONAME
-	_ZN13RApaLsSession13StartDocumentERK7TDesC16RK9TDataTypeR9TThreadIdNS_11TLaunchTypeE @ 21 NONAME
-	_ZN13RApaLsSession14CreateDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 22 NONAME
-	_ZN13RApaLsSession17SetMaxDataBufSizeEi @ 23 NONAME
-	_ZN13RApaLsSession21SetAcceptedConfidenceEi @ 24 NONAME
-	_ZN13RApaLsSession7ConnectEv @ 25 NONAME
-	_ZN13RApaLsSession8StartAppERK15CApaCommandLine @ 26 NONAME
-	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadId @ 27 NONAME
-	_ZN13RApaLsSessionC1Ev @ 28 NONAME
-	_ZN13RApaLsSessionC2Ev @ 29 NONAME
-	_ZN16AppInfoFileUtils14GetAifFileNameERK3RFsR6TDes16 @ 30 NONAME ABSENT
-	_ZN16CApaMaskedBitmap12InternalizeLER11RReadStream @ 31 NONAME
-	_ZN16CApaMaskedBitmap13SetMaskBitmapEP10CFbsBitmap @ 32 NONAME
-	_ZN16CApaMaskedBitmap4NewLEPKS_ @ 33 NONAME
-	_ZN16CApaMaskedBitmap5NewLCEv @ 34 NONAME
-	_ZN16CApaMaskedBitmapD0Ev @ 35 NONAME
-	_ZN16CApaMaskedBitmapD1Ev @ 36 NONAME
-	_ZN16CApaMaskedBitmapD2Ev @ 37 NONAME
-	_ZN17CApaSystemControl7CreateLEv @ 38 NONAME
-	_ZN18TApaPictureFactoryC1EP11CApaProcess @ 39 NONAME
-	_ZN18TApaPictureFactoryC2EP11CApaProcess @ 40 NONAME
-	_ZN19CApaAppListNotifier4NewLEP23MApaAppListServObserverN7CActive9TPriorityE @ 41 NONAME
-	_ZN19CApaAppListNotifierD0Ev @ 42 NONAME
-	_ZN19CApaAppListNotifierD1Ev @ 43 NONAME
-	_ZN19CApaAppListNotifierD2Ev @ 44 NONAME
-	_ZN19CApaWindowGroupName11SetAppReadyEi @ 45 NONAME
-	_ZN19CApaWindowGroupName11SetCaptionLERK7TDesC16 @ 46 NONAME
-	_ZN19CApaWindowGroupName11SetDocNameLERK7TDesC16 @ 47 NONAME
-	_ZN19CApaWindowGroupName12FindByAppUidE4TUidR10RWsSessionRi @ 48 NONAME
-	_ZN19CApaWindowGroupName13FindByCaptionERK7TDesC16R10RWsSessionRi @ 49 NONAME
-	_ZN19CApaWindowGroupName13FindByDocNameERK7TDesC16R10RWsSessionRi @ 50 NONAME
-	_ZN19CApaWindowGroupName17SetDocNameIsAFileEi @ 51 NONAME
-	_ZN19CApaWindowGroupName18ConstructFromWgIdLEi @ 52 NONAME
-	_ZN19CApaWindowGroupName18SetWindowGroupNameEP7HBufC16 @ 53 NONAME
-	_ZN19CApaWindowGroupName19SetWindowGroupNameLERK7TDesC16 @ 54 NONAME
-	_ZN19CApaWindowGroupName26SetRespondsToShutdownEventEi @ 55 NONAME
-	_ZN19CApaWindowGroupName29SetRespondsToSwitchFilesEventEi @ 56 NONAME
-	_ZN19CApaWindowGroupName3NewERK10RWsSessionP7HBufC16 @ 57 NONAME
-	_ZN19CApaWindowGroupName4NewLERK10RWsSession @ 58 NONAME
-	_ZN19CApaWindowGroupName4NewLERK10RWsSessionRK7TDesC16 @ 59 NONAME
-	_ZN19CApaWindowGroupName4NewLERK10RWsSessioni @ 60 NONAME
-	_ZN19CApaWindowGroupName5NewLCERK10RWsSession @ 61 NONAME
-	_ZN19CApaWindowGroupName5NewLCERK10RWsSessionRK7TDesC16 @ 62 NONAME
-	_ZN19CApaWindowGroupName5NewLCERK10RWsSessioni @ 63 NONAME
-	_ZNK19CApaWindowGroupName6HiddenEv @ 64 NONAME
-	_ZN19CApaWindowGroupName7SetBusyEi @ 65 NONAME
-	_ZN19CApaWindowGroupName9SetAppUidE4TUid @ 66 NONAME
-	_ZN19CApaWindowGroupName9SetHiddenEi @ 67 NONAME
-	_ZN19CApaWindowGroupName9SetSystemEi @ 68 NONAME
-	_ZN19CApaWindowGroupNameD0Ev @ 69 NONAME
-	_ZN19CApaWindowGroupNameD1Ev @ 70 NONAME
-	_ZN19CApaWindowGroupNameD2Ev @ 71 NONAME
-	_ZN21CApaAppInfoFileReader12StretchDrawLEP10CFbsBitmapS1_5TSize @ 72 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader19CreateMaskedBitmapLEi @ 73 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader4NewLER3RFsRK7TDesC164TUid @ 74 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader5NewLCER3RFsRK7TDesC164TUid @ 75 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader8CaptionLE9TLanguage @ 76 NONAME ABSENT
-	_ZN21CApaAppInfoFileReaderD0Ev @ 77 NONAME ABSENT
-	_ZN21CApaAppInfoFileReaderD1Ev @ 78 NONAME ABSENT
-	_ZN21CApaAppInfoFileReaderD2Ev @ 79 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter10StoreViewLE4TUid @ 80 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter11AddCaptionLE9TLanguageRK7TDesC16 @ 81 NONAME
-	_ZN21CApaAppInfoFileWriter12AddDataTypeLERK21TDataTypeWithPriority @ 82 NONAME
-	_ZN21CApaAppInfoFileWriter12AddViewIconLER16CApaMaskedBitmap4TUid @ 83 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter13AddOwnedFileLERK7TDesC16 @ 84 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter13SetCapabilityERK6TDesC8 @ 85 NONAME
-	_ZN21CApaAppInfoFileWriter15AddViewCaptionLE9TLanguageRK7TDesC164TUid @ 86 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter5NewLCER3RFsRK7TDesC164TUid @ 87 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter6StoreLEv @ 88 NONAME
-	_ZN21CApaAppInfoFileWriter8AddIconLER16CApaMaskedBitmap @ 89 NONAME
-	_ZN21CApaAppInfoFileWriter8AddIconLERK7TDesC16 @ 90 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter8AddViewLE4TUid @ 91 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter8AddViewLE4TUidi @ 92 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriterD0Ev @ 93 NONAME
-	_ZN21CApaAppInfoFileWriterD1Ev @ 94 NONAME
-	_ZN21CApaAppInfoFileWriterD2Ev @ 95 NONAME
-	_ZN21CApaSystemControlList4NewLER3RFsR13CApaAppFinderRK7TDesC16 @ 96 NONAME ABSENT
-	_ZN21CApaSystemControlList7UpdateLEv @ 97 NONAME
-	_ZN21CApaSystemControlListD0Ev @ 98 NONAME
-	_ZN21CApaSystemControlListD1Ev @ 99 NONAME
-	_ZN21CApaSystemControlListD2Ev @ 100 NONAME
-	_ZN8CApaDoor16SetFormatToIconLEv @ 101 NONAME
-	_ZN8CApaDoor17SetFormatToGlassLEv @ 102 NONAME
-	_ZN8CApaDoor25SetFormatToTemporaryIconLEi @ 103 NONAME
-	_ZN8CApaDoor4NewLER3RFsR12CApaDocumentRK5TSize @ 104 NONAME
-	_ZN8CApaDoor4NewLER3RFsRK12CStreamStore9TStreamIdR11CApaProcess @ 105 NONAME
-	_ZN8CApaDoor5NewLCER3RFsR12CApaDocumentRK5TSize @ 106 NONAME
-	_ZN8CApaDoor8RestoreLERK12CStreamStore9TStreamId @ 107 NONAME
-	_ZN8CApaDoor9DocumentLEi @ 108 NONAME
-	_ZN8CApaDoorD0Ev @ 109 NONAME
-	_ZN8CApaDoorD1Ev @ 110 NONAME
-	_ZN8CApaDoorD2Ev @ 111 NONAME
-	_ZN8TApaTask11SendMessageE4TUidRK6TDesC8 @ 112 NONAME
-	_ZN8TApaTask14SwitchOpenFileERK7TDesC16 @ 113 NONAME
-	_ZN8TApaTask15SendSystemEventE15TApaSystemEvent @ 114 NONAME
-	_ZN8TApaTask16SendToBackgroundEv @ 115 NONAME
-	_ZN8TApaTask16SwitchCreateFileERK7TDesC16 @ 116 NONAME
-	_ZN8TApaTask17BringToForegroundEv @ 117 NONAME
-	_ZN8TApaTask7EndTaskEv @ 118 NONAME
-	_ZN8TApaTask7SendKeyERK9TKeyEvent @ 119 NONAME
-	_ZN8TApaTask7SendKeyEii @ 120 NONAME
-	_ZN8TApaTask7SetWgIdEi @ 121 NONAME
-	_ZN8TApaTask8KillTaskEv @ 122 NONAME
-	_ZN8TApaTaskC1ER10RWsSession @ 123 NONAME
-	_ZN8TApaTaskC2ER10RWsSession @ 124 NONAME
-	_ZNK11CApaAppData10CapabilityER5TDes8 @ 125 NONAME
-	_ZNK11CApaAppData10IconSizesLEv @ 126 NONAME
-	_ZNK11CApaAppData10OwnedFilesEv @ 127 NONAME
-	_ZNK11CApaAppData4IconE5TSize @ 128 NONAME
-	_ZNK11CApaAppData4IconEi @ 129 NONAME
-	_ZNK11CApaAppData5ViewsEv @ 130 NONAME
-	_ZNK11CApaAppData8AppEntryEv @ 131 NONAME
-	_ZNK11CApaAppData8DataTypeERK9TDataType @ 132 NONAME
-	_ZNK11CApaAppList12AppDataByUidE4TUid @ 133 NONAME
-	_ZNK11CApaAppList13UpdateCounterEv @ 134 NONAME
-	_ZNK11CApaAppList19IsFirstScanCompleteEv @ 135 NONAME
-	_ZNK11CApaAppList20IsIdleUpdateCompleteEv @ 136 NONAME
-	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataType @ 137 NONAME
-	_ZNK11CApaAppList5CountEv @ 138 NONAME
-	_ZNK11CApaAppList7NextAppEPK11CApaAppData @ 139 NONAME
-	_ZNK11CApaAppList7NextAppEPK11CApaAppDatai @ 140 NONAME
-	_ZNK11CApaAppList8FirstAppEi @ 141 NONAME
-	_ZNK11CApaAppList8FirstAppEv @ 142 NONAME
-	_ZNK13RApaLsSession10GetAllAppsEi @ 143 NONAME
-	_ZNK13RApaLsSession10GetAllAppsEv @ 144 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUid5TSizeR16CApaMaskedBitmap @ 145 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUidiR16CApaMaskedBitmap @ 146 NONAME
-	_ZNK13RApaLsSession10GetAppInfoER11TApaAppInfo4TUid @ 147 NONAME
-	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfo @ 148 NONAME
-	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfoi @ 149 NONAME
-	_ZNK13RApaLsSession11GetAppViewsER13CArrayFixFlatI15TApaAppViewInfoE4TUid @ 150 NONAME
-	_ZNK13RApaLsSession13RecognizeDataERK7TDesC16RK6TDesC8R22TDataRecognitionResult @ 151 NONAME
-	_ZNK13RApaLsSession14AppForDataTypeERK9TDataTypeR4TUid @ 152 NONAME
-	_ZNK13RApaLsSession14AppForDocumentERK7TDesC16R4TUidR9TDataType @ 153 NONAME
-	_ZNK13RApaLsSession14GetAppInfo_7_0ER15TApaAppInfo_7_04TUid @ 154 NONAME ABSENT
-	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RK5TSizeR16CApaMaskedBitmap @ 155 NONAME
-	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0 @ 156 NONAME ABSENT
-	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0i @ 157 NONAME ABSENT
-	_ZNK13RApaLsSession15GetAppIconSizesE4TUidR13CArrayFixFlatI5TSizeE @ 158 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilter @ 159 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilteri @ 160 NONAME
-	_ZNK13RApaLsSession16GetAppCapabilityER5TDes84TUid @ 161 NONAME
-	_ZNK13RApaLsSession16GetAppOwnedFilesER12CDesC16Array4TUid @ 162 NONAME
-	_ZNK13RApaLsSession17GetEmbeddableAppsEi @ 163 NONAME
-	_ZNK13RApaLsSession17GetEmbeddableAppsEv @ 164 NONAME
-	_ZNK13RApaLsSession17GetMaxDataBufSizeERi @ 165 NONAME
-	_ZNK13RApaLsSession18EmbeddableAppCountERi @ 166 NONAME
-	_ZNK13RApaLsSession21GetAcceptedConfidenceERi @ 167 NONAME
-	_ZNK13RApaLsSession21RecognizeSpecificDataERK7TDesC16RK6TDesC8RK9TDataTypeRi @ 168 NONAME
-	_ZNK13RApaLsSession22GetSupportedDataTypesLER13CArrayFixFlatI9TDataTypeE @ 169 NONAME
-	_ZNK13RApaLsSession23NumberOfOwnDefinedIconsE4TUidRi @ 170 NONAME
-	_ZNK13RApaLsSession7VersionEv @ 171 NONAME
-	_ZNK13RApaLsSession8AppCountERi @ 172 NONAME
-	_ZNK13RApaLsSession9IsProgramERK7TDesC16Ri @ 173 NONAME
-	_ZNK15CApaAIFViewData10ScreenModeEv @ 174 NONAME ABSENT
-	_ZNK15CApaAIFViewData12IconByIndexLEi @ 175 NONAME ABSENT
-	_ZNK15CApaAIFViewData13NumberOfIconsEv @ 176 NONAME ABSENT
-	_ZNK15CApaAIFViewData7ViewUidEv @ 177 NONAME ABSENT
-	_ZNK15CApaAIFViewData8CaptionLE9TLanguage @ 178 NONAME ABSENT
-	_ZNK15CApaAppViewData10IconSizesLEv @ 179 NONAME
-	_ZNK15CApaAppViewData10ScreenModeEv @ 180 NONAME
-	_ZNK15CApaAppViewData3UidEv @ 181 NONAME
-	_ZNK15CApaAppViewData4IconERK5TSize @ 182 NONAME
-	_ZNK16CApaMaskedBitmap12ExternalizeLER12RWriteStream @ 183 NONAME
-	_ZNK16CApaMaskedBitmap4MaskEv @ 184 NONAME
-	_ZNK17CApaSystemControl12ShortCaptionEv @ 185 NONAME
-	_ZNK17CApaSystemControl4IconEv @ 186 NONAME
-	_ZNK17CApaSystemControl4TypeEv @ 187 NONAME
-	_ZNK17CApaSystemControl7CaptionEv @ 188 NONAME
-	_ZNK17CApaSystemControl8FileNameEv @ 189 NONAME
-	_ZNK18TApaPictureFactory11NewPictureLER14TPictureHeaderRK12CStreamStore @ 190 NONAME
-	_ZNK19CApaWindowGroupName10IsAppReadyEv @ 191 NONAME
-	_ZNK19CApaWindowGroupName14DocNameIsAFileEv @ 192 NONAME
-	_ZNK19CApaWindowGroupName15WindowGroupNameEv @ 193 NONAME
-	_ZNK19CApaWindowGroupName18SetWindowGroupNameER12RWindowGroup @ 194 NONAME
-	_ZNK19CApaWindowGroupName23RespondsToShutdownEventEv @ 195 NONAME
-	_ZNK19CApaWindowGroupName26RespondsToSwitchFilesEventEv @ 196 NONAME
-	_ZNK19CApaWindowGroupName6AppUidEv @ 197 NONAME
-	_ZNK19CApaWindowGroupName6IsBusyEv @ 198 NONAME
-	_ZNK19CApaWindowGroupName7CaptionEv @ 199 NONAME
-	_ZNK19CApaWindowGroupName7DocNameEv @ 200 NONAME
-	_ZNK19CApaWindowGroupName8IsSystemEv @ 201 NONAME
-	_ZNK21CApaAppInfoFileReader10CapabilityER5TDes8 @ 202 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader14GetOwnedFilesLER12CDesC16Array @ 203 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader15NumberOfBitmapsEv @ 204 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader19DataTypesSupportedLER9CArrayFixI21TDataTypeWithPriorityE @ 205 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader9GetViewsLER9CArrayPtrI15CApaAIFViewDataE @ 206 NONAME ABSENT
-	_ZNK21CApaSystemControlList5CountEv @ 207 NONAME
-	_ZNK21CApaSystemControlList5IndexE4TUid @ 208 NONAME
-	_ZNK21CApaSystemControlList7ControlE4TUid @ 209 NONAME
-	_ZNK21CApaSystemControlList7ControlEi @ 210 NONAME
-	_ZNK8CApaDoor7AppUidLEv @ 211 NONAME
-	_ZNK8TApaTask4WgIdEv @ 212 NONAME
-	_ZNK8TApaTask6ExistsEv @ 213 NONAME
-	_ZNK8TApaTask8ThreadIdEv @ 214 NONAME
-	_ZTI18TApaPictureFactory @ 215 NONAME ; #<TI>#
-	_ZTV18TApaPictureFactory @ 216 NONAME ; #<VT>#
-	_ZTI11CApaAppData @ 217 NONAME ; #<TI>#
-	_ZTI11CApaAppList @ 218 NONAME ; #<TI>#
-	_ZTI12CApaAppEntry @ 219 NONAME ; #<TI>#
-	_ZTI14CApaAIFCaption @ 220 NONAME ABSENT ; #<TI>#
-	_ZTI15CApaAIFViewData @ 221 NONAME ABSENT ; #<TI>#
-	_ZTI15CApaAppInfoFile @ 222 NONAME ABSENT ; #<TI>#
-	_ZTI15CApaAppViewData @ 223 NONAME ; #<TI>#
-	_ZTI15CApaIconPicture @ 224 NONAME ; #<TI>#
-	_ZTI16CApaMaskedBitmap @ 225 NONAME ; #<TI>#
-	_ZTI16TDesCArrayFiller @ 226 NONAME ; #<TI>#
-	_ZTI16TSizeArrayFiller @ 227 NONAME ; #<TI>#
-	_ZTI17CApaSystemControl @ 228 NONAME ; #<TI>#
-	_ZTI19CApaAppListNotifier @ 229 NONAME ; #<TI>#
-	_ZTI19CApaWindowGroupName @ 230 NONAME ; #<TI>#
-	_ZTI20TViewDataArrayFiller @ 231 NONAME ; #<TI>#
-	_ZTI21CApaAppInfoFileReader @ 232 NONAME ABSENT ; #<TI>#
-	_ZTI21CApaAppInfoFileWriter @ 233 NONAME ; #<TI>#
-	_ZTI21CApaSystemControlList @ 234 NONAME ; #<TI>#
-	_ZTI7HBufBuf @ 235 NONAME ; #<TI>#
-	_ZTI8CApaDoor @ 236 NONAME ; #<TI>#
-	_ZTV11CApaAppData @ 237 NONAME ; #<VT>#
-	_ZTV11CApaAppList @ 238 NONAME ; #<VT>#
-	_ZTV12CApaAppEntry @ 239 NONAME ; #<VT>#
-	_ZTV14CApaAIFCaption @ 240 NONAME ABSENT ; #<VT>#
-	_ZTV15CApaAIFViewData @ 241 NONAME ABSENT ; #<VT>#
-	_ZTV15CApaAppInfoFile @ 242 NONAME ABSENT ; #<VT>#
-	_ZTV15CApaAppViewData @ 243 NONAME ; #<VT>#
-	_ZTV15CApaIconPicture @ 244 NONAME ; #<VT>#
-	_ZTV16CApaMaskedBitmap @ 245 NONAME ; #<VT>#
-	_ZTV16TDesCArrayFiller @ 246 NONAME ; #<VT>#
-	_ZTV16TSizeArrayFiller @ 247 NONAME ; #<VT>#
-	_ZTV17CApaSystemControl @ 248 NONAME ; #<VT>#
-	_ZTV19CApaAppListNotifier @ 249 NONAME ; #<VT>#
-	_ZTV19CApaWindowGroupName @ 250 NONAME ; #<VT>#
-	_ZTV20TViewDataArrayFiller @ 251 NONAME ; #<VT>#
-	_ZTV21CApaAppInfoFileReader @ 252 NONAME ABSENT ; #<VT>#
-	_ZTV21CApaAppInfoFileWriter @ 253 NONAME ; #<VT>#
-	_ZTV21CApaSystemControlList @ 254 NONAME ; #<VT>#
-	_ZTV7HBufBuf @ 255 NONAME ; #<VT>#
-	_ZTV8CApaDoor @ 256 NONAME ; #<VT>#
-	_ZN11CApaAppList4NewLER3RFsP13CApaAppFinderP16CApaAppRegFinderi @ 257 NONAME ABSENT
-	_ZNK11CApaAppData12IconFileNameEv @ 258 NONAME
-	_ZNK11CApaAppData14NonMbmIconFileEv @ 259 NONAME
-	_ZNK11CApaAppData19DefaultScreenNumberEv @ 260 NONAME
-	_ZNK11CApaAppData20RegistrationFileUsedEv @ 261 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUidRP7HBufC16 @ 262 NONAME
-	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RP7HBufC16 @ 263 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsEjj @ 264 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsEjji @ 265 NONAME
-	_ZNK15CApaAppViewData12IconFileNameEv @ 266 NONAME
-	_ZNK15CApaAppViewData14NonMbmIconFileEv @ 267 NONAME
-	_ZTI17CApaAppInfoReader @ 268 NONAME ; #<TI>#
-	_ZTI19CApaAppInfoReaderV1 @ 269 NONAME ABSENT ; #<TI>#
-	_ZTI19CApaAppInfoReaderV2 @ 270 NONAME ; #<TI>#
-	_ZTV17CApaAppInfoReader @ 271 NONAME ; #<VT>#
-	_ZTV19CApaAppInfoReaderV1 @ 272 NONAME ABSENT ; #<VT>#
-	_ZTV19CApaAppInfoReaderV2 @ 273 NONAME ; #<VT>#
-	_Z16StartupApaServerR14MApaAppStarter @ 274 NONAME
-	_Z23StartupApaServerProcessv @ 275 NONAME
-	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType @ 276 NONAME
-	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUid @ 277 NONAME
-	_ZN13RApaLsSession25InsertDataMappingIfHigherERK9TDataTypel4TUidRi @ 278 NONAME
-	_ZNK11CApaAppData19ApplicationLanguageEv @ 279 NONAME
-	_ZNK13RApaLsSession19ApplicationLanguageE4TUidR9TLanguage @ 280 NONAME
-	_ZN21CApaSystemControlList4NewLER3RFs @ 281 NONAME
-	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 282 NONAME
-	_ZNK11CApaAppList17ServiceUidBufferLE4TUid @ 283 NONAME
-	_ZNK11CApaAppList19ServiceArrayBufferLE4TUid @ 284 NONAME
-	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataTypePK4TUidRi @ 285 NONAME
-	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUid @ 286 NONAME
-	_ZNK11CApaAppList24ServiceOpaqueDataBufferLE4TUidS0_ @ 287 NONAME
-	_ZNK13RApaLsSession13GetServerAppsE4TUid @ 288 NONAME
-	_ZNK13RApaLsSession13GetServerAppsE4TUidi @ 289 NONAME
-	_ZNK13RApaLsSession15GetAppServicesLE4TUidR13CArrayFixFlatIS0_E @ 290 NONAME
-	_ZNK13RApaLsSession16GetAppServicesLCE4TUid @ 291 NONAME
-	_ZNK13RApaLsSession24AppForDataTypeAndServiceERK9TDataType4TUidRS3_ @ 292 NONAME
-	_ZNK13RApaLsSession24AppForDocumentAndServiceERK5RFile4TUidRS3_R9TDataType @ 293 NONAME
-	_ZNK13RApaLsSession24AppForDocumentAndServiceERK7TDesC164TUidRS3_R9TDataType @ 294 NONAME
-	_ZNK13RApaLsSession25GetAppServiceOpaqueDataLCE4TUidS0_ @ 295 NONAME
-	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUid @ 296 NONAME
-	_ZNK18TApaAppServiceInfo10OpaqueDataEv @ 297 NONAME
-	_ZNK18TApaAppServiceInfo3UidEv @ 298 NONAME
-	_ZTI30CApaAppServiceInfoArrayWrapper @ 299 NONAME ; #<TI>#
-	_ZTV30CApaAppServiceInfoArrayWrapper @ 300 NONAME ; #<VT>#
-	_ZN13RApaLsSession13StartDocumentER5RFileR9TThreadIdP14TRequestStatus @ 301 NONAME
-	_ZN21CApaAppInfoFileReader27CreateMaskedBitmapByIndexLCEi @ 302 NONAME ABSENT
-	_ZNK13RApaLsSession36CancelListPopulationCompleteObserverEv @ 303 NONAME
-	_ZNK13RApaLsSession38RegisterListPopulationCompleteObserverER14TRequestStatus @ 304 NONAME
-	_ZN8ApaUtils24HandleAsRegistrationFileERK8TUidType @ 305 NONAME
-	_ZN13RApaLsSession33RegisterJavaMIDletViaIterimFormatERK7TDesC16R5RFile @ 306 NONAME ABSENT
-	_ZN22ForJavaMIDletInstaller33CheckInterimFormatFileNotCorruptLER5RFile @ 307 NONAME
-	_ZN13RApaLsSession20DeregisterJavaMIDletERK7TDesC16 @ 308 NONAME ABSENT
-	_ZN13RApaLsSession13SetFsSessionLER3RFs @ 309 NONAME
-	_ZN13RApaLsSession13StartDocumentER5RFile4TUidR9TThreadIdP14TRequestStatus @ 310 NONAME
-	_ZN13RApaLsSession13StartDocumentER5RFileRK9TDataTypeR9TThreadIdP14TRequestStatus @ 311 NONAME
-	_ZN13RApaLsSession14ClearFsSessionEv @ 312 NONAME
-	_ZN13RApaLsSession9FsSessionEv @ 313 NONAME
-	_ZNK13RApaLsSession13RecognizeDataERK5RFileR22TDataRecognitionResult @ 314 NONAME
-	_ZNK13RApaLsSession14AppForDocumentERK5RFileR4TUidR9TDataType @ 315 NONAME
-	_ZNK13RApaLsSession21RecognizeSpecificDataERK5RFileRK9TDataTypeRi @ 316 NONAME
-	_ZNK13RApaLsSession19GetPreferredBufSizeERi @ 317 NONAME
-	_ZN22ForJavaMIDletInstaller18GetJavaMIDletInfoLER3RFsRK7TDesC16RmS5_ @ 318 NONAME
-	_ZN22ForJavaMIDletInstaller28NewInterimFormatFileWriterLCER3RFsRK7TDesC164TUidmi @ 319 NONAME
-	_ZNK18TApaAppServiceInfo9DataTypesEv @ 320 NONAME
-	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUidRK9TDataType @ 321 NONAME
-	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUidRK9TDataType @ 322 NONAME
-	_ZN13RApaLsSession5CloseEv @ 323 NONAME
-	_ZTI22CApaLsSessionExtension @ 324 NONAME ; #<TI>#
-	_ZTV22CApaLsSessionExtension @ 325 NONAME ; #<VT>#
-	_ZN13RApaLsSession23RApaLsSession_Reserved1Ev @ 326 NONAME
-	_ZN13RApaLsSession23RApaLsSession_Reserved2Ev @ 327 NONAME
-	_ZN18TApaPictureFactoryC1Ev @ 328 NONAME
-	_ZN18TApaPictureFactoryC2Ev @ 329 NONAME
-	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved1Ev @ 330 NONAME
-	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved2Ev @ 331 NONAME
-	_ZN23MApaAppListServObserverC2Ev @ 332 NONAME
-	_ZTI13RApaLsSession @ 333 NONAME ; #<TI>#
-	_ZTI23MApaAppListServObserver @ 334 NONAME ; #<TI>#
-	_ZTV13RApaLsSession @ 335 NONAME ; #<VT>#
-	_ZTV23MApaAppListServObserver @ 336 NONAME ; #<VT>#
-	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArray @ 337 NONAME
-	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArrayR14TRequestStatus @ 338 NONAME
-	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArray @ 339 NONAME
-	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArrayR14TRequestStatus @ 340 NONAME
-	_ZN13RApaLsSession20CancelRecognizeFilesEv @ 341 NONAME
-	_ZN27CDataRecognitionResultArrayC1Ev @ 342 NONAME
-	_ZN27CDataRecognitionResultArrayC2Ev @ 343 NONAME
-	_ZN27CDataRecognitionResultArrayD0Ev @ 344 NONAME
-	_ZN27CDataRecognitionResultArrayD1Ev @ 345 NONAME
-	_ZN27CDataRecognitionResultArrayD2Ev @ 346 NONAME
-	_ZNK27CDataRecognitionResultArray12GetFileNameLER4TBufILi256EEj @ 347 NONAME
-	_ZNK27CDataRecognitionResultArray25GetDataRecognitionResultLER22TDataRecognitionResultj @ 348 NONAME
-	_ZNK27CDataRecognitionResultArray4PathEv @ 349 NONAME
-	_ZNK27CDataRecognitionResultArray5CountEv @ 350 NONAME
-	_ZTI21CAsyncFileRecognition @ 351 NONAME ; #<TI>#
-	_ZTI27CDataRecognitionResultArray @ 352 NONAME ; #<TI>#
-	_ZTI32CDataRecognitionResultArrayEntry @ 353 NONAME ; #<TI>#
-	_ZTV21CAsyncFileRecognition @ 354 NONAME ; #<VT>#
-	_ZTV27CDataRecognitionResultArray @ 355 NONAME ; #<VT>#
-	_ZTV32CDataRecognitionResultArrayEntry @ 356 NONAME ; #<VT>#
-	_ZNK13RApaLsSession16GetAppByDataTypeERK9TDataType4TUidRS3_ @ 357 NONAME
-	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType4TUid @ 358 NONAME
-	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUidS3_ @ 359 NONAME
-	_ZN13RApaLsSession29RegisterNonNativeApplicationLE4TUidRK10TDriveUnitR34CApaRegistrationResourceFileWriterP33CApaLocalisableResourceFileWriterPK5RFile @ 360 NONAME
-	_ZN13RApaLsSession31DeregisterNonNativeApplicationLE4TUid @ 361 NONAME
-	_ZN13RApaLsSession33RegisterNonNativeApplicationTypeLE4TUidRK7TDesC16 @ 362 NONAME
-	_ZN13RApaLsSession35DeregisterNonNativeApplicationTypeLE4TUid @ 363 NONAME
-	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadIdP14TRequestStatus @ 364 NONAME
-	_ZNK11CApaAppData10OpaqueDataEv @ 365 NONAME
-	_ZNK11CApaAppData20RegistrationFileNameEv @ 366 NONAME
-	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 367 NONAME
-	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 368 NONAME
-	_ZNK13RApaLsSession22GetDefaultScreenNumberERi4TUid @ 369 NONAME
-	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 370 NONAME
-	_ZNK13RApaLsSession21MatchesSecurityPolicyERi4TUidRK15TSecurityPolicy @ 371 NONAME
-	_ZN33CApaLocalisableResourceFileWriterD1Ev @ 372 NONAME
-	_ZN33CApaLocalisableResourceFileWriterD2Ev @ 373 NONAME
-	_ZN34CApaRegistrationResourceFileWriter12AddDataTypeLEiRK6TDesC8 @ 374 NONAME
-	_ZN34CApaRegistrationResourceFileWriter13SetGroupNameLERK7TDesC16 @ 375 NONAME
-	_ZN34CApaRegistrationResourceFileWriter14SetOpaqueDataLERK6TDesC8 @ 376 NONAME
-	_ZN34CApaRegistrationResourceFileWriter15SetAppIsHiddenLEi @ 377 NONAME
-	_ZN34CApaRegistrationResourceFileWriter17SetEmbeddabilityLEN17TApaAppCapability14TEmbeddabilityE @ 378 NONAME
-	_ZN34CApaRegistrationResourceFileWriter19SetSupportsNewFileLEi @ 379 NONAME
-	_ZN34CApaRegistrationResourceFileWriter21AddFileOwnershipInfoLERK7TDesC16 @ 380 NONAME
-	_ZN34CApaRegistrationResourceFileWriter22SetLaunchInBackgroundLEi @ 381 NONAME
-	_ZN34CApaRegistrationResourceFileWriter23SetDefaultScreenNumberLEi @ 382 NONAME
-	_ZN34CApaRegistrationResourceFileWriter4NewLE4TUidRK7TDesC16j @ 383 NONAME
-	_ZN34CApaRegistrationResourceFileWriterD0Ev @ 384 NONAME
-	_ZN34CApaRegistrationResourceFileWriterD1Ev @ 385 NONAME
-	_ZN34CApaRegistrationResourceFileWriterD2Ev @ 386 NONAME
-	_ZNK11CApaAppData24NonNativeApplicationTypeEv @ 387 NONAME
-	_ZTI33CApaLocalisableResourceFileWriter @ 388 NONAME ; #<TI>#
-	_ZTI34CApaRegistrationResourceFileWriter @ 389 NONAME ; #<TI>#
-	_ZTIN26CApaResourceFileWriterBase11RBufferSinkE @ 390 NONAME ; #<TI>#
-	_ZTV33CApaLocalisableResourceFileWriter @ 391 NONAME ; #<VT>#
-	_ZTV34CApaRegistrationResourceFileWriter @ 392 NONAME ; #<VT>#
-	_ZTVN26CApaResourceFileWriterBase11RBufferSinkE @ 393 NONAME ; #<VT>#
-	_ZN33CApaLocalisableResourceFileWriter4NewLERK7TDesC16S2_iS2_ @ 394 NONAME
-	_ZN33CApaLocalisableResourceFileWriterD0Ev @ 395 NONAME
-	_ZN13RApaLsSession12CancelNotifyEv @ 396 NONAME
-	_ZN13RApaLsSession9SetNotifyEiR14TRequestStatus @ 397 NONAME
-	_ZNK11CApaAppList17AppScanInProgressEv @ 398 NONAME
-	_ZN13RApaLsSession25NotifyOnDataMappingChangeER14TRequestStatus @ 399 NONAME
-	_ZN13RApaLsSession31CancelNotifyOnDataMappingChangeEv @ 400 NONAME
-	_ZNK13RApaLsSession10GetAppTypeER4TUidS0_ @ 401 NONAME
-	_ZN13RApaLsSession35CommitNonNativeApplicationsUpdatesLEv @ 402 NONAME
-	_ZN13RApaLsSession36PrepareNonNativeApplicationsUpdatesLEv @ 403 NONAME
-	_ZN13RApaLsSession36RollbackNonNativeApplicationsUpdatesEv @ 404 NONAME
-	_ZN11CApaAppList15UpdatedAppsListEv @ 405 NONAME ABSENT
-	_ZN11CApaAppList18SetUpdatedAppsListEP16CUpdatedAppsList @ 406 NONAME ABSENT
-	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFsRK7TDesC16 @ 407 NONAME
-	_ZN11CApaAppDataD0Ev @ 408 NONAME
-	_ZN11CApaAppDataD1Ev @ 409 NONAME
-	_ZN11CApaAppDataD2Ev @ 410 NONAME
-	_ZN11CApaAppList24ShareProtectedFileServerEv @ 411 NONAME ABSENT
-	_ZN11CApaAppList4SelfEv @ 412 NONAME
-	X @ 413 NONAME ABSENT
-	X @ 414 NONAME ABSENT
-	X @ 415 NONAME ABSENT
-	X @ 416 NONAME ABSENT
-	_ZN13RApaLsSession18SetAppShortCaptionERK7TDesC169TLanguage4TUid @ 417 NONAME
-	_ZN11CApaAppData16SetShortCaptionLERK7TDesC16 @ 418 NONAME
-	_ZN11CApaAppList14CompareStringsERK7HBufC16S2_ @ 419 NONAME
-	_ZN11CApaAppList22AddForcedRegistrationLEP7HBufC16 @ 420 NONAME
-	_ZN13RApaLsSession17ForceRegistrationERK13RPointerArrayI7TDesC16E @ 421 NONAME
-	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 422 NONAME
-	_ZN11CApaAppList12RestartScanLEv @ 423 NONAME
-	_ZN11CApaAppList8StopScanEv @ 424 NONAME
-	KMinApplicationStackSize @ 425 NONAME DATA 4
-	_Z23MinApplicationStackSizev @ 426 NONAME
-	_ZN17CApaSecurityUtils16CheckAppSecurityERK7TPtrC16RiS3_ @ 427 NONAME
-
--- a/localisation/apparchitecture/eabi/APGRFX_UI_FRAMEWORKSU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,437 +0,0 @@
-EXPORTS
-	_ZNK11CApaAppData11GetIconInfoERiS0_ @ 1 NONAME
-	_ZN11CApaAppData16CanUseScreenModeEi @ 2 NONAME
-	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 3 NONAME
-	_ZN11CApaAppList16StartIdleUpdateLEv @ 4 NONAME
-	_ZN11CApaAppList4NewLER3RFsP16CApaAppRegFinderii @ 5 NONAME
-	_ZN11CApaAppList6PurgeLEv @ 6 NONAME
-	_ZN11CApaAppList7UpdateLEv @ 7 NONAME ABSENT
-	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 8 NONAME
-	_ZN11CApaAppListD0Ev @ 9 NONAME
-	_ZN11CApaAppListD1Ev @ 10 NONAME
-	_ZN11CApaAppListD2Ev @ 11 NONAME
-	_ZN12TApaTaskList10CycleTasksE4TUidNS_15TCycleDirectionE @ 12 NONAME
-	_ZN12TApaTaskList7FindAppE4TUid @ 13 NONAME
-	_ZN12TApaTaskList7FindAppERK7TDesC16 @ 14 NONAME
-	_ZN12TApaTaskList7FindDocERK7TDesC16 @ 15 NONAME
-	_ZN12TApaTaskList9FindByPosEi @ 16 NONAME
-	_ZN12TApaTaskListC1ER10RWsSession @ 17 NONAME
-	_ZN12TApaTaskListC2ER10RWsSession @ 18 NONAME
-	_ZN13RApaLsSession13StartDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 19 NONAME
-	_ZN13RApaLsSession13StartDocumentERK7TDesC16R9TThreadIdNS_11TLaunchTypeE @ 20 NONAME
-	_ZN13RApaLsSession13StartDocumentERK7TDesC16RK9TDataTypeR9TThreadIdNS_11TLaunchTypeE @ 21 NONAME
-	_ZN13RApaLsSession14CreateDocumentERK7TDesC164TUidR9TThreadIdNS_11TLaunchTypeE @ 22 NONAME
-	_ZN13RApaLsSession17SetMaxDataBufSizeEi @ 23 NONAME
-	_ZN13RApaLsSession21SetAcceptedConfidenceEi @ 24 NONAME
-	_ZN13RApaLsSession7ConnectEv @ 25 NONAME
-	_ZN13RApaLsSession8StartAppERK15CApaCommandLine @ 26 NONAME
-	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadId @ 27 NONAME
-	_ZN13RApaLsSessionC1Ev @ 28 NONAME
-	_ZN13RApaLsSessionC2Ev @ 29 NONAME
-	_ZN16AppInfoFileUtils14GetAifFileNameERK3RFsR6TDes16 @ 30 NONAME ABSENT
-	_ZN16CApaMaskedBitmap12InternalizeLER11RReadStream @ 31 NONAME
-	_ZN16CApaMaskedBitmap13SetMaskBitmapEP10CFbsBitmap @ 32 NONAME
-	_ZN16CApaMaskedBitmap4NewLEPKS_ @ 33 NONAME
-	_ZN16CApaMaskedBitmap5NewLCEv @ 34 NONAME
-	_ZN16CApaMaskedBitmapD0Ev @ 35 NONAME
-	_ZN16CApaMaskedBitmapD1Ev @ 36 NONAME
-	_ZN16CApaMaskedBitmapD2Ev @ 37 NONAME
-	_ZN17CApaSystemControl7CreateLEv @ 38 NONAME
-	_ZN18TApaPictureFactoryC1EP11CApaProcess @ 39 NONAME
-	_ZN18TApaPictureFactoryC2EP11CApaProcess @ 40 NONAME
-	_ZN19CApaAppListNotifier4NewLEP23MApaAppListServObserverN7CActive9TPriorityE @ 41 NONAME
-	_ZN19CApaAppListNotifierD0Ev @ 42 NONAME
-	_ZN19CApaAppListNotifierD1Ev @ 43 NONAME
-	_ZN19CApaAppListNotifierD2Ev @ 44 NONAME
-	_ZN19CApaWindowGroupName11SetAppReadyEi @ 45 NONAME
-	_ZN19CApaWindowGroupName11SetCaptionLERK7TDesC16 @ 46 NONAME
-	_ZN19CApaWindowGroupName11SetDocNameLERK7TDesC16 @ 47 NONAME
-	_ZN19CApaWindowGroupName12FindByAppUidE4TUidR10RWsSessionRi @ 48 NONAME
-	_ZN19CApaWindowGroupName13FindByCaptionERK7TDesC16R10RWsSessionRi @ 49 NONAME
-	_ZN19CApaWindowGroupName13FindByDocNameERK7TDesC16R10RWsSessionRi @ 50 NONAME
-	_ZN19CApaWindowGroupName17SetDocNameIsAFileEi @ 51 NONAME
-	_ZN19CApaWindowGroupName18ConstructFromWgIdLEi @ 52 NONAME
-	_ZN19CApaWindowGroupName18SetWindowGroupNameEP7HBufC16 @ 53 NONAME
-	_ZN19CApaWindowGroupName19SetWindowGroupNameLERK7TDesC16 @ 54 NONAME
-	_ZN19CApaWindowGroupName26SetRespondsToShutdownEventEi @ 55 NONAME
-	_ZN19CApaWindowGroupName29SetRespondsToSwitchFilesEventEi @ 56 NONAME
-	_ZN19CApaWindowGroupName3NewERK10RWsSessionP7HBufC16 @ 57 NONAME
-	_ZN19CApaWindowGroupName4NewLERK10RWsSession @ 58 NONAME
-	_ZN19CApaWindowGroupName4NewLERK10RWsSessionRK7TDesC16 @ 59 NONAME
-	_ZN19CApaWindowGroupName4NewLERK10RWsSessioni @ 60 NONAME
-	_ZN19CApaWindowGroupName5NewLCERK10RWsSession @ 61 NONAME
-	_ZN19CApaWindowGroupName5NewLCERK10RWsSessionRK7TDesC16 @ 62 NONAME
-	_ZN19CApaWindowGroupName5NewLCERK10RWsSessioni @ 63 NONAME
-	_ZNK19CApaWindowGroupName6HiddenEv @ 64 NONAME
-	_ZN19CApaWindowGroupName7SetBusyEi @ 65 NONAME
-	_ZN19CApaWindowGroupName9SetAppUidE4TUid @ 66 NONAME
-	_ZN19CApaWindowGroupName9SetHiddenEi @ 67 NONAME
-	_ZN19CApaWindowGroupName9SetSystemEi @ 68 NONAME
-	_ZN19CApaWindowGroupNameD0Ev @ 69 NONAME
-	_ZN19CApaWindowGroupNameD1Ev @ 70 NONAME
-	_ZN19CApaWindowGroupNameD2Ev @ 71 NONAME
-	_ZN21CApaAppInfoFileReader12StretchDrawLEP10CFbsBitmapS1_5TSize @ 72 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader19CreateMaskedBitmapLEi @ 73 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader4NewLER3RFsRK7TDesC164TUid @ 74 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader5NewLCER3RFsRK7TDesC164TUid @ 75 NONAME ABSENT
-	_ZN21CApaAppInfoFileReader8CaptionLE9TLanguage @ 76 NONAME ABSENT
-	_ZN21CApaAppInfoFileReaderD0Ev @ 77 NONAME ABSENT
-	_ZN21CApaAppInfoFileReaderD1Ev @ 78 NONAME ABSENT
-	_ZN21CApaAppInfoFileReaderD2Ev @ 79 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter10StoreViewLE4TUid @ 80 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter11AddCaptionLE9TLanguageRK7TDesC16 @ 81 NONAME
-	_ZN21CApaAppInfoFileWriter12AddDataTypeLERK21TDataTypeWithPriority @ 82 NONAME
-	_ZN21CApaAppInfoFileWriter12AddViewIconLER16CApaMaskedBitmap4TUid @ 83 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter13AddOwnedFileLERK7TDesC16 @ 84 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter13SetCapabilityERK6TDesC8 @ 85 NONAME
-	_ZN21CApaAppInfoFileWriter15AddViewCaptionLE9TLanguageRK7TDesC164TUid @ 86 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter5NewLCER3RFsRK7TDesC164TUid @ 87 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter6StoreLEv @ 88 NONAME
-	_ZN21CApaAppInfoFileWriter8AddIconLER16CApaMaskedBitmap @ 89 NONAME
-	_ZN21CApaAppInfoFileWriter8AddIconLERK7TDesC16 @ 90 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter8AddViewLE4TUid @ 91 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriter8AddViewLE4TUidi @ 92 NONAME ABSENT
-	_ZN21CApaAppInfoFileWriterD0Ev @ 93 NONAME
-	_ZN21CApaAppInfoFileWriterD1Ev @ 94 NONAME
-	_ZN21CApaAppInfoFileWriterD2Ev @ 95 NONAME
-	_ZN21CApaSystemControlList4NewLER3RFsR13CApaAppFinderRK7TDesC16 @ 96 NONAME ABSENT
-	_ZN21CApaSystemControlList7UpdateLEv @ 97 NONAME
-	_ZN21CApaSystemControlListD0Ev @ 98 NONAME
-	_ZN21CApaSystemControlListD1Ev @ 99 NONAME
-	_ZN21CApaSystemControlListD2Ev @ 100 NONAME
-	_ZN8CApaDoor16SetFormatToIconLEv @ 101 NONAME
-	_ZN8CApaDoor17SetFormatToGlassLEv @ 102 NONAME
-	_ZN8CApaDoor25SetFormatToTemporaryIconLEi @ 103 NONAME
-	_ZN8CApaDoor4NewLER3RFsR12CApaDocumentRK5TSize @ 104 NONAME
-	_ZN8CApaDoor4NewLER3RFsRK12CStreamStore9TStreamIdR11CApaProcess @ 105 NONAME
-	_ZN8CApaDoor5NewLCER3RFsR12CApaDocumentRK5TSize @ 106 NONAME
-	_ZN8CApaDoor8RestoreLERK12CStreamStore9TStreamId @ 107 NONAME
-	_ZN8CApaDoor9DocumentLEi @ 108 NONAME
-	_ZN8CApaDoorD0Ev @ 109 NONAME
-	_ZN8CApaDoorD1Ev @ 110 NONAME
-	_ZN8CApaDoorD2Ev @ 111 NONAME
-	_ZN8TApaTask11SendMessageE4TUidRK6TDesC8 @ 112 NONAME
-	_ZN8TApaTask14SwitchOpenFileERK7TDesC16 @ 113 NONAME
-	_ZN8TApaTask15SendSystemEventE15TApaSystemEvent @ 114 NONAME
-	_ZN8TApaTask16SendToBackgroundEv @ 115 NONAME
-	_ZN8TApaTask16SwitchCreateFileERK7TDesC16 @ 116 NONAME
-	_ZN8TApaTask17BringToForegroundEv @ 117 NONAME
-	_ZN8TApaTask7EndTaskEv @ 118 NONAME
-	_ZN8TApaTask7SendKeyERK9TKeyEvent @ 119 NONAME
-	_ZN8TApaTask7SendKeyEii @ 120 NONAME
-	_ZN8TApaTask7SetWgIdEi @ 121 NONAME
-	_ZN8TApaTask8KillTaskEv @ 122 NONAME
-	_ZN8TApaTaskC1ER10RWsSession @ 123 NONAME
-	_ZN8TApaTaskC2ER10RWsSession @ 124 NONAME
-	_ZNK11CApaAppData10CapabilityER5TDes8 @ 125 NONAME
-	_ZNK11CApaAppData10IconSizesLEv @ 126 NONAME
-	_ZNK11CApaAppData10OwnedFilesEv @ 127 NONAME
-	_ZNK11CApaAppData4IconE5TSize @ 128 NONAME
-	_ZNK11CApaAppData4IconEi @ 129 NONAME
-	_ZNK11CApaAppData5ViewsEv @ 130 NONAME
-	_ZNK11CApaAppData8AppEntryEv @ 131 NONAME
-	_ZNK11CApaAppData8DataTypeERK9TDataType @ 132 NONAME
-	_ZNK11CApaAppList12AppDataByUidE4TUid @ 133 NONAME
-	_ZNK11CApaAppList13UpdateCounterEv @ 134 NONAME ABSENT
-	_ZNK11CApaAppList19IsFirstScanCompleteEv @ 135 NONAME
-	_ZNK11CApaAppList20IsIdleUpdateCompleteEv @ 136 NONAME
-	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataType @ 137 NONAME
-	_ZNK11CApaAppList5CountEv @ 138 NONAME
-	_ZNK11CApaAppList7NextAppEPK11CApaAppData @ 139 NONAME
-	_ZNK11CApaAppList7NextAppEPK11CApaAppDatai @ 140 NONAME
-	_ZNK11CApaAppList8FirstAppEi @ 141 NONAME
-	_ZNK11CApaAppList8FirstAppEv @ 142 NONAME
-	_ZNK13RApaLsSession10GetAllAppsEi @ 143 NONAME
-	_ZNK13RApaLsSession10GetAllAppsEv @ 144 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUid5TSizeR16CApaMaskedBitmap @ 145 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUidiR16CApaMaskedBitmap @ 146 NONAME
-	_ZNK13RApaLsSession10GetAppInfoER11TApaAppInfo4TUid @ 147 NONAME
-	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfo @ 148 NONAME
-	_ZNK13RApaLsSession10GetNextAppER11TApaAppInfoi @ 149 NONAME
-	_ZNK13RApaLsSession11GetAppViewsER13CArrayFixFlatI15TApaAppViewInfoE4TUid @ 150 NONAME
-	_ZNK13RApaLsSession13RecognizeDataERK7TDesC16RK6TDesC8R22TDataRecognitionResult @ 151 NONAME
-	_ZNK13RApaLsSession14AppForDataTypeERK9TDataTypeR4TUid @ 152 NONAME
-	_ZNK13RApaLsSession14AppForDocumentERK7TDesC16R4TUidR9TDataType @ 153 NONAME
-	_ZNK13RApaLsSession14GetAppInfo_7_0ER15TApaAppInfo_7_04TUid @ 154 NONAME ABSENT
-	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RK5TSizeR16CApaMaskedBitmap @ 155 NONAME
-	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0 @ 156 NONAME ABSENT
-	_ZNK13RApaLsSession14GetNextApp_7_0ER15TApaAppInfo_7_0i @ 157 NONAME ABSENT
-	_ZNK13RApaLsSession15GetAppIconSizesE4TUidR13CArrayFixFlatI5TSizeE @ 158 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilter @ 159 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsERK23TApaEmbeddabilityFilteri @ 160 NONAME
-	_ZNK13RApaLsSession16GetAppCapabilityER5TDes84TUid @ 161 NONAME
-	_ZNK13RApaLsSession16GetAppOwnedFilesER12CDesC16Array4TUid @ 162 NONAME
-	_ZNK13RApaLsSession17GetEmbeddableAppsEi @ 163 NONAME
-	_ZNK13RApaLsSession17GetEmbeddableAppsEv @ 164 NONAME
-	_ZNK13RApaLsSession17GetMaxDataBufSizeERi @ 165 NONAME
-	_ZNK13RApaLsSession18EmbeddableAppCountERi @ 166 NONAME
-	_ZNK13RApaLsSession21GetAcceptedConfidenceERi @ 167 NONAME
-	_ZNK13RApaLsSession21RecognizeSpecificDataERK7TDesC16RK6TDesC8RK9TDataTypeRi @ 168 NONAME
-	_ZNK13RApaLsSession22GetSupportedDataTypesLER13CArrayFixFlatI9TDataTypeE @ 169 NONAME
-	_ZNK13RApaLsSession23NumberOfOwnDefinedIconsE4TUidRi @ 170 NONAME
-	_ZNK13RApaLsSession7VersionEv @ 171 NONAME
-	_ZNK13RApaLsSession8AppCountERi @ 172 NONAME
-	_ZNK13RApaLsSession9IsProgramERK7TDesC16Ri @ 173 NONAME
-	_ZNK15CApaAIFViewData10ScreenModeEv @ 174 NONAME ABSENT
-	_ZNK15CApaAIFViewData12IconByIndexLEi @ 175 NONAME ABSENT
-	_ZNK15CApaAIFViewData13NumberOfIconsEv @ 176 NONAME ABSENT
-	_ZNK15CApaAIFViewData7ViewUidEv @ 177 NONAME ABSENT
-	_ZNK15CApaAIFViewData8CaptionLE9TLanguage @ 178 NONAME ABSENT
-	_ZNK15CApaAppViewData10IconSizesLEv @ 179 NONAME
-	_ZNK15CApaAppViewData10ScreenModeEv @ 180 NONAME
-	_ZNK15CApaAppViewData3UidEv @ 181 NONAME
-	_ZNK15CApaAppViewData4IconERK5TSize @ 182 NONAME
-	_ZNK16CApaMaskedBitmap12ExternalizeLER12RWriteStream @ 183 NONAME
-	_ZNK16CApaMaskedBitmap4MaskEv @ 184 NONAME
-	_ZNK17CApaSystemControl12ShortCaptionEv @ 185 NONAME
-	_ZNK17CApaSystemControl4IconEv @ 186 NONAME
-	_ZNK17CApaSystemControl4TypeEv @ 187 NONAME
-	_ZNK17CApaSystemControl7CaptionEv @ 188 NONAME
-	_ZNK17CApaSystemControl8FileNameEv @ 189 NONAME
-	_ZNK18TApaPictureFactory11NewPictureLER14TPictureHeaderRK12CStreamStore @ 190 NONAME
-	_ZNK19CApaWindowGroupName10IsAppReadyEv @ 191 NONAME
-	_ZNK19CApaWindowGroupName14DocNameIsAFileEv @ 192 NONAME
-	_ZNK19CApaWindowGroupName15WindowGroupNameEv @ 193 NONAME
-	_ZNK19CApaWindowGroupName18SetWindowGroupNameER12RWindowGroup @ 194 NONAME
-	_ZNK19CApaWindowGroupName23RespondsToShutdownEventEv @ 195 NONAME
-	_ZNK19CApaWindowGroupName26RespondsToSwitchFilesEventEv @ 196 NONAME
-	_ZNK19CApaWindowGroupName6AppUidEv @ 197 NONAME
-	_ZNK19CApaWindowGroupName6IsBusyEv @ 198 NONAME
-	_ZNK19CApaWindowGroupName7CaptionEv @ 199 NONAME
-	_ZNK19CApaWindowGroupName7DocNameEv @ 200 NONAME
-	_ZNK19CApaWindowGroupName8IsSystemEv @ 201 NONAME
-	_ZNK21CApaAppInfoFileReader10CapabilityER5TDes8 @ 202 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader14GetOwnedFilesLER12CDesC16Array @ 203 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader15NumberOfBitmapsEv @ 204 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader19DataTypesSupportedLER9CArrayFixI21TDataTypeWithPriorityE @ 205 NONAME ABSENT
-	_ZNK21CApaAppInfoFileReader9GetViewsLER9CArrayPtrI15CApaAIFViewDataE @ 206 NONAME ABSENT
-	_ZNK21CApaSystemControlList5CountEv @ 207 NONAME
-	_ZNK21CApaSystemControlList5IndexE4TUid @ 208 NONAME
-	_ZNK21CApaSystemControlList7ControlE4TUid @ 209 NONAME
-	_ZNK21CApaSystemControlList7ControlEi @ 210 NONAME
-	_ZNK8CApaDoor7AppUidLEv @ 211 NONAME
-	_ZNK8TApaTask4WgIdEv @ 212 NONAME
-	_ZNK8TApaTask6ExistsEv @ 213 NONAME
-	_ZNK8TApaTask8ThreadIdEv @ 214 NONAME
-	_ZTI18TApaPictureFactory @ 215 NONAME ; #<TI>#
-	_ZTV18TApaPictureFactory @ 216 NONAME ; #<VT>#
-	_ZTI11CApaAppData @ 217 NONAME ; #<TI>#
-	_ZTI11CApaAppList @ 218 NONAME ; #<TI>#
-	_ZTI12CApaAppEntry @ 219 NONAME ; #<TI>#
-	_ZTI14CApaAIFCaption @ 220 NONAME ABSENT ; #<TI>#
-	_ZTI15CApaAIFViewData @ 221 NONAME ABSENT ; #<TI>#
-	_ZTI15CApaAppInfoFile @ 222 NONAME ABSENT ; #<TI>#
-	_ZTI15CApaAppViewData @ 223 NONAME ; #<TI>#
-	_ZTI15CApaIconPicture @ 224 NONAME ; #<TI>#
-	_ZTI16CApaMaskedBitmap @ 225 NONAME ; #<TI>#
-	_ZTI16TDesCArrayFiller @ 226 NONAME ; #<TI>#
-	_ZTI16TSizeArrayFiller @ 227 NONAME ; #<TI>#
-	_ZTI17CApaSystemControl @ 228 NONAME ; #<TI>#
-	_ZTI19CApaAppListNotifier @ 229 NONAME ; #<TI>#
-	_ZTI19CApaWindowGroupName @ 230 NONAME ; #<TI>#
-	_ZTI20TViewDataArrayFiller @ 231 NONAME ; #<TI>#
-	_ZTI21CApaAppInfoFileReader @ 232 NONAME ABSENT ; #<TI>#
-	_ZTI21CApaAppInfoFileWriter @ 233 NONAME ; #<TI>#
-	_ZTI21CApaSystemControlList @ 234 NONAME ; #<TI>#
-	_ZTI7HBufBuf @ 235 NONAME ; #<TI>#
-	_ZTI8CApaDoor @ 236 NONAME ; #<TI>#
-	_ZTV11CApaAppData @ 237 NONAME ; #<VT>#
-	_ZTV11CApaAppList @ 238 NONAME ; #<VT>#
-	_ZTV12CApaAppEntry @ 239 NONAME ; #<VT>#
-	_ZTV14CApaAIFCaption @ 240 NONAME ABSENT ; #<VT>#
-	_ZTV15CApaAIFViewData @ 241 NONAME ABSENT ; #<VT>#
-	_ZTV15CApaAppInfoFile @ 242 NONAME ABSENT ; #<VT>#
-	_ZTV15CApaAppViewData @ 243 NONAME ; #<VT>#
-	_ZTV15CApaIconPicture @ 244 NONAME ; #<VT>#
-	_ZTV16CApaMaskedBitmap @ 245 NONAME ; #<VT>#
-	_ZTV16TDesCArrayFiller @ 246 NONAME ; #<VT>#
-	_ZTV16TSizeArrayFiller @ 247 NONAME ; #<VT>#
-	_ZTV17CApaSystemControl @ 248 NONAME ; #<VT>#
-	_ZTV19CApaAppListNotifier @ 249 NONAME ; #<VT>#
-	_ZTV19CApaWindowGroupName @ 250 NONAME ; #<VT>#
-	_ZTV20TViewDataArrayFiller @ 251 NONAME ; #<VT>#
-	_ZTV21CApaAppInfoFileReader @ 252 NONAME ABSENT ; #<VT>#
-	_ZTV21CApaAppInfoFileWriter @ 253 NONAME ; #<VT>#
-	_ZTV21CApaSystemControlList @ 254 NONAME ; #<VT>#
-	_ZTV7HBufBuf @ 255 NONAME ; #<VT>#
-	_ZTV8CApaDoor @ 256 NONAME ; #<VT>#
-	_ZN11CApaAppList4NewLER3RFsP13CApaAppFinderP16CApaAppRegFinderi @ 257 NONAME ABSENT
-	_ZNK11CApaAppData12IconFileNameEv @ 258 NONAME
-	_ZNK11CApaAppData14NonMbmIconFileEv @ 259 NONAME
-	_ZNK11CApaAppData19DefaultScreenNumberEv @ 260 NONAME
-	_ZNK11CApaAppData20RegistrationFileUsedEv @ 261 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUidRP7HBufC16 @ 262 NONAME
-	_ZNK13RApaLsSession14GetAppViewIconE4TUidS0_RP7HBufC16 @ 263 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsEjj @ 264 NONAME
-	_ZNK13RApaLsSession15GetFilteredAppsEjji @ 265 NONAME
-	_ZNK15CApaAppViewData12IconFileNameEv @ 266 NONAME
-	_ZNK15CApaAppViewData14NonMbmIconFileEv @ 267 NONAME
-	_ZTI17CApaAppInfoReader @ 268 NONAME ; #<TI>#
-	_ZTI19CApaAppInfoReaderV1 @ 269 NONAME ABSENT ; #<TI>#
-	_ZTI19CApaAppInfoReaderV2 @ 270 NONAME ; #<TI>#
-	_ZTV17CApaAppInfoReader @ 271 NONAME ; #<VT>#
-	_ZTV19CApaAppInfoReaderV1 @ 272 NONAME ABSENT ; #<VT>#
-	_ZTV19CApaAppInfoReaderV2 @ 273 NONAME ; #<VT>#
-	_Z16StartupApaServerR14MApaAppStarter @ 274 NONAME
-	_Z23StartupApaServerProcessv @ 275 NONAME
-	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType @ 276 NONAME
-	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUid @ 277 NONAME
-	_ZN13RApaLsSession25InsertDataMappingIfHigherERK9TDataTypel4TUidRi @ 278 NONAME
-	_ZNK11CApaAppData19ApplicationLanguageEv @ 279 NONAME
-	_ZNK13RApaLsSession19ApplicationLanguageE4TUidR9TLanguage @ 280 NONAME
-	_ZN21CApaSystemControlList4NewLER3RFs @ 281 NONAME
-	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 282 NONAME
-	_ZNK11CApaAppList17ServiceUidBufferLE4TUid @ 283 NONAME
-	_ZNK11CApaAppList19ServiceArrayBufferLE4TUid @ 284 NONAME
-	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataTypePK4TUidRi @ 285 NONAME
-	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUid @ 286 NONAME
-	_ZNK11CApaAppList24ServiceOpaqueDataBufferLE4TUidS0_ @ 287 NONAME
-	_ZNK13RApaLsSession13GetServerAppsE4TUid @ 288 NONAME
-	_ZNK13RApaLsSession13GetServerAppsE4TUidi @ 289 NONAME
-	_ZNK13RApaLsSession15GetAppServicesLE4TUidR13CArrayFixFlatIS0_E @ 290 NONAME
-	_ZNK13RApaLsSession16GetAppServicesLCE4TUid @ 291 NONAME
-	_ZNK13RApaLsSession24AppForDataTypeAndServiceERK9TDataType4TUidRS3_ @ 292 NONAME
-	_ZNK13RApaLsSession24AppForDocumentAndServiceERK5RFile4TUidRS3_R9TDataType @ 293 NONAME
-	_ZNK13RApaLsSession24AppForDocumentAndServiceERK7TDesC164TUidRS3_R9TDataType @ 294 NONAME
-	_ZNK13RApaLsSession25GetAppServiceOpaqueDataLCE4TUidS0_ @ 295 NONAME
-	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUid @ 296 NONAME
-	_ZNK18TApaAppServiceInfo10OpaqueDataEv @ 297 NONAME
-	_ZNK18TApaAppServiceInfo3UidEv @ 298 NONAME
-	_ZTI30CApaAppServiceInfoArrayWrapper @ 299 NONAME ; #<TI>#
-	_ZTV30CApaAppServiceInfoArrayWrapper @ 300 NONAME ; #<VT>#
-	_ZN13RApaLsSession13StartDocumentER5RFileR9TThreadIdP14TRequestStatus @ 301 NONAME
-	_ZN21CApaAppInfoFileReader27CreateMaskedBitmapByIndexLCEi @ 302 NONAME ABSENT
-	_ZNK13RApaLsSession36CancelListPopulationCompleteObserverEv @ 303 NONAME
-	_ZNK13RApaLsSession38RegisterListPopulationCompleteObserverER14TRequestStatus @ 304 NONAME
-	_ZN8ApaUtils24HandleAsRegistrationFileERK8TUidType @ 305 NONAME
-	_ZN13RApaLsSession33RegisterJavaMIDletViaIterimFormatERK7TDesC16R5RFile @ 306 NONAME ABSENT
-	_ZN22ForJavaMIDletInstaller33CheckInterimFormatFileNotCorruptLER5RFile @ 307 NONAME
-	_ZN13RApaLsSession20DeregisterJavaMIDletERK7TDesC16 @ 308 NONAME ABSENT
-	_ZN13RApaLsSession13SetFsSessionLER3RFs @ 309 NONAME
-	_ZN13RApaLsSession13StartDocumentER5RFile4TUidR9TThreadIdP14TRequestStatus @ 310 NONAME
-	_ZN13RApaLsSession13StartDocumentER5RFileRK9TDataTypeR9TThreadIdP14TRequestStatus @ 311 NONAME
-	_ZN13RApaLsSession14ClearFsSessionEv @ 312 NONAME
-	_ZN13RApaLsSession9FsSessionEv @ 313 NONAME
-	_ZNK13RApaLsSession13RecognizeDataERK5RFileR22TDataRecognitionResult @ 314 NONAME
-	_ZNK13RApaLsSession14AppForDocumentERK5RFileR4TUidR9TDataType @ 315 NONAME
-	_ZNK13RApaLsSession21RecognizeSpecificDataERK5RFileRK9TDataTypeRi @ 316 NONAME
-	_ZNK13RApaLsSession19GetPreferredBufSizeERi @ 317 NONAME
-	_ZN22ForJavaMIDletInstaller18GetJavaMIDletInfoLER3RFsRK7TDesC16RmS5_ @ 318 NONAME
-	_ZN22ForJavaMIDletInstaller28NewInterimFormatFileWriterLCER3RFsRK7TDesC164TUidmi @ 319 NONAME
-	_ZNK18TApaAppServiceInfo9DataTypesEv @ 320 NONAME
-	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUidRK9TDataType @ 321 NONAME
-	_ZNK13RApaLsSession27GetServiceImplementationsLCE4TUidRK9TDataType @ 322 NONAME
-	_ZN13RApaLsSession5CloseEv @ 323 NONAME
-	_ZTI22CApaLsSessionExtension @ 324 NONAME ; #<TI>#
-	_ZTV22CApaLsSessionExtension @ 325 NONAME ; #<VT>#
-	_ZN13RApaLsSession23RApaLsSession_Reserved1Ev @ 326 NONAME
-	_ZN13RApaLsSession23RApaLsSession_Reserved2Ev @ 327 NONAME
-	_ZN18TApaPictureFactoryC1Ev @ 328 NONAME
-	_ZN18TApaPictureFactoryC2Ev @ 329 NONAME
-	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved1Ev @ 330 NONAME
-	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved2Ev @ 331 NONAME
-	_ZN23MApaAppListServObserverC2Ev @ 332 NONAME
-	_ZTI13RApaLsSession @ 333 NONAME ; #<TI>#
-	_ZTI23MApaAppListServObserver @ 334 NONAME ; #<TI>#
-	_ZTV13RApaLsSession @ 335 NONAME ; #<VT>#
-	_ZTV23MApaAppListServObserver @ 336 NONAME ; #<VT>#
-	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArray @ 337 NONAME
-	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16R27CDataRecognitionResultArrayR14TRequestStatus @ 338 NONAME
-	_ZNK13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArray @ 339 NONAME
-	_ZN13RApaLsSession15RecognizeFilesLERK7TDesC16RK6TDesC8R27CDataRecognitionResultArrayR14TRequestStatus @ 340 NONAME
-	_ZN13RApaLsSession20CancelRecognizeFilesEv @ 341 NONAME
-	_ZN27CDataRecognitionResultArrayC1Ev @ 342 NONAME
-	_ZN27CDataRecognitionResultArrayC2Ev @ 343 NONAME
-	_ZN27CDataRecognitionResultArrayD0Ev @ 344 NONAME
-	_ZN27CDataRecognitionResultArrayD1Ev @ 345 NONAME
-	_ZN27CDataRecognitionResultArrayD2Ev @ 346 NONAME
-	_ZNK27CDataRecognitionResultArray12GetFileNameLER4TBufILi256EEj @ 347 NONAME
-	_ZNK27CDataRecognitionResultArray25GetDataRecognitionResultLER22TDataRecognitionResultj @ 348 NONAME
-	_ZNK27CDataRecognitionResultArray4PathEv @ 349 NONAME
-	_ZNK27CDataRecognitionResultArray5CountEv @ 350 NONAME
-	_ZTI21CAsyncFileRecognition @ 351 NONAME ; #<TI>#
-	_ZTI27CDataRecognitionResultArray @ 352 NONAME ; #<TI>#
-	_ZTI32CDataRecognitionResultArrayEntry @ 353 NONAME ; #<TI>#
-	_ZTV21CAsyncFileRecognition @ 354 NONAME ; #<VT>#
-	_ZTV27CDataRecognitionResultArray @ 355 NONAME ; #<VT>#
-	_ZTV32CDataRecognitionResultArrayEntry @ 356 NONAME ; #<VT>#
-	_ZNK13RApaLsSession16GetAppByDataTypeERK9TDataType4TUidRS3_ @ 357 NONAME
-	_ZN13RApaLsSession17DeleteDataMappingERK9TDataType4TUid @ 358 NONAME
-	_ZN13RApaLsSession17InsertDataMappingERK9TDataTypel4TUidS3_ @ 359 NONAME
-	_ZN13RApaLsSession29RegisterNonNativeApplicationLE4TUidRK10TDriveUnitR34CApaRegistrationResourceFileWriterP33CApaLocalisableResourceFileWriterPK5RFile @ 360 NONAME
-	_ZN13RApaLsSession31DeregisterNonNativeApplicationLE4TUid @ 361 NONAME
-	_ZN13RApaLsSession33RegisterNonNativeApplicationTypeLE4TUidRK7TDesC16 @ 362 NONAME
-	_ZN13RApaLsSession35DeregisterNonNativeApplicationTypeLE4TUid @ 363 NONAME
-	_ZN13RApaLsSession8StartAppERK15CApaCommandLineR9TThreadIdP14TRequestStatus @ 364 NONAME
-	_ZNK11CApaAppData10OpaqueDataEv @ 365 NONAME
-	_ZNK11CApaAppData20RegistrationFileNameEv @ 366 NONAME
-	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 367 NONAME
-	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 368 NONAME
-	_ZNK13RApaLsSession22GetDefaultScreenNumberERi4TUid @ 369 NONAME
-	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 370 NONAME
-	_ZNK13RApaLsSession21MatchesSecurityPolicyERi4TUidRK15TSecurityPolicy @ 371 NONAME
-	_ZN33CApaLocalisableResourceFileWriterD1Ev @ 372 NONAME
-	_ZN33CApaLocalisableResourceFileWriterD2Ev @ 373 NONAME
-	_ZN34CApaRegistrationResourceFileWriter12AddDataTypeLEiRK6TDesC8 @ 374 NONAME
-	_ZN34CApaRegistrationResourceFileWriter13SetGroupNameLERK7TDesC16 @ 375 NONAME
-	_ZN34CApaRegistrationResourceFileWriter14SetOpaqueDataLERK6TDesC8 @ 376 NONAME
-	_ZN34CApaRegistrationResourceFileWriter15SetAppIsHiddenLEi @ 377 NONAME
-	_ZN34CApaRegistrationResourceFileWriter17SetEmbeddabilityLEN17TApaAppCapability14TEmbeddabilityE @ 378 NONAME
-	_ZN34CApaRegistrationResourceFileWriter19SetSupportsNewFileLEi @ 379 NONAME
-	_ZN34CApaRegistrationResourceFileWriter21AddFileOwnershipInfoLERK7TDesC16 @ 380 NONAME
-	_ZN34CApaRegistrationResourceFileWriter22SetLaunchInBackgroundLEi @ 381 NONAME
-	_ZN34CApaRegistrationResourceFileWriter23SetDefaultScreenNumberLEi @ 382 NONAME
-	_ZN34CApaRegistrationResourceFileWriter4NewLE4TUidRK7TDesC16j @ 383 NONAME
-	_ZN34CApaRegistrationResourceFileWriterD0Ev @ 384 NONAME
-	_ZN34CApaRegistrationResourceFileWriterD1Ev @ 385 NONAME
-	_ZN34CApaRegistrationResourceFileWriterD2Ev @ 386 NONAME
-	_ZNK11CApaAppData24NonNativeApplicationTypeEv @ 387 NONAME
-	_ZTI33CApaLocalisableResourceFileWriter @ 388 NONAME ; #<TI>#
-	_ZTI34CApaRegistrationResourceFileWriter @ 389 NONAME ; #<TI>#
-	_ZTIN26CApaResourceFileWriterBase11RBufferSinkE @ 390 NONAME ; #<TI>#
-	_ZTV33CApaLocalisableResourceFileWriter @ 391 NONAME ; #<VT>#
-	_ZTV34CApaRegistrationResourceFileWriter @ 392 NONAME ; #<VT>#
-	_ZTVN26CApaResourceFileWriterBase11RBufferSinkE @ 393 NONAME ; #<VT>#
-	_ZN33CApaLocalisableResourceFileWriter4NewLERK7TDesC16S2_iS2_ @ 394 NONAME
-	_ZN33CApaLocalisableResourceFileWriterD0Ev @ 395 NONAME
-	_ZN13RApaLsSession12CancelNotifyEv @ 396 NONAME
-	_ZN13RApaLsSession9SetNotifyEiR14TRequestStatus @ 397 NONAME
-	_ZNK11CApaAppList17AppScanInProgressEv @ 398 NONAME
-	_ZN13RApaLsSession25NotifyOnDataMappingChangeER14TRequestStatus @ 399 NONAME
-	_ZN13RApaLsSession31CancelNotifyOnDataMappingChangeEv @ 400 NONAME
-	_ZNK13RApaLsSession10GetAppTypeER4TUidS0_ @ 401 NONAME
-	_ZN13RApaLsSession35CommitNonNativeApplicationsUpdatesLEv @ 402 NONAME
-	_ZN13RApaLsSession36PrepareNonNativeApplicationsUpdatesLEv @ 403 NONAME
-	_ZN13RApaLsSession36RollbackNonNativeApplicationsUpdatesEv @ 404 NONAME
-	_ZN11CApaAppList15UpdatedAppsListEv @ 405 NONAME ABSENT
-	_ZN11CApaAppList18SetUpdatedAppsListEP16CUpdatedAppsList @ 406 NONAME ABSENT
-	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 407 NONAME
-	_ZN11CApaAppDataD0Ev @ 408 NONAME
-	_ZN11CApaAppDataD1Ev @ 409 NONAME
-	_ZN11CApaAppDataD2Ev @ 410 NONAME
-	_ZN11CApaAppList24ShareProtectedFileServerEv @ 411 NONAME ABSENT
-	_ZN11CApaAppList4SelfEv @ 412 NONAME
-	X @ 413 NONAME ABSENT
-	X @ 414 NONAME ABSENT
-	X @ 415 NONAME ABSENT
-	X @ 416 NONAME ABSENT
-	_ZN13RApaLsSession18SetAppShortCaptionERK7TDesC169TLanguage4TUid @ 417 NONAME
-	_ZN11CApaAppData16SetShortCaptionLERK7TDesC16 @ 418 NONAME
-	_ZN11CApaAppList14CompareStringsERK7HBufC16S2_ @ 419 NONAME
-	_ZN11CApaAppList22AddForcedRegistrationLEP7HBufC16 @ 420 NONAME
-	_ZN13RApaLsSession17ForceRegistrationERK13RPointerArrayI7TDesC16E @ 421 NONAME
-	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 422 NONAME
-	_ZN11CApaAppList12RestartScanLEv @ 423 NONAME
-	_ZN11CApaAppList8StopScanEi @ 424 NONAME
-	KMinApplicationStackSize @ 425 NONAME DATA 4
-	_Z23MinApplicationStackSizev @ 426 NONAME
-	_ZNK11CApaAppData9IsPendingEv @ 427 NONAME
-	_ZNK11CApaAppList23IsLanguageChangePendingEv @ 428 NONAME
-	_ZNK13RApaLsSession10GetAppIconE4TUidR5RFile @ 429 NONAME
-	_ZN17CApaSecurityUtils16CheckAppSecurityERK7TPtrC16RiS3_ @ 430 NONAME
-	_ZN11CApaAppData11SetCaptionLERK7TDesC16 @ 431 NONAME
-	_ZN11CApaAppData9SetIconsLERK7TDesC16i @ 432 NONAME
-	_ZN13RApaLsSession40ForceCommitNonNativeApplicationsUpdatesLEv @ 433 NONAME
-	_ZN11CApaAppList20AppListUpdatePendingEv @ 434 NONAME
-	_ZN11CApaAppList19UninstalledAppArrayEv @ 435 NONAME
-	
\ No newline at end of file
--- a/localisation/apparchitecture/eabi/APPARCU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/eabi/APPARCU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -1,6 +1,6 @@
 EXPORTS
 	_ZN11CApaProcess10ConstructLEv @ 1 NONAME
-	_ZN11CApaProcess15AddNewDocumentLERK7TDesC164TUid @ 2 NONAME
+	_ZN11CApaProcess15AddNewDocumentLERK7TDesC164TUid @ 2 NONAME ABSENT
 	_ZN11CApaProcess15DestroyDocumentEP12CApaDocument @ 3 NONAME
 	_ZN11CApaProcess15SetMainDocumentEP12CApaDocument @ 4 NONAME
 	_ZN11CApaProcess16OpenNewDocumentLERP10CFileStoreRP17CStreamDictionaryRK7TDesC16j @ 5 NONAME
@@ -10,10 +10,10 @@
 	_ZN11CApaProcess18ReadAppIdentifierLERK12CStreamStoreRK17CStreamDictionary @ 9 NONAME
 	_ZN11CApaProcess18SetMainDocFileNameERK7TDesC16 @ 10 NONAME
 	_ZN11CApaProcess19WriteAppIdentifierLER12CStreamStoreR17CStreamDictionaryRK17TApaAppIdentifier @ 11 NONAME
-	_ZN11CApaProcess4NewLERK3RFsR13CApaAppFinder @ 12 NONAME
+	_ZN11CApaProcess4NewLERK3RFsR13CApaAppFinder @ 12 NONAME ABSENT
 	_ZN11CApaProcess6ResetLEv @ 13 NONAME
-	_ZN11CApaProcessC1ERK3RFsR13CApaAppFinder @ 14 NONAME
-	_ZN11CApaProcessC2ERK3RFsR13CApaAppFinder @ 15 NONAME
+	_ZN11CApaProcessC1ERK3RFsR13CApaAppFinder @ 14 NONAME ABSENT
+	_ZN11CApaProcessC2ERK3RFsR13CApaAppFinder @ 15 NONAME ABSENT
 	_ZN11CApaProcessD0Ev @ 16 NONAME
 	_ZN11CApaProcessD1Ev @ 17 NONAME
 	_ZN11CApaProcessD2Ev @ 18 NONAME
@@ -35,11 +35,11 @@
 	_ZN12CApaDocumentD1Ev @ 34 NONAME
 	_ZN12CApaDocumentD2Ev @ 35 NONAME
 	_ZN12CApaDoorBase22InternalizeBaseStreamLERK12CStreamStoreRK17CStreamDictionary @ 36 NONAME
-	_ZN12TApaAppEntry12InternalizeLER11RReadStream @ 37 NONAME
-	_ZN12TApaAppEntryC1ERK8TUidTypeRK4TBufILi256EE @ 38 NONAME
-	_ZN12TApaAppEntryC1Ev @ 39 NONAME
-	_ZN12TApaAppEntryC2ERK8TUidTypeRK4TBufILi256EE @ 40 NONAME
-	_ZN12TApaAppEntryC2Ev @ 41 NONAME
+	_ZN12TApaAppEntry12InternalizeLER11RReadStream @ 37 NONAME ABSENT
+	_ZN12TApaAppEntryC1ERK8TUidTypeRK4TBufILi256EE @ 38 NONAME ABSENT
+	_ZN12TApaAppEntryC1Ev @ 39 NONAME ABSENT
+	_ZN12TApaAppEntryC2ERK8TUidTypeRK4TBufILi256EE @ 40 NONAME ABSENT
+	_ZN12TApaAppEntryC2Ev @ 41 NONAME ABSENT
 	_ZN13CApaModelDoor14SetScaleFactorEii @ 42 NONAME
 	_ZN13CApaModelDoor16DetachFromStoreLEN8CPicture7TDetachE @ 43 NONAME
 	_ZN13CApaModelDoor4NewLEP15CApaModelHeader @ 44 NONAME
@@ -56,15 +56,15 @@
 	_ZN15CApaApplication16GenerateFileNameER3RFsR4TBufILi256EE @ 55 NONAME
 	_ZN15CApaCommandLine11SetCommandLE11TApaCommand @ 56 NONAME
 	_ZN15CApaCommandLine11SetTailEndLERK6TDesC8 @ 57 NONAME
-	_ZN15CApaCommandLine15SetLibraryNameLERK7TDesC16 @ 58 NONAME
+	_ZN15CApaCommandLine15SetLibraryNameLERK7TDesC16 @ 58 NONAME ABSENT
 	_ZN15CApaCommandLine16SetDocumentNameLERK7TDesC16 @ 59 NONAME
-	_ZN15CApaCommandLine17SetReserveLengthLEi @ 60 NONAME
-	_ZN15CApaCommandLine18SetFullCommandLineEP7HBufC16 @ 61 NONAME
-	_ZN15CApaCommandLine19SetFullCommandLineLERK7TDesC16 @ 62 NONAME
-	_ZN15CApaCommandLine3NewEP7HBufC16 @ 63 NONAME
-	_ZN15CApaCommandLine4NewLERK7TDesC16 @ 64 NONAME
+	_ZN15CApaCommandLine17SetReserveLengthLEi @ 60 NONAME ABSENT
+	_ZN15CApaCommandLine18SetFullCommandLineEP7HBufC16 @ 61 NONAME ABSENT
+	_ZN15CApaCommandLine19SetFullCommandLineLERK7TDesC16 @ 62 NONAME ABSENT
+	_ZN15CApaCommandLine3NewEP7HBufC16 @ 63 NONAME ABSENT
+	_ZN15CApaCommandLine4NewLERK7TDesC16 @ 64 NONAME ABSENT
 	_ZN15CApaCommandLine4NewLEv @ 65 NONAME
-	_ZN15CApaCommandLine5NewLCERK7TDesC16 @ 66 NONAME
+	_ZN15CApaCommandLine5NewLCERK7TDesC16 @ 66 NONAME ABSENT
 	_ZN15CApaCommandLine5NewLCEv @ 67 NONAME
 	_ZN15CApaCommandLineD0Ev @ 68 NONAME
 	_ZN15CApaCommandLineD1Ev @ 69 NONAME
@@ -82,7 +82,7 @@
 	_ZN15TApaAppViewInfoC2Ev @ 81 NONAME
 	_ZN17TApaAppCapability12InternalizeLER11RReadStream @ 82 NONAME
 	_ZN17TApaAppCapability14CopyCapabilityER5TDes8RK6TDesC8 @ 83 NONAME
-	_ZN17TApaAppCapability15Internalize7_0LER11RReadStream @ 84 NONAME
+	_ZN17TApaAppCapability15Internalize7_0LER11RReadStream @ 84 NONAME ABSENT
 	_ZN17TApaAppIdentifier12InternalizeLER11RReadStream @ 85 NONAME
 	_ZN17TApaAppIdentifierC1E4TUidRK4TBufILi256EE @ 86 NONAME
 	_ZN17TApaAppIdentifierC1Ev @ 87 NONAME
@@ -93,27 +93,27 @@
 	_ZN17TApaLastUsedEntryC1Ev @ 92 NONAME ABSENT
 	_ZN17TApaLastUsedEntryC2E4TBufILi256EE4TUid @ 93 NONAME ABSENT
 	_ZN17TApaLastUsedEntryC2Ev @ 94 NONAME ABSENT
-	_ZN18CApaFileRecognizer13SetAppLocatorEP14CApaAppLocator @ 95 NONAME
-	_ZN18CApaFileRecognizer14RecognizeFileLERK7TDesC16PK8TUidType @ 96 NONAME
-	_ZN18CApaFileRecognizer21AddFileRecognizerTypeEP22CApaFileRecognizerType @ 97 NONAME
-	_ZN18CApaFileRecognizer21DestroyRecognizerListEv @ 98 NONAME
-	_ZN18CApaFileRecognizer24RemoveFileRecognizerTypeEPK22CApaFileRecognizerType @ 99 NONAME
-	_ZN18CApaFileRecognizerC1ER3RFs @ 100 NONAME
-	_ZN18CApaFileRecognizerC2ER3RFs @ 101 NONAME
-	_ZN18CApaFileRecognizerD0Ev @ 102 NONAME
-	_ZN18CApaFileRecognizerD1Ev @ 103 NONAME
-	_ZN18CApaFileRecognizerD2Ev @ 104 NONAME
+	_ZN18CApaFileRecognizer13SetAppLocatorEP14CApaAppLocator @ 95 NONAME ABSENT
+	_ZN18CApaFileRecognizer14RecognizeFileLERK7TDesC16PK8TUidType @ 96 NONAME ABSENT
+	_ZN18CApaFileRecognizer21AddFileRecognizerTypeEP22CApaFileRecognizerType @ 97 NONAME ABSENT
+	_ZN18CApaFileRecognizer21DestroyRecognizerListEv @ 98 NONAME ABSENT
+	_ZN18CApaFileRecognizer24RemoveFileRecognizerTypeEPK22CApaFileRecognizerType @ 99 NONAME ABSENT
+	_ZN18CApaFileRecognizerC1ER3RFs @ 100 NONAME ABSENT
+	_ZN18CApaFileRecognizerC2ER3RFs @ 101 NONAME ABSENT
+	_ZN18CApaFileRecognizerD0Ev @ 102 NONAME ABSENT
+	_ZN18CApaFileRecognizerD1Ev @ 103 NONAME ABSENT
+	_ZN18CApaFileRecognizerD2Ev @ 104 NONAME ABSENT
 	_ZN18TApaDocCleanupItem9DoCleanupEPv @ 105 NONAME
 	_ZN20TApaModelDoorFactoryC1EPK22MApaModelHeaderFactory @ 106 NONAME
 	_ZN20TApaModelDoorFactoryC2EPK22MApaModelHeaderFactory @ 107 NONAME
-	_ZN22CApaFileRecognizerType10Reserved_1Ev @ 108 NONAME
-	_ZN22CApaFileRecognizerType4LockEv @ 109 NONAME
-	_ZN22CApaFileRecognizerType6UnlockEv @ 110 NONAME
-	_ZTV22CApaFileRecognizerType @ 111 NONAME ; #<VT>#
-	_ZN22CApaFileRecognizerTypeC2Ev @ 112 NONAME
-	_ZN22CApaFileRecognizerTypeD0Ev @ 113 NONAME
-	_ZN22CApaFileRecognizerTypeD1Ev @ 114 NONAME
-	_ZN22CApaFileRecognizerTypeD2Ev @ 115 NONAME
+	_ZN22CApaFileRecognizerType10Reserved_1Ev @ 108 NONAME ABSENT
+	_ZN22CApaFileRecognizerType4LockEv @ 109 NONAME ABSENT
+	_ZN22CApaFileRecognizerType6UnlockEv @ 110 NONAME ABSENT
+	_ZTV22CApaFileRecognizerType @ 111 NONAME ABSENT ; #<VT>#
+	_ZN22CApaFileRecognizerTypeC2Ev @ 112 NONAME ABSENT
+	_ZN22CApaFileRecognizerTypeD0Ev @ 113 NONAME ABSENT
+	_ZN22CApaFileRecognizerTypeD1Ev @ 114 NONAME ABSENT
+	_ZN22CApaFileRecognizerTypeD2Ev @ 115 NONAME ABSENT
 	_ZN23TApaEmbeddabilityFilter16AddEmbeddabilityEN17TApaAppCapability14TEmbeddabilityE @ 116 NONAME
 	_ZN23TApaEmbeddabilityFilterC1Ev @ 117 NONAME
 	_ZN23TApaEmbeddabilityFilterC2Ev @ 118 NONAME
@@ -123,7 +123,7 @@
 	_ZNK12CApaDocument12ExternalizeLER12RWriteStream @ 122 NONAME
 	_ZNK12CApaDocument17ValidatePasswordLEv @ 123 NONAME
 	_ZNK12CApaDoorBase22ExternalizeBaseStreamLER12CStreamStoreR17CStreamDictionary @ 124 NONAME
-	_ZNK12TApaAppEntry12ExternalizeLER12RWriteStream @ 125 NONAME
+	_ZNK12TApaAppEntry12ExternalizeLER12RWriteStream @ 125 NONAME ABSENT
 	_ZNK13CApaModelDoor12ExternalizeLER12RWriteStream @ 126 NONAME
 	_ZNK13CApaModelDoor16ScaleFactorWidthEv @ 127 NONAME
 	_ZNK13CApaModelDoor17ScaleFactorHeightEv @ 128 NONAME
@@ -132,38 +132,38 @@
 	_ZNK13CApaModelDoor6StoreLER12CStreamStore @ 131 NONAME
 	_ZNK15CApaApplication11AppFullNameEv @ 132 NONAME
 	_ZNK15CApaApplication12OpenIniFileLER3RFs @ 133 NONAME
-	_ZNK15CApaApplication16OpenAppInfoFileLEv @ 134 NONAME
+	_ZNK15CApaApplication16OpenAppInfoFileLEv @ 134 NONAME ABSENT
 	_ZNK15CApaApplication7DllNameEv @ 135 NONAME
-	_ZNK15CApaCommandLine11LibraryNameEv @ 136 NONAME
+	_ZNK15CApaCommandLine11LibraryNameEv @ 136 NONAME ABSENT
 	_ZNK15CApaCommandLine12DocumentNameEv @ 137 NONAME
-	_ZNK15CApaCommandLine15FullCommandLineEv @ 138 NONAME
+	_ZNK15CApaCommandLine15FullCommandLineEv @ 138 NONAME ABSENT
 	_ZNK15CApaCommandLine7CommandEv @ 139 NONAME
 	_ZNK15CApaCommandLine7TailEndEv @ 140 NONAME
 	_ZNK15TApaAppInfo_7_012ExternalizeLER12RWriteStream @ 141 NONAME ABSENT
 	_ZNK15TApaAppViewInfo12ExternalizeLER12RWriteStream @ 142 NONAME
 	_ZNK17TApaAppCapability12ExternalizeLER12RWriteStream @ 143 NONAME
-	_ZNK17TApaAppCapability15Externalize7_0LER12RWriteStream @ 144 NONAME
+	_ZNK17TApaAppCapability15Externalize7_0LER12RWriteStream @ 144 NONAME ABSENT
 	_ZNK17TApaAppIdentifier12ExternalizeLER12RWriteStream @ 145 NONAME
 	_ZNK17TApaLastUsedEntry12ExternalizeLER12RWriteStream @ 146 NONAME ABSENT
-	_ZNK18CApaFileRecognizer10AppLocatorEv @ 147 NONAME
+	_ZNK18CApaFileRecognizer10AppLocatorEv @ 147 NONAME ABSENT
 	_ZNK20TApaModelDoorFactory11NewPictureLER14TPictureHeaderRK12CStreamStore @ 148 NONAME
-	_ZNK22CApaFileRecognizerType10CapabilityER5TDes8 @ 149 NONAME
-	_ZNK22CApaFileRecognizerType7AppRunLERK15CApaCommandLine @ 150 NONAME
+	_ZNK22CApaFileRecognizerType10CapabilityER5TDes8 @ 149 NONAME ABSENT
+	_ZNK22CApaFileRecognizerType7AppRunLERK15CApaCommandLine @ 150 NONAME ABSENT
 	_ZNK23TApaEmbeddabilityFilter20MatchesEmbeddabilityEN17TApaAppCapability14TEmbeddabilityE @ 151 NONAME
 	_ZTI11CApaProcess @ 152 NONAME ; #<TI>#
 	_ZTI12CApaDocument @ 153 NONAME ; #<TI>#
 	_ZTI15CApaApplication @ 154 NONAME ; #<TI>#
 	_ZTI15CApaModelHeader @ 155 NONAME ; #<TI>#
-	_ZTI18CApaFileRecognizer @ 156 NONAME ; #<TI>#
+	_ZTI18CApaFileRecognizer @ 156 NONAME ABSENT ; #<TI>#
 	_ZTI20TApaModelDoorFactory @ 157 NONAME ; #<TI>#
-	_ZTI22CApaFileRecognizerType @ 158 NONAME ; #<TI>#
+	_ZTI22CApaFileRecognizerType @ 158 NONAME ABSENT ; #<TI>#
 	_ZTV11CApaProcess @ 159 NONAME ; #<VT>#
 	_ZTV12CApaDocument @ 160 NONAME ; #<VT>#
 	_ZTV15CApaApplication @ 161 NONAME ; #<VT>#
 	_ZTV15CApaModelHeader @ 162 NONAME ; #<VT>#
-	_ZTV18CApaFileRecognizer @ 163 NONAME ; #<VT>#
+	_ZTV18CApaFileRecognizer @ 163 NONAME ABSENT ; #<VT>#
 	_ZTV20TApaModelDoorFactory @ 164 NONAME ; #<VT>#
-	_ZN22CApaFileRecognizerType21CreateFileRecognizerLE4TUid @ 165 NONAME
+	_ZN22CApaFileRecognizerType21CreateFileRecognizerLE4TUid @ 165 NONAME ABSENT
 	_ZN11CApaProcess15AddNewDocumentLE22TApaApplicationFactory @ 166 NONAME
 	_ZN15CApaApplicationD0Ev @ 167 NONAME
 	_ZN15CApaApplicationD1Ev @ 168 NONAME
@@ -174,19 +174,19 @@
 	_ZN22TApaApplicationFactoryC2E4TUid @ 173 NONAME
 	_ZN22TApaApplicationFactoryC2EPFP15CApaApplicationvE @ 174 NONAME
 	_ZN22TApaApplicationFactoryC2ERK26CImplementationInformation @ 175 NONAME
-	_ZTI13CApaAppHolder @ 176 NONAME ; #<TI>#
+	_ZTI13CApaAppHolder @ 176 NONAME ABSENT ; #<TI>#
 	_ZTI13CApaModelDoor @ 177 NONAME ; #<TI>#
 	_ZTI15CApaCommandLine @ 178 NONAME ; #<TI>#
-	_ZTI24CFileRecognizerExtension @ 179 NONAME ; #<TI>#
-	_ZTI7CApaDll @ 180 NONAME ; #<TI>#
-	_ZTI7CApaExe @ 181 NONAME ; #<TI>#
+	_ZTI24CFileRecognizerExtension @ 179 NONAME ABSENT ; #<TI>#
+	_ZTI7CApaDll @ 180 NONAME ABSENT ; #<TI>#
+	_ZTI7CApaExe @ 181 NONAME ABSENT ; #<TI>#
 	_ZTI7HBufBuf @ 182 NONAME ; #<TI>#
-	_ZTV13CApaAppHolder @ 183 NONAME ; #<VT>#
+	_ZTV13CApaAppHolder @ 183 NONAME ABSENT ; #<VT>#
 	_ZTV13CApaModelDoor @ 184 NONAME ; #<VT>#
 	_ZTV15CApaCommandLine @ 185 NONAME ; #<VT>#
-	_ZTV24CFileRecognizerExtension @ 186 NONAME ; #<VT>#
-	_ZTV7CApaDll @ 187 NONAME ; #<VT>#
-	_ZTV7CApaExe @ 188 NONAME ; #<VT>#
+	_ZTV24CFileRecognizerExtension @ 186 NONAME ABSENT ; #<VT>#
+	_ZTV7CApaDll @ 187 NONAME ABSENT ; #<VT>#
+	_ZTV7CApaExe @ 188 NONAME ABSENT ; #<VT>#
 	_ZTV7HBufBuf @ 189 NONAME ; #<VT>#
 	_ZN13CApaAppServer10ConstructLERK7TDesC16 @ 190 NONAME
 	_ZN13CApaAppServer16NotifyServerExitEi @ 191 NONAME
@@ -208,10 +208,10 @@
 	_ZN18CApaAppServiceBaseD0Ev @ 207 NONAME
 	_ZN18CApaAppServiceBaseD1Ev @ 208 NONAME
 	_ZN18CApaAppServiceBaseD2Ev @ 209 NONAME
-	_ZN18RApaAppServiceBase10ServerNameEv @ 210 NONAME
-	_ZN18RApaAppServiceBase16NotifyServerExitER14TRequestStatus @ 211 NONAME
+	_ZNK18RApaAppServiceBase10ServerNameEv @ 210 NONAME
+	_ZNK18RApaAppServiceBase16NotifyServerExitER14TRequestStatus @ 211 NONAME
 	_ZN18RApaAppServiceBase19ConnectExistingAppLERKS_ @ 212 NONAME
-	_ZN18RApaAppServiceBase22CancelNotifyServerExitEv @ 213 NONAME
+	_ZNK18RApaAppServiceBase22CancelNotifyServerExitEv @ 213 NONAME
 	_ZN18RApaAppServiceBase22ConnectExistingByNameLERK7TDesC16 @ 214 NONAME
 	_ZN18RApaAppServiceBase5CloseEv @ 215 NONAME
 	_ZN18RApaAppServiceBaseC2Ev @ 216 NONAME
@@ -225,10 +225,10 @@
 	_ZNK15CApaCommandLine14ServerRequiredEv @ 224 NONAME
 	_ZTI13CApaAppServer @ 225 NONAME ; #<TI>#
 	_ZTI18CApaAppServiceBase @ 226 NONAME ; #<TI>#
-	_ZTI24CApaServerAppExitMonitor @ 227 NONAME ; #<TI>#
+	_ZTI24CApaServerAppExitMonitor @ 227 NONAME ABSENT ; #<TI>#
 	_ZTV13CApaAppServer @ 228 NONAME ; #<VT>#
 	_ZTV18CApaAppServiceBase @ 229 NONAME ; #<VT>#
-	_ZTV24CApaServerAppExitMonitor @ 230 NONAME ; #<VT>#
+	_ZTV24CApaServerAppExitMonitor @ 230 NONAME ABSENT ; #<VT>#
 	_ZN13CApaAppServer18ExtensionInterfaceE4TUidRPv @ 231 NONAME
 	_ZN18CApaAppServiceBase18ExtensionInterfaceE4TUidRPv @ 232 NONAME
 	_ZN18RApaAppServiceBase18ExtensionInterfaceE4TUidRPv @ 233 NONAME
@@ -243,9 +243,9 @@
 	_ZN15CApaCommandLine28ConstructCmdLineFromMessageLERK9RMessage2 @ 242 NONAME
 	_ZN15CApaCommandLine36GetCommandLineFromProcessEnvironmentERPS_ @ 243 NONAME
 	_ZNK15CApaCommandLine12GetIpcArgsLCER8TIpcArgs @ 244 NONAME
-	Apparc_Dummy1 @ 245 NONAME
+	Apparc_Dummy1 @ 245 NONAME ABSENT
 	_ZNK15CApaCommandLine14ExecutableNameEv @ 246 NONAME
-	Apparc_Dummy2 @ 247 NONAME
+	Apparc_Dummy2 @ 247 NONAME ABSENT
 	_ZNK15CApaCommandLine22SetProcessEnvironmentLER8RProcess @ 248 NONAME
 	_ZN11CApaProcess4NewLERK3RFs @ 249 NONAME
 	_ZN15CApaCommandLine17SetDefaultScreenLEi @ 250 NONAME
@@ -257,3 +257,92 @@
 	_ZNK15CApaCommandLine36AppStartupInstrumentationEventIdBaseEv @ 256 NONAME
 	_ZN11CApaProcess16ReadRootStreamLCERP10CFileStoreRK5RFile @ 257 NONAME
 	_ZN15CApaCommandLine16SetDebugMemFailLEi @ 258 NONAME
+	_ZN11CApaProcess21CApaProcess_Reserved1Ev @ 259 NONAME
+	_ZN11CApaProcess21CApaProcess_Reserved2Ev @ 260 NONAME
+	_ZN11CApaProcessC1Ev @ 261 NONAME
+	_ZN11CApaProcessC2Ev @ 262 NONAME
+	_ZN12CApaDocumentC2Ev @ 263 NONAME
+	_ZN12CApaDoorBase14SetCropInTwipsERK8TMargins @ 264 NONAME
+	_ZN12CApaDoorBase14SetScaleFactorEii @ 265 NONAME
+	_ZN12CApaDoorBase15NativePixelSizeER5TSize @ 266 NONAME
+	_ZN12CApaDoorBase22CApaDoorBase_Reserved1Ev @ 267 NONAME
+	_ZN12CApaDoorBase22CApaDoorBase_Reserved2Ev @ 268 NONAME
+	_ZN12CApaDoorBaseC2Ev @ 269 NONAME
+	_ZN13CApaAppFinder23CApaAppFinder_Reserved1Ev @ 270 NONAME ABSENT
+	_ZN13CApaAppFinder23CApaAppFinder_Reserved2Ev @ 271 NONAME ABSENT
+	_ZN13CApaAppFinderC2Ev @ 272 NONAME ABSENT
+	_ZN13CApaAppServer23CApaAppServer_Reserved1Ev @ 273 NONAME
+	_ZN13CApaAppServer23CApaAppServer_Reserved2Ev @ 274 NONAME
+	_ZN13CApaAppServer9DoConnectERK9RMessage2 @ 275 NONAME
+	_ZN14MApaAppStarter24MApaAppStarter_Reserved1Ev @ 276 NONAME
+	_ZN14MApaAppStarter24MApaAppStarter_Reserved2Ev @ 277 NONAME
+	_ZN14MApaAppStarterC2Ev @ 278 NONAME
+	_ZN15CApaApplication25CApaApplication_Reserved1Ev @ 279 NONAME
+	_ZN15CApaApplication25CApaApplication_Reserved2Ev @ 280 NONAME
+	_ZN15CApaApplicationC2Ev @ 281 NONAME
+	_ZN15CApaModelHeader10Reserved_2Ev @ 282 NONAME
+	_ZN15CApaModelHeaderC2Ev @ 283 NONAME
+	_ZN18CApaAppServiceBase10DisconnectERK9RMessage2 @ 284 NONAME
+	_ZN18CApaAppServiceBase14CountResourcesEv @ 285 NONAME
+	_ZN18CApaAppServiceBase28CApaAppServiceBase_Reserved1Ev @ 286 NONAME
+	_ZN18CApaAppServiceBase28CApaAppServiceBase_Reserved2Ev @ 287 NONAME
+	_ZN18RApaAppServiceBase28RApaAppServiceBase_Reserved1Ev @ 288 NONAME
+	_ZN18RApaAppServiceBase28RApaAppServiceBase_Reserved2Ev @ 289 NONAME
+	_ZN22MApaModelHeaderFactory32MApaModelHeaderFactory_Reserved1Ev @ 290 NONAME
+	_ZN22MApaModelHeaderFactory32MApaModelHeaderFactory_Reserved2Ev @ 291 NONAME
+	_ZN22MApaModelHeaderFactoryC2Ev @ 292 NONAME
+	_ZN22TApaApplicationFactoryC1Ev @ 293 NONAME
+	_ZN22TApaApplicationFactoryC2Ev @ 294 NONAME
+	_ZN23CApaAppServiceInfoArray33CApaAppServiceInfoArray_Reserved1Ev @ 295 NONAME
+	_ZN23CApaAppServiceInfoArray33CApaAppServiceInfoArray_Reserved2Ev @ 296 NONAME
+	_ZN23CApaAppServiceInfoArrayC2Ev @ 297 NONAME
+	_ZN23MApaEmbeddedDocObserver33MApaEmbeddedDocObserver_Reserved1Ev @ 298 NONAME
+	_ZN23MApaEmbeddedDocObserver33MApaEmbeddedDocObserver_Reserved2Ev @ 299 NONAME
+	_ZN23MApaEmbeddedDocObserverC2Ev @ 300 NONAME
+	_ZN25MApaServerAppExitObserver35MApaServerAppExitObserver_Reserved1Ev @ 301 NONAME
+	_ZN25MApaServerAppExitObserver35MApaServerAppExitObserver_Reserved2Ev @ 302 NONAME
+	_ZN25MApaServerAppExitObserverC2Ev @ 303 NONAME
+	_ZNK12CApaDoorBase10CapabilityEv @ 304 NONAME
+	_ZNK12CApaDoorBase14GetCropInTwipsER8TMargins @ 305 NONAME
+	_ZNK12CApaDoorBase16ScaleFactorWidthEv @ 306 NONAME
+	_ZNK12CApaDoorBase17LineBreakPossibleEjii @ 307 NONAME
+	_ZNK12CApaDoorBase17ScaleFactorHeightEv @ 308 NONAME
+	_ZNK12CApaDoorBase6StoreLER12CStreamStore @ 309 NONAME
+	_ZTI12CApaDoorBase @ 310 NONAME ; #<TI>#
+	_ZTI13CApaAppFinder @ 311 NONAME ABSENT ; #<TI>#
+	_ZTI14MApaAppStarter @ 312 NONAME ; #<TI>#
+	_ZTI22MApaModelHeaderFactory @ 313 NONAME ; #<TI>#
+	_ZTI23CApaAppServiceInfoArray @ 314 NONAME ; #<TI>#
+	_ZTI23MApaEmbeddedDocObserver @ 315 NONAME ; #<TI>#
+	_ZTI25MApaServerAppExitObserver @ 316 NONAME ; #<TI>#
+	_ZTV12CApaDoorBase @ 317 NONAME ; #<VT>#
+	_ZTV13CApaAppFinder @ 318 NONAME ABSENT ; #<VT>#
+	_ZTV14MApaAppStarter @ 319 NONAME ; #<VT>#
+	_ZTV22MApaModelHeaderFactory @ 320 NONAME ; #<VT>#
+	_ZTV23CApaAppServiceInfoArray @ 321 NONAME ; #<VT>#
+	_ZTV23MApaEmbeddedDocObserver @ 322 NONAME ; #<VT>#
+	_ZTV25MApaServerAppExitObserver @ 323 NONAME ; #<VT>#
+	_ZN15CApaCommandLine14SetOpaqueDataLERK6TDesC8 @ 324 NONAME
+	_ZNK15CApaCommandLine10OpaqueDataEv @ 325 NONAME
+	_ZNK15CApaCommandLine18IsDefaultScreenSetEv @ 326 NONAME
+	_ZN11CApaProcess10ConstructLE10TProcessId @ 327 NONAME
+	_ZN15CApaCommandLine18SetParentProcessIdE10TProcessId @ 328 NONAME
+	_ZNK15CApaCommandLine15ParentProcessIdEv @ 329 NONAME
+	_ZTI24CApaParentProcessMonitor @ 330 NONAME ; #<TI>#
+	_ZTV24CApaParentProcessMonitor @ 331 NONAME ; #<VT>#
+	_ZN18RApaAppServiceBase19ConnectExistingAppLERKS_RK15TSecurityPolicy @ 332 NONAME
+	_ZN18RApaAppServiceBase22ConnectExistingByNameLERK7TDesC16RK15TSecurityPolicy @ 333 NONAME
+	_ZN18RApaAppServiceBase24TransferExistingSessionLERS_ @ 334 NONAME
+	_ZN18TApaAppServiceInfo12InternalizeLER11RReadStream @ 335 NONAME
+	_ZN18TApaAppServiceInfo7ReleaseEv @ 336 NONAME
+	_ZN18TApaAppServiceInfo9DataTypesEv @ 337 NONAME
+	_ZN18TApaAppServiceInfoC1E4TUidP13CArrayFixFlatI21TDataTypeWithPriorityEP6HBufC8 @ 338 NONAME
+	_ZN18TApaAppServiceInfoC1Ev @ 339 NONAME
+	_ZN18TApaAppServiceInfoC2E4TUidP13CArrayFixFlatI21TDataTypeWithPriorityEP6HBufC8 @ 340 NONAME
+	_ZN18TApaAppServiceInfoC2Ev @ 341 NONAME
+	_ZNK18TApaAppServiceInfo10OpaqueDataEv @ 342 NONAME
+	_ZNK18TApaAppServiceInfo12ExternalizeLER12RWriteStream @ 343 NONAME
+	_ZNK18TApaAppServiceInfo3UidEv @ 344 NONAME
+	_ZNK18TApaAppServiceInfo9DataTypesEv @ 345 NONAME
+	_ZN15CApaCommandLine36NumberOfEnvironmentSlotsForPublicUseEv @ 346 NONAME
+
--- a/localisation/apparchitecture/eabi/APPARC_9_REMOVE_UI_FRAMEWORKS_V1U.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,336 +0,0 @@
-EXPORTS
-	_ZN11CApaProcess10ConstructLEv @ 1 NONAME
-	_ZN11CApaProcess15AddNewDocumentLERK7TDesC164TUid @ 2 NONAME ABSENT
-	_ZN11CApaProcess15DestroyDocumentEP12CApaDocument @ 3 NONAME
-	_ZN11CApaProcess15SetMainDocumentEP12CApaDocument @ 4 NONAME
-	_ZN11CApaProcess16OpenNewDocumentLERP10CFileStoreRP17CStreamDictionaryRK7TDesC16j @ 5 NONAME
-	_ZN11CApaProcess16ReadRootStreamLCER3RFsRP10CFileStoreRK7TDesC16j @ 6 NONAME
-	_ZN11CApaProcess16WriteRootStreamLER16CPersistentStoreR17CStreamDictionaryRK15CApaApplication @ 7 NONAME
-	_ZN11CApaProcess16WriteRootStreamLER16CPersistentStoreR17CStreamDictionaryRK17TApaAppIdentifier @ 8 NONAME
-	_ZN11CApaProcess18ReadAppIdentifierLERK12CStreamStoreRK17CStreamDictionary @ 9 NONAME
-	_ZN11CApaProcess18SetMainDocFileNameERK7TDesC16 @ 10 NONAME
-	_ZN11CApaProcess19WriteAppIdentifierLER12CStreamStoreR17CStreamDictionaryRK17TApaAppIdentifier @ 11 NONAME
-	_ZN11CApaProcess4NewLERK3RFsR13CApaAppFinder @ 12 NONAME ABSENT
-	_ZN11CApaProcess6ResetLEv @ 13 NONAME
-	_ZN11CApaProcessC1ERK3RFsR13CApaAppFinder @ 14 NONAME ABSENT
-	_ZN11CApaProcessC2ERK3RFsR13CApaAppFinder @ 15 NONAME ABSENT
-	_ZN11CApaProcessD0Ev @ 16 NONAME
-	_ZN11CApaProcessD1Ev @ 17 NONAME
-	_ZN11CApaProcessD2Ev @ 18 NONAME
-	_ZN11TApaAppInfo12InternalizeLER11RReadStream @ 19 NONAME
-	_ZN11TApaAppInfoC1E4TUidRK4TBufILi256EES4_ @ 20 NONAME
-	_ZN11TApaAppInfoC1E4TUidRK4TBufILi256EES4_S4_ @ 21 NONAME
-	_ZN11TApaAppInfoC1Ev @ 22 NONAME
-	_ZN11TApaAppInfoC2E4TUidRK4TBufILi256EES4_ @ 23 NONAME
-	_ZN11TApaAppInfoC2E4TUidRK4TBufILi256EES4_S4_ @ 24 NONAME
-	_ZN11TApaAppInfoC2Ev @ 25 NONAME
-	_ZN12CApaDocument9OpenFileLERP10CFileStoreR5RFile @ 26 NONAME
-	_ZN12CApaDocument10Reserved_2Ev @ 27 NONAME
-	_ZN12CApaDocument11TCapabilityC1Ev @ 28 NONAME
-	_ZN12CApaDocument11TCapabilityC2Ev @ 29 NONAME
-	_ZN12CApaDocument13GlassPictureLEv @ 30 NONAME
-	_ZN11CApaProcess19SetMainDocFileNameLERK7TDesC16 @ 31 NONAME
-	_ZN12CApaDocumentC2ER15CApaApplicationR11CApaProcess @ 32 NONAME
-	_ZN12CApaDocumentD0Ev @ 33 NONAME
-	_ZN12CApaDocumentD1Ev @ 34 NONAME
-	_ZN12CApaDocumentD2Ev @ 35 NONAME
-	_ZN12CApaDoorBase22InternalizeBaseStreamLERK12CStreamStoreRK17CStreamDictionary @ 36 NONAME
-	_ZN12TApaAppEntry12InternalizeLER11RReadStream @ 37 NONAME
-	_ZN12TApaAppEntryC1ERK8TUidTypeRK4TBufILi256EE @ 38 NONAME
-	_ZN12TApaAppEntryC1Ev @ 39 NONAME
-	_ZN12TApaAppEntryC2ERK8TUidTypeRK4TBufILi256EE @ 40 NONAME
-	_ZN12TApaAppEntryC2Ev @ 41 NONAME
-	_ZN13CApaModelDoor14SetScaleFactorEii @ 42 NONAME
-	_ZN13CApaModelDoor16DetachFromStoreLEN8CPicture7TDetachE @ 43 NONAME
-	_ZN13CApaModelDoor4NewLEP15CApaModelHeader @ 44 NONAME
-	_ZN13CApaModelDoor4NewLERK12CStreamStore9TStreamIdPK22MApaModelHeaderFactory @ 45 NONAME
-	_ZN13CApaModelDoor5NewLCEP15CApaModelHeader @ 46 NONAME
-	_ZN13CApaModelDoor8RestoreLERK12CStreamStore9TStreamIdPK22MApaModelHeaderFactory @ 47 NONAME
-	_ZN13CApaModelDoorD0Ev @ 48 NONAME
-	_ZN13CApaModelDoorD1Ev @ 49 NONAME
-	_ZN13CApaModelDoorD2Ev @ 50 NONAME
-	_ZN14CApaRecentFile14GetRecentFileLER3RFs4TUidi @ 51 NONAME ABSENT
-	_ZN14CApaRecentFile17AddLastUsedEntryLER3RFsRK7TDesC164TUid @ 52 NONAME ABSENT
-	_ZN14CApaRecentFile18GetRecentFileListLER3RFs4TUid @ 53 NONAME ABSENT
-	_ZN15CApaApplication13NewAppServerLERP13CApaAppServer @ 54 NONAME
-	_ZN15CApaApplication16GenerateFileNameER3RFsR4TBufILi256EE @ 55 NONAME
-	_ZN15CApaCommandLine11SetCommandLE11TApaCommand @ 56 NONAME
-	_ZN15CApaCommandLine11SetTailEndLERK6TDesC8 @ 57 NONAME
-	_ZN15CApaCommandLine15SetLibraryNameLERK7TDesC16 @ 58 NONAME ABSENT
-	_ZN15CApaCommandLine16SetDocumentNameLERK7TDesC16 @ 59 NONAME
-	_ZN15CApaCommandLine17SetReserveLengthLEi @ 60 NONAME ABSENT
-	_ZN15CApaCommandLine18SetFullCommandLineEP7HBufC16 @ 61 NONAME ABSENT
-	_ZN15CApaCommandLine19SetFullCommandLineLERK7TDesC16 @ 62 NONAME ABSENT
-	_ZN15CApaCommandLine3NewEP7HBufC16 @ 63 NONAME ABSENT
-	_ZN15CApaCommandLine4NewLERK7TDesC16 @ 64 NONAME ABSENT
-	_ZN15CApaCommandLine4NewLEv @ 65 NONAME
-	_ZN15CApaCommandLine5NewLCERK7TDesC16 @ 66 NONAME ABSENT
-	_ZN15CApaCommandLine5NewLCEv @ 67 NONAME
-	_ZN15CApaCommandLineD0Ev @ 68 NONAME
-	_ZN15CApaCommandLineD1Ev @ 69 NONAME
-	_ZN15CApaCommandLineD2Ev @ 70 NONAME
-	_ZN15CApaModelHeader10Reserved_1Ev @ 71 NONAME
-	_ZN15TApaAppInfo_7_012InternalizeLER11RReadStream @ 72 NONAME ABSENT
-	_ZN15TApaAppInfo_7_0C1E4TUidRK4TBufILi256EES4_ @ 73 NONAME ABSENT
-	_ZN15TApaAppInfo_7_0C1Ev @ 74 NONAME ABSENT
-	_ZN15TApaAppInfo_7_0C2E4TUidRK4TBufILi256EES4_ @ 75 NONAME ABSENT
-	_ZN15TApaAppInfo_7_0C2Ev @ 76 NONAME ABSENT
-	_ZN15TApaAppViewInfo12InternalizeLER11RReadStream @ 77 NONAME
-	_ZN15TApaAppViewInfoC1E4TUidRK4TBufILi256EEi @ 78 NONAME
-	_ZN15TApaAppViewInfoC1Ev @ 79 NONAME
-	_ZN15TApaAppViewInfoC2E4TUidRK4TBufILi256EEi @ 80 NONAME
-	_ZN15TApaAppViewInfoC2Ev @ 81 NONAME
-	_ZN17TApaAppCapability12InternalizeLER11RReadStream @ 82 NONAME
-	_ZN17TApaAppCapability14CopyCapabilityER5TDes8RK6TDesC8 @ 83 NONAME
-	_ZN17TApaAppCapability15Internalize7_0LER11RReadStream @ 84 NONAME
-	_ZN17TApaAppIdentifier12InternalizeLER11RReadStream @ 85 NONAME
-	_ZN17TApaAppIdentifierC1E4TUidRK4TBufILi256EE @ 86 NONAME
-	_ZN17TApaAppIdentifierC1Ev @ 87 NONAME
-	_ZN17TApaAppIdentifierC2E4TUidRK4TBufILi256EE @ 88 NONAME
-	_ZN17TApaAppIdentifierC2Ev @ 89 NONAME
-	_ZN17TApaLastUsedEntry12InternalizeLER11RReadStream @ 90 NONAME ABSENT
-	_ZN17TApaLastUsedEntryC1E4TBufILi256EE4TUid @ 91 NONAME ABSENT
-	_ZN17TApaLastUsedEntryC1Ev @ 92 NONAME ABSENT
-	_ZN17TApaLastUsedEntryC2E4TBufILi256EE4TUid @ 93 NONAME ABSENT
-	_ZN17TApaLastUsedEntryC2Ev @ 94 NONAME ABSENT
-	_ZN18CApaFileRecognizer13SetAppLocatorEP14CApaAppLocator @ 95 NONAME
-	_ZN18CApaFileRecognizer14RecognizeFileLERK7TDesC16PK8TUidType @ 96 NONAME
-	_ZN18CApaFileRecognizer21AddFileRecognizerTypeEP22CApaFileRecognizerType @ 97 NONAME
-	_ZN18CApaFileRecognizer21DestroyRecognizerListEv @ 98 NONAME
-	_ZN18CApaFileRecognizer24RemoveFileRecognizerTypeEPK22CApaFileRecognizerType @ 99 NONAME
-	_ZN18CApaFileRecognizerC1ER3RFs @ 100 NONAME
-	_ZN18CApaFileRecognizerC2ER3RFs @ 101 NONAME
-	_ZN18CApaFileRecognizerD0Ev @ 102 NONAME
-	_ZN18CApaFileRecognizerD1Ev @ 103 NONAME
-	_ZN18CApaFileRecognizerD2Ev @ 104 NONAME
-	_ZN18TApaDocCleanupItem9DoCleanupEPv @ 105 NONAME
-	_ZN20TApaModelDoorFactoryC1EPK22MApaModelHeaderFactory @ 106 NONAME
-	_ZN20TApaModelDoorFactoryC2EPK22MApaModelHeaderFactory @ 107 NONAME
-	_ZN22CApaFileRecognizerType10Reserved_1Ev @ 108 NONAME
-	_ZN22CApaFileRecognizerType4LockEv @ 109 NONAME
-	_ZN22CApaFileRecognizerType6UnlockEv @ 110 NONAME
-	_ZTV22CApaFileRecognizerType @ 111 NONAME ; #<VT>#
-	_ZN22CApaFileRecognizerTypeC2Ev @ 112 NONAME
-	_ZN22CApaFileRecognizerTypeD0Ev @ 113 NONAME
-	_ZN22CApaFileRecognizerTypeD1Ev @ 114 NONAME
-	_ZN22CApaFileRecognizerTypeD2Ev @ 115 NONAME
-	_ZN23TApaEmbeddabilityFilter16AddEmbeddabilityEN17TApaAppCapability14TEmbeddabilityE @ 116 NONAME
-	_ZN23TApaEmbeddabilityFilterC1Ev @ 117 NONAME
-	_ZN23TApaEmbeddabilityFilterC2Ev @ 118 NONAME
-	_ZNK11CApaProcess15MainDocFileNameEv @ 119 NONAME
-	_ZNK11TApaAppInfo12ExternalizeLER12RWriteStream @ 120 NONAME
-	_ZNK12CApaDocument10CapabilityEv @ 121 NONAME
-	_ZNK12CApaDocument12ExternalizeLER12RWriteStream @ 122 NONAME
-	_ZNK12CApaDocument17ValidatePasswordLEv @ 123 NONAME
-	_ZNK12CApaDoorBase22ExternalizeBaseStreamLER12CStreamStoreR17CStreamDictionary @ 124 NONAME
-	_ZNK12TApaAppEntry12ExternalizeLER12RWriteStream @ 125 NONAME
-	_ZNK13CApaModelDoor12ExternalizeLER12RWriteStream @ 126 NONAME
-	_ZNK13CApaModelDoor16ScaleFactorWidthEv @ 127 NONAME
-	_ZNK13CApaModelDoor17ScaleFactorHeightEv @ 128 NONAME
-	_ZNK13CApaModelDoor22GetOriginalSizeInTwipsER5TSize @ 129 NONAME
-	_ZNK13CApaModelDoor4DrawER16CGraphicsContextRK6TPointRK5TRectP18MGraphicsDeviceMap @ 130 NONAME
-	_ZNK13CApaModelDoor6StoreLER12CStreamStore @ 131 NONAME
-	_ZNK15CApaApplication11AppFullNameEv @ 132 NONAME
-	_ZNK15CApaApplication12OpenIniFileLER3RFs @ 133 NONAME
-	_ZNK15CApaApplication16OpenAppInfoFileLEv @ 134 NONAME ABSENT
-	_ZNK15CApaApplication7DllNameEv @ 135 NONAME
-	_ZNK15CApaCommandLine11LibraryNameEv @ 136 NONAME ABSENT
-	_ZNK15CApaCommandLine12DocumentNameEv @ 137 NONAME
-	_ZNK15CApaCommandLine15FullCommandLineEv @ 138 NONAME ABSENT
-	_ZNK15CApaCommandLine7CommandEv @ 139 NONAME
-	_ZNK15CApaCommandLine7TailEndEv @ 140 NONAME
-	_ZNK15TApaAppInfo_7_012ExternalizeLER12RWriteStream @ 141 NONAME ABSENT
-	_ZNK15TApaAppViewInfo12ExternalizeLER12RWriteStream @ 142 NONAME
-	_ZNK17TApaAppCapability12ExternalizeLER12RWriteStream @ 143 NONAME
-	_ZNK17TApaAppCapability15Externalize7_0LER12RWriteStream @ 144 NONAME
-	_ZNK17TApaAppIdentifier12ExternalizeLER12RWriteStream @ 145 NONAME
-	_ZNK17TApaLastUsedEntry12ExternalizeLER12RWriteStream @ 146 NONAME ABSENT
-	_ZNK18CApaFileRecognizer10AppLocatorEv @ 147 NONAME
-	_ZNK20TApaModelDoorFactory11NewPictureLER14TPictureHeaderRK12CStreamStore @ 148 NONAME
-	_ZNK22CApaFileRecognizerType10CapabilityER5TDes8 @ 149 NONAME
-	_ZNK22CApaFileRecognizerType7AppRunLERK15CApaCommandLine @ 150 NONAME
-	_ZNK23TApaEmbeddabilityFilter20MatchesEmbeddabilityEN17TApaAppCapability14TEmbeddabilityE @ 151 NONAME
-	_ZTI11CApaProcess @ 152 NONAME ; #<TI>#
-	_ZTI12CApaDocument @ 153 NONAME ; #<TI>#
-	_ZTI15CApaApplication @ 154 NONAME ; #<TI>#
-	_ZTI15CApaModelHeader @ 155 NONAME ; #<TI>#
-	_ZTI18CApaFileRecognizer @ 156 NONAME ; #<TI>#
-	_ZTI20TApaModelDoorFactory @ 157 NONAME ; #<TI>#
-	_ZTI22CApaFileRecognizerType @ 158 NONAME ; #<TI>#
-	_ZTV11CApaProcess @ 159 NONAME ; #<VT>#
-	_ZTV12CApaDocument @ 160 NONAME ; #<VT>#
-	_ZTV15CApaApplication @ 161 NONAME ; #<VT>#
-	_ZTV15CApaModelHeader @ 162 NONAME ; #<VT>#
-	_ZTV18CApaFileRecognizer @ 163 NONAME ; #<VT>#
-	_ZTV20TApaModelDoorFactory @ 164 NONAME ; #<VT>#
-	_ZN22CApaFileRecognizerType21CreateFileRecognizerLE4TUid @ 165 NONAME
-	_ZN11CApaProcess15AddNewDocumentLE22TApaApplicationFactory @ 166 NONAME
-	_ZN15CApaApplicationD0Ev @ 167 NONAME
-	_ZN15CApaApplicationD1Ev @ 168 NONAME
-	_ZN15CApaApplicationD2Ev @ 169 NONAME
-	_ZN22TApaApplicationFactoryC1E4TUid @ 170 NONAME
-	_ZN22TApaApplicationFactoryC1EPFP15CApaApplicationvE @ 171 NONAME
-	_ZN22TApaApplicationFactoryC1ERK26CImplementationInformation @ 172 NONAME
-	_ZN22TApaApplicationFactoryC2E4TUid @ 173 NONAME
-	_ZN22TApaApplicationFactoryC2EPFP15CApaApplicationvE @ 174 NONAME
-	_ZN22TApaApplicationFactoryC2ERK26CImplementationInformation @ 175 NONAME
-	_ZTI13CApaAppHolder @ 176 NONAME ABSENT ; #<TI>#
-	_ZTI13CApaModelDoor @ 177 NONAME ; #<TI>#
-	_ZTI15CApaCommandLine @ 178 NONAME ; #<TI>#
-	_ZTI24CFileRecognizerExtension @ 179 NONAME ; #<TI>#
-	_ZTI7CApaDll @ 180 NONAME ABSENT ; #<TI>#
-	_ZTI7CApaExe @ 181 NONAME ABSENT ; #<TI>#
-	_ZTI7HBufBuf @ 182 NONAME ; #<TI>#
-	_ZTV13CApaAppHolder @ 183 NONAME ABSENT ; #<VT>#
-	_ZTV13CApaModelDoor @ 184 NONAME ; #<VT>#
-	_ZTV15CApaCommandLine @ 185 NONAME ; #<VT>#
-	_ZTV24CFileRecognizerExtension @ 186 NONAME ; #<VT>#
-	_ZTV7CApaDll @ 187 NONAME ABSENT ; #<VT>#
-	_ZTV7CApaExe @ 188 NONAME ABSENT ; #<VT>#
-	_ZTV7HBufBuf @ 189 NONAME ; #<VT>#
-	_ZN13CApaAppServer10ConstructLERK7TDesC16 @ 190 NONAME
-	_ZN13CApaAppServer16NotifyServerExitEi @ 191 NONAME
-	_ZN13CApaAppServer20CustomSecurityCheckLERK9RMessage2RiR13TSecurityInfo @ 192 NONAME
-	_ZN13CApaAppServer27CreateServiceSecurityCheckLE4TUidRK9RMessage2RiR13TSecurityInfo @ 193 NONAME
-	_ZN13CApaAppServerC1Ev @ 194 NONAME
-	_ZN13CApaAppServerC2Ev @ 195 NONAME
-	_ZN13CApaAppServerD0Ev @ 196 NONAME
-	_ZN13CApaAppServerD1Ev @ 197 NONAME
-	_ZN13CApaAppServerD2Ev @ 198 NONAME
-	_ZN15CApaCommandLine18SetServerRequiredLEj @ 199 NONAME
-	_ZN15CApaCommandLine21SetServerNotRequiredLEv @ 200 NONAME
-	_ZN18CApaAppServiceBase12ServiceErrorERK9RMessage2i @ 201 NONAME
-	_ZN18CApaAppServiceBase14SecurityCheckLERK9RMessage2RiR13TSecurityInfo @ 202 NONAME
-	_ZN18CApaAppServiceBase7CreateLEv @ 203 NONAME
-	_ZN18CApaAppServiceBase8ServiceLERK9RMessage2 @ 204 NONAME
-	_ZN18CApaAppServiceBaseC1Ev @ 205 NONAME
-	_ZN18CApaAppServiceBaseC2Ev @ 206 NONAME
-	_ZN18CApaAppServiceBaseD0Ev @ 207 NONAME
-	_ZN18CApaAppServiceBaseD1Ev @ 208 NONAME
-	_ZN18CApaAppServiceBaseD2Ev @ 209 NONAME
-	_ZNK18RApaAppServiceBase10ServerNameEv @ 210 NONAME
-	_ZNK18RApaAppServiceBase16NotifyServerExitER14TRequestStatus @ 211 NONAME
-	_ZN18RApaAppServiceBase19ConnectExistingAppLERKS_ @ 212 NONAME
-	_ZNK18RApaAppServiceBase22CancelNotifyServerExitEv @ 213 NONAME
-	_ZN18RApaAppServiceBase22ConnectExistingByNameLERK7TDesC16 @ 214 NONAME
-	_ZN18RApaAppServiceBase5CloseEv @ 215 NONAME
-	_ZN18RApaAppServiceBaseC2Ev @ 216 NONAME
-	_ZN24CApaServerAppExitMonitor4NewLER18RApaAppServiceBaseR25MApaServerAppExitObserveri @ 217 NONAME
-	_ZN24CApaServerAppExitMonitor5NewLCER18RApaAppServiceBaseR25MApaServerAppExitObserveri @ 218 NONAME
-	_ZN24CApaServerAppExitMonitorD0Ev @ 219 NONAME
-	_ZN24CApaServerAppExitMonitorD1Ev @ 220 NONAME
-	_ZN24CApaServerAppExitMonitorD2Ev @ 221 NONAME
-	_ZNK13CApaAppServer11NewSessionLERK8TVersionRK9RMessage2 @ 222 NONAME
-	_ZNK13CApaAppServer14CreateServiceLE4TUid @ 223 NONAME
-	_ZNK15CApaCommandLine14ServerRequiredEv @ 224 NONAME
-	_ZTI13CApaAppServer @ 225 NONAME ; #<TI>#
-	_ZTI18CApaAppServiceBase @ 226 NONAME ; #<TI>#
-	_ZTI24CApaServerAppExitMonitor @ 227 NONAME ; #<TI>#
-	_ZTV13CApaAppServer @ 228 NONAME ; #<VT>#
-	_ZTV18CApaAppServiceBase @ 229 NONAME ; #<VT>#
-	_ZTV24CApaServerAppExitMonitor @ 230 NONAME ; #<VT>#
-	_ZN13CApaAppServer18ExtensionInterfaceE4TUidRPv @ 231 NONAME
-	_ZN18CApaAppServiceBase18ExtensionInterfaceE4TUidRPv @ 232 NONAME
-	_ZN18RApaAppServiceBase18ExtensionInterfaceE4TUidRPv @ 233 NONAME
-	_ZTI18RApaAppServiceBase @ 234 NONAME ; #<TI>#
-	_ZTV18RApaAppServiceBase @ 235 NONAME ; #<VT>#
-	_ZN15CApaCommandLine27EnvironmentSlotForPublicUseEi @ 236 NONAME
-	_ZN15CApaCommandLine16SetFileByHandleLERK5RFile @ 237 NONAME
-	_ZNK15CApaCommandLine16GetFileByHandleLER5RFile @ 238 NONAME
-	_ZN15CApaCommandLine18SetExecutableNameLERK7TDesC16 @ 239 NONAME
-	_ZN11CApaProcessC1ERK3RFs @ 240 NONAME
-	_ZN11CApaProcessC2ERK3RFs @ 241 NONAME
-	_ZN15CApaCommandLine28ConstructCmdLineFromMessageLERK9RMessage2 @ 242 NONAME
-	_ZN15CApaCommandLine36GetCommandLineFromProcessEnvironmentERPS_ @ 243 NONAME
-	_ZNK15CApaCommandLine12GetIpcArgsLCER8TIpcArgs @ 244 NONAME
-	Apparc_Dummy1 @ 245 NONAME ABSENT
-	_ZNK15CApaCommandLine14ExecutableNameEv @ 246 NONAME
-	Apparc_Dummy2 @ 247 NONAME ABSENT
-	_ZNK15CApaCommandLine22SetProcessEnvironmentLER8RProcess @ 248 NONAME
-	_ZN11CApaProcess4NewLERK3RFs @ 249 NONAME
-	_ZN15CApaCommandLine17SetDefaultScreenLEi @ 250 NONAME
-	_ZNK15CApaCommandLine13DefaultScreenEv @ 251 NONAME
-	_ZN15CApaCommandLine22SetParentWindowGroupIDEi @ 252 NONAME
-	_ZNK15CApaCommandLine19ParentWindowGroupIDEv @ 253 NONAME
-	_ZNK15CApaCommandLine12DebugMemFailEv @ 254 NONAME
-	_ZN15CApaCommandLine40SetAppStartupInstrumentationEventIdBaseLEi @ 255 NONAME
-	_ZNK15CApaCommandLine36AppStartupInstrumentationEventIdBaseEv @ 256 NONAME
-	_ZN11CApaProcess16ReadRootStreamLCERP10CFileStoreRK5RFile @ 257 NONAME
-	_ZN15CApaCommandLine16SetDebugMemFailLEi @ 258 NONAME
-	_ZN11CApaProcess21CApaProcess_Reserved1Ev @ 259 NONAME
-	_ZN11CApaProcess21CApaProcess_Reserved2Ev @ 260 NONAME
-	_ZN11CApaProcessC1Ev @ 261 NONAME
-	_ZN11CApaProcessC2Ev @ 262 NONAME
-	_ZN12CApaDocumentC2Ev @ 263 NONAME
-	_ZN12CApaDoorBase14SetCropInTwipsERK8TMargins @ 264 NONAME
-	_ZN12CApaDoorBase14SetScaleFactorEii @ 265 NONAME
-	_ZN12CApaDoorBase15NativePixelSizeER5TSize @ 266 NONAME
-	_ZN12CApaDoorBase22CApaDoorBase_Reserved1Ev @ 267 NONAME
-	_ZN12CApaDoorBase22CApaDoorBase_Reserved2Ev @ 268 NONAME
-	_ZN12CApaDoorBaseC2Ev @ 269 NONAME
-	_ZN13CApaAppFinder23CApaAppFinder_Reserved1Ev @ 270 NONAME
-	_ZN13CApaAppFinder23CApaAppFinder_Reserved2Ev @ 271 NONAME
-	_ZN13CApaAppFinderC2Ev @ 272 NONAME
-	_ZN13CApaAppServer23CApaAppServer_Reserved1Ev @ 273 NONAME
-	_ZN13CApaAppServer23CApaAppServer_Reserved2Ev @ 274 NONAME
-	_ZN13CApaAppServer9DoConnectERK9RMessage2 @ 275 NONAME
-	_ZN14MApaAppStarter24MApaAppStarter_Reserved1Ev @ 276 NONAME
-	_ZN14MApaAppStarter24MApaAppStarter_Reserved2Ev @ 277 NONAME
-	_ZN14MApaAppStarterC2Ev @ 278 NONAME
-	_ZN15CApaApplication25CApaApplication_Reserved1Ev @ 279 NONAME
-	_ZN15CApaApplication25CApaApplication_Reserved2Ev @ 280 NONAME
-	_ZN15CApaApplicationC2Ev @ 281 NONAME
-	_ZN15CApaModelHeader10Reserved_2Ev @ 282 NONAME
-	_ZN15CApaModelHeaderC2Ev @ 283 NONAME
-	_ZN18CApaAppServiceBase10DisconnectERK9RMessage2 @ 284 NONAME
-	_ZN18CApaAppServiceBase14CountResourcesEv @ 285 NONAME
-	_ZN18CApaAppServiceBase28CApaAppServiceBase_Reserved1Ev @ 286 NONAME
-	_ZN18CApaAppServiceBase28CApaAppServiceBase_Reserved2Ev @ 287 NONAME
-	_ZN18RApaAppServiceBase28RApaAppServiceBase_Reserved1Ev @ 288 NONAME
-	_ZN18RApaAppServiceBase28RApaAppServiceBase_Reserved2Ev @ 289 NONAME
-	_ZN22MApaModelHeaderFactory32MApaModelHeaderFactory_Reserved1Ev @ 290 NONAME
-	_ZN22MApaModelHeaderFactory32MApaModelHeaderFactory_Reserved2Ev @ 291 NONAME
-	_ZN22MApaModelHeaderFactoryC2Ev @ 292 NONAME
-	_ZN22TApaApplicationFactoryC1Ev @ 293 NONAME
-	_ZN22TApaApplicationFactoryC2Ev @ 294 NONAME
-	_ZN23CApaAppServiceInfoArray33CApaAppServiceInfoArray_Reserved1Ev @ 295 NONAME
-	_ZN23CApaAppServiceInfoArray33CApaAppServiceInfoArray_Reserved2Ev @ 296 NONAME
-	_ZN23CApaAppServiceInfoArrayC2Ev @ 297 NONAME
-	_ZN23MApaEmbeddedDocObserver33MApaEmbeddedDocObserver_Reserved1Ev @ 298 NONAME
-	_ZN23MApaEmbeddedDocObserver33MApaEmbeddedDocObserver_Reserved2Ev @ 299 NONAME
-	_ZN23MApaEmbeddedDocObserverC2Ev @ 300 NONAME
-	_ZN25MApaServerAppExitObserver35MApaServerAppExitObserver_Reserved1Ev @ 301 NONAME
-	_ZN25MApaServerAppExitObserver35MApaServerAppExitObserver_Reserved2Ev @ 302 NONAME
-	_ZN25MApaServerAppExitObserverC2Ev @ 303 NONAME
-	_ZNK12CApaDoorBase10CapabilityEv @ 304 NONAME
-	_ZNK12CApaDoorBase14GetCropInTwipsER8TMargins @ 305 NONAME
-	_ZNK12CApaDoorBase16ScaleFactorWidthEv @ 306 NONAME
-	_ZNK12CApaDoorBase17LineBreakPossibleEjii @ 307 NONAME
-	_ZNK12CApaDoorBase17ScaleFactorHeightEv @ 308 NONAME
-	_ZNK12CApaDoorBase6StoreLER12CStreamStore @ 309 NONAME
-	_ZTI12CApaDoorBase @ 310 NONAME ; #<TI>#
-	_ZTI13CApaAppFinder @ 311 NONAME ; #<TI>#
-	_ZTI14MApaAppStarter @ 312 NONAME ; #<TI>#
-	_ZTI22MApaModelHeaderFactory @ 313 NONAME ; #<TI>#
-	_ZTI23CApaAppServiceInfoArray @ 314 NONAME ; #<TI>#
-	_ZTI23MApaEmbeddedDocObserver @ 315 NONAME ; #<TI>#
-	_ZTI25MApaServerAppExitObserver @ 316 NONAME ; #<TI>#
-	_ZTV12CApaDoorBase @ 317 NONAME ; #<VT>#
-	_ZTV13CApaAppFinder @ 318 NONAME ; #<VT>#
-	_ZTV14MApaAppStarter @ 319 NONAME ; #<VT>#
-	_ZTV22MApaModelHeaderFactory @ 320 NONAME ; #<VT>#
-	_ZTV23CApaAppServiceInfoArray @ 321 NONAME ; #<VT>#
-	_ZTV23MApaEmbeddedDocObserver @ 322 NONAME ; #<VT>#
-	_ZTV25MApaServerAppExitObserver @ 323 NONAME ; #<VT>#
-	_ZN15CApaCommandLine14SetOpaqueDataLERK6TDesC8 @ 324 NONAME
-	_ZNK15CApaCommandLine10OpaqueDataEv @ 325 NONAME
-	_ZNK15CApaCommandLine18IsDefaultScreenSetEv @ 326 NONAME
-	_ZN11CApaProcess10ConstructLE10TProcessId @ 327 NONAME
-	_ZN15CApaCommandLine18SetParentProcessIdE10TProcessId @ 328 NONAME
-	_ZNK15CApaCommandLine15ParentProcessIdEv @ 329 NONAME
-	_ZTI24CApaParentProcessMonitor @ 330 NONAME ; #<TI>#
-	_ZTV24CApaParentProcessMonitor @ 331 NONAME ; #<VT>#
-	_ZN18RApaAppServiceBase19ConnectExistingAppLERKS_RK15TSecurityPolicy @ 332 NONAME
-	_ZN18RApaAppServiceBase22ConnectExistingByNameLERK7TDesC16RK15TSecurityPolicy @ 333 NONAME
-	_ZN18RApaAppServiceBase24TransferExistingSessionLERS_ @ 334 NONAME
-
--- a/localisation/apparchitecture/eabi/APSERVU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/eabi/APSERVU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -7,45 +7,45 @@
 	_ZN13CApaFsMonitorD0Ev @ 6 NONAME
 	_ZN13CApaFsMonitorD1Ev @ 7 NONAME
 	_ZN13CApaFsMonitorD2Ev @ 8 NONAME
-	_ZN17CApaAppListServer4NewLEP11CApaAppListP18CApaFileRecognizer @ 9 NONAME ABSENT
-	_ZN17CApaAppListServer4NewLEP14MApaAppStarter @ 10 NONAME
-	_ZN17CApaAppListServerD0Ev @ 11 NONAME
-	_ZN17CApaAppListServerD1Ev @ 12 NONAME
-	_ZN17CApaAppListServerD2Ev @ 13 NONAME
+	_ZN16CApaAppArcServer4NewLEP11CApaAppListP18CApaFileRecognizer @ 9 NONAME ABSENT
+	_ZN16CApaAppArcServer4NewLEv @ 10 NONAME
+	_ZN16CApaAppArcServerD0Ev @ 11 NONAME
+	_ZN16CApaAppArcServerD1Ev @ 12 NONAME
+	_ZN16CApaAppArcServerD2Ev @ 13 NONAME
 	_ZNK13CApaFsMonitor10NotifyTypeEv @ 14 NONAME
 	_ZTI13CApaFsMonitor @ 15 NONAME ; #<TI>#
 	_ZTI15CApaEComMonitor @ 16 NONAME ; #<TI>#
-	_ZTI17CApaAppListServer @ 17 NONAME ; #<TI>#
-	_ZTI20TDesCArrayItemWriter @ 18 NONAME ; #<TI>#
-	_ZTI20TSizeArrayItemWriter @ 19 NONAME ; #<TI>#
+	_ZTI16CApaAppArcServer @ 17 NONAME ; #<TI>#
+	_ZTI20TDesCArrayItemWriter @ 18 NONAME ABSENT ; #<TI>#
+	_ZTI20TSizeArrayItemWriter @ 19 NONAME ABSENT ; #<TI>#
 	_ZTI22CApaAppListServSession @ 20 NONAME ; #<TI>#
-	_ZTI24TViewDataArrayItemWriter @ 21 NONAME ; #<TI>#
+	_ZTI24TViewDataArrayItemWriter @ 21 NONAME ABSENT ; #<TI>#
 	_ZTV13CApaFsMonitor @ 22 NONAME ; #<VT>#
 	_ZTV15CApaEComMonitor @ 23 NONAME ; #<VT>#
-	_ZTV17CApaAppListServer @ 24 NONAME ; #<VT>#
-	_ZTV20TDesCArrayItemWriter @ 25 NONAME ; #<VT>#
-	_ZTV20TSizeArrayItemWriter @ 26 NONAME ; #<VT>#
+	_ZTV16CApaAppArcServer @ 24 NONAME ; #<VT>#
+	_ZTV20TDesCArrayItemWriter @ 25 NONAME ABSENT ; #<VT>#
+	_ZTV20TSizeArrayItemWriter @ 26 NONAME ABSENT ; #<VT>#
 	_ZTV22CApaAppListServSession @ 27 NONAME ; #<VT>#
-	_ZTV24TViewDataArrayItemWriter @ 28 NONAME ; #<VT>#
+	_ZTV24TViewDataArrayItemWriter @ 28 NONAME ABSENT ; #<VT>#
 	_ZN13CApaFsMonitor12AddLocationLERK7TDesC16 @ 29 NONAME
 	_ZTIN13CApaFsMonitor14CApaFsNotifierE @ 30 NONAME ; #<TI>#
 	_ZTVN13CApaFsMonitor14CApaFsNotifierE @ 31 NONAME ; #<VT>#
-	_ZN17CApaAppListServer4SelfEv @ 32 NONAME
+	_ZN16CApaAppArcServer4SelfEv @ 32 NONAME
 	_ZN13CApaFsMonitor6CancelEv @ 33 NONAME
 	_Z18ApaServThreadStartPv @ 34 NONAME
-	_ZTI18CRecognitionResult @ 35 NONAME ; #<TI>#
+	_ZTI18CRecognitionResult @ 35 NONAME ABSENT ; #<TI>#
 	_ZTI20CApsRecognitionCache @ 36 NONAME ; #<TI>#
 	_ZTI20CCacheDirectoryEntry @ 37 NONAME ; #<TI>#
-	_ZTI23CFileRecognitionUtility @ 38 NONAME ; #<TI>#
+	_ZTI23CFileRecognitionUtility @ 38 NONAME ABSENT ; #<TI>#
 	_ZTI25CRecognitionResultHashMap @ 39 NONAME ; #<TI>#
-	_ZTI27CDirectoryRecognitionResult @ 40 NONAME ; #<TI>#
+	_ZTI27CDirectoryRecognitionResult @ 40 NONAME ABSENT ; #<TI>#
 	_ZTI30CRecognitionResultHashMapEntry @ 41 NONAME ; #<TI>#
-	_ZTV18CRecognitionResult @ 42 NONAME ; #<VT>#
+	_ZTV18CRecognitionResult @ 42 NONAME ABSENT ; #<VT>#
 	_ZTV20CApsRecognitionCache @ 43 NONAME ; #<VT>#
 	_ZTV20CCacheDirectoryEntry @ 44 NONAME ; #<VT>#
-	_ZTV23CFileRecognitionUtility @ 45 NONAME ; #<VT>#
+	_ZTV23CFileRecognitionUtility @ 45 NONAME ABSENT ; #<VT>#
 	_ZTV25CRecognitionResultHashMap @ 46 NONAME ; #<VT>#
-	_ZTV27CDirectoryRecognitionResult @ 47 NONAME ; #<VT>#
+	_ZTV27CDirectoryRecognitionResult @ 47 NONAME ABSENT ; #<VT>#
 	_ZTV30CRecognitionResultHashMapEntry @ 48 NONAME ; #<VT>#
 	_ZN16CUpdatedAppsList28CloseAndDeletePermanentStoreEv @ 49 NONAME ABSENT
 	_ZN16CUpdatedAppsListD0Ev @ 50 NONAME ABSENT
@@ -56,14 +56,15 @@
 	_ZNK16CUpdatedAppsList8IsInListERK7TDesC16 @ 55 NONAME ABSENT
 	_ZTIN16CUpdatedAppsList15CUpdatedAppInfoE @ 56 NONAME ABSENT ; #<TI>#
 	_ZTVN16CUpdatedAppsList15CUpdatedAppInfoE @ 57 NONAME ABSENT ; #<VT>#
-	_ZN17CApaAppListServer14RescanCallBackEv @ 58 NONAME
-	_ZTI18CCustomAppInfoData @ 59 NONAME ; #<TI>#
-	_ZTV18CCustomAppInfoData @ 60 NONAME ; #<VT>#
+	_ZN16CApaAppArcServer14RescanCallBackEv @ 58 NONAME
+	_ZTI18CCustomAppInfoData @ 59 NONAME ABSENT ; #<TI>#
+	_ZTV18CCustomAppInfoData @ 60 NONAME ABSENT ; #<VT>#
 	KApaLoadDataRecognizersOnDemand @ 61 NONAME DATA 4
 	KApaUnloadRecognizersTimeout @ 62 NONAME DATA 4
-	_ZN17CApaAppListServer24HandleEndUninstallEventLEv @ 63 NONAME
-	_ZN17CApaAppListServer25HandleStartUninstallEventEv @ 64 NONAME
+	_ZN16CApaAppArcServer27HandleInstallationEndEventLEv @ 63 NONAME
+	_ZN16CApaAppArcServer28HandleInstallationStartEventEv @ 64 NONAME
 	KApaDrivesToMonitor @ 65 NONAME DATA 4
 	KApaLoadMbmIconsOnDemand @ 66 NONAME DATA 4
+	_ZTI21CApaAppArcServSession @ 67 NONAME
+	_ZTV21CApaAppArcServSession @ 68 NONAME
 
-
--- a/localisation/apparchitecture/eabi/TICONFORLEAKSu.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/eabi/TICONFORLEAKSu.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -1,6 +1,6 @@
 EXPORTS
 	KMinApplicationStackSize @ 1 NONAME DATA 4
-	_Z16StartupApaServerR14MApaAppStarter @ 2 NONAME
+	_Z16StartupApaServerR14MApaAppStarter @ 2 NONAME ABSENT
 	_Z23MinApplicationStackSizev @ 3 NONAME
 	_Z23StartupApaServerProcessv @ 4 NONAME
 	_ZN11CApaAppData16CanUseScreenModeEi @ 5 NONAME
@@ -10,15 +10,15 @@
 	_ZN11CApaAppDataD1Ev @ 9 NONAME
 	_ZN11CApaAppDataD2Ev @ 10 NONAME
 	_ZN11CApaAppList12RestartScanLEv @ 11 NONAME
-	_ZN11CApaAppList14CompareStringsERK7HBufC16S2_ @ 12 NONAME
+	_ZN11CApaAppList14CompareStringsERK7HBufC16S2_ @ 12 NONAME ABSENT
 	_ZN11CApaAppList15UpdatedAppsListEv @ 13 NONAME ABSENT
 	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 14 NONAME
 	_ZN11CApaAppList16StartIdleUpdateLEv @ 15 NONAME
 	_ZN11CApaAppList18SetUpdatedAppsListEP16CUpdatedAppsList @ 16 NONAME ABSENT
-	_ZN11CApaAppList22AddForcedRegistrationLEP7HBufC16 @ 17 NONAME
+	_ZN11CApaAppList22AddForcedRegistrationLEP7HBufC16 @ 17 NONAME ABSENT
 	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 18 NONAME
 	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 19 NONAME
-	_ZN11CApaAppList4NewLER3RFsP16CApaAppRegFinderii @ 20 NONAME
+	_ZN11CApaAppList4NewLER3RFsP16CApaAppRegFinderii @ 20 NONAME ABSENT
 	_ZN11CApaAppList4SelfEv @ 21 NONAME
 	_ZN11CApaAppList6PurgeLEv @ 22 NONAME
 	_ZN11CApaAppList8StopScanEi @ 23 NONAME
@@ -117,22 +117,22 @@
 	_ZN19CApaWindowGroupNameD0Ev @ 116 NONAME
 	_ZN19CApaWindowGroupNameD1Ev @ 117 NONAME
 	_ZN19CApaWindowGroupNameD2Ev @ 118 NONAME
-	_ZN21CApaAppInfoFileWriter11AddCaptionLE9TLanguageRK7TDesC16 @ 119 NONAME
-	_ZN21CApaAppInfoFileWriter12AddDataTypeLERK21TDataTypeWithPriority @ 120 NONAME
-	_ZN21CApaAppInfoFileWriter13SetCapabilityERK6TDesC8 @ 121 NONAME
-	_ZN21CApaAppInfoFileWriter6StoreLEv @ 122 NONAME
-	_ZN21CApaAppInfoFileWriter8AddIconLER16CApaMaskedBitmap @ 123 NONAME
-	_ZN21CApaAppInfoFileWriterD0Ev @ 124 NONAME
-	_ZN21CApaAppInfoFileWriterD1Ev @ 125 NONAME
-	_ZN21CApaAppInfoFileWriterD2Ev @ 126 NONAME
+	_ZN21CApaAppInfoFileWriter11AddCaptionLE9TLanguageRK7TDesC16 @ 119 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter12AddDataTypeLERK21TDataTypeWithPriority @ 120 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter13SetCapabilityERK6TDesC8 @ 121 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter6StoreLEv @ 122 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriter8AddIconLER16CApaMaskedBitmap @ 123 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD0Ev @ 124 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD1Ev @ 125 NONAME ABSENT
+	_ZN21CApaAppInfoFileWriterD2Ev @ 126 NONAME ABSENT
 	_ZN21CApaSystemControlList4NewLER3RFs @ 127 NONAME
 	_ZN21CApaSystemControlList7UpdateLEv @ 128 NONAME
 	_ZN21CApaSystemControlListD0Ev @ 129 NONAME
 	_ZN21CApaSystemControlListD1Ev @ 130 NONAME
 	_ZN21CApaSystemControlListD2Ev @ 131 NONAME
-	_ZN22ForJavaMIDletInstaller18GetJavaMIDletInfoLER3RFsRK7TDesC16RmS5_ @ 132 NONAME
-	_ZN22ForJavaMIDletInstaller28NewInterimFormatFileWriterLCER3RFsRK7TDesC164TUidmi @ 133 NONAME
-	_ZN22ForJavaMIDletInstaller33CheckInterimFormatFileNotCorruptLER5RFile @ 134 NONAME
+	_ZN22ForJavaMIDletInstaller18GetJavaMIDletInfoLER3RFsRK7TDesC16RmS5_ @ 132 NONAME ABSENT
+	_ZN22ForJavaMIDletInstaller28NewInterimFormatFileWriterLCER3RFsRK7TDesC164TUidmi @ 133 NONAME ABSENT
+	_ZN22ForJavaMIDletInstaller33CheckInterimFormatFileNotCorruptLER5RFile @ 134 NONAME ABSENT
 	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved1Ev @ 135 NONAME
 	_ZN23MApaAppListServObserver33MApaAppListServObserver_Reserved2Ev @ 136 NONAME
 	_ZN23MApaAppListServObserverC2Ev @ 137 NONAME
@@ -159,7 +159,7 @@
 	_ZN34CApaRegistrationResourceFileWriterD0Ev @ 158 NONAME
 	_ZN34CApaRegistrationResourceFileWriterD1Ev @ 159 NONAME
 	_ZN34CApaRegistrationResourceFileWriterD2Ev @ 160 NONAME
-	_ZN8ApaUtils24HandleAsRegistrationFileERK8TUidType @ 161 NONAME
+	_ZN8ApaUtils24HandleAsRegistrationFileERK8TUidType @ 161 NONAME ABSENT
 	_ZN8CApaDoor16SetFormatToIconLEv @ 162 NONAME
 	_ZN8CApaDoor17SetFormatToGlassLEv @ 163 NONAME
 	_ZN8CApaDoor25SetFormatToTemporaryIconLEi @ 164 NONAME
@@ -320,76 +320,97 @@
 	_ZNK8TApaTask6ExistsEv @ 319 NONAME
 	_ZNK8TApaTask8ThreadIdEv @ 320 NONAME
 	_ZN17CApaSecurityUtils16CheckAppSecurityERK7TPtrC16RiS3_ @ 321 NONAME
-	_ZN11CApaAppData11SetCaptionLERK7TDesC16 @ 322 NONAME
-	_ZN11CApaAppData9SetIconsLERK7TDesC16i @ 323 NONAME
-	_ZTI11CApaAppData @ 324 NONAME
-	_ZTI11CApaAppList @ 325 NONAME
-	_ZTI12CApaAppEntry @ 326 NONAME
-	_ZTI13RApaLsSession @ 327 NONAME
-	_ZTI14CApaAIFCaption @ 328 NONAME
-	_ZTI15CApaAIFViewData @ 329 NONAME
-	_ZTI15CApaAppInfoFile @ 330 NONAME
-	_ZTI15CApaAppViewData @ 331 NONAME
-	_ZTI15CApaIconPicture @ 332 NONAME
-	_ZTI16CApaMaskedBitmap @ 333 NONAME
-	_ZTI16TDesCArrayFiller @ 334 NONAME
-	_ZTI16TSizeArrayFiller @ 335 NONAME
-	_ZTI17CApaAppInfoReader @ 336 NONAME
-	_ZTI17CApaSystemControl @ 337 NONAME
-	_ZTI18TApaPictureFactory @ 338 NONAME
-	_ZTI19CApaAppInfoReaderV2 @ 339 NONAME
-	_ZTI19CApaAppListNotifier @ 340 NONAME
-	_ZTI19CApaWindowGroupName @ 341 NONAME
-	_ZTI20TViewDataArrayFiller @ 342 NONAME
-	_ZTI21CApaAppInfoFileReader @ 343 NONAME
-	_ZTI21CApaAppInfoFileWriter @ 344 NONAME
-	_ZTI21CApaSystemControlList @ 345 NONAME
-	_ZTI21CAsyncFileRecognition @ 346 NONAME
-	_ZTI22CApaLsSessionExtension @ 347 NONAME
-	_ZTI23MApaAppListServObserver @ 348 NONAME
-	_ZTI27CDataRecognitionResultArray @ 349 NONAME
-	_ZTI30CApaAppServiceInfoArrayWrapper @ 350 NONAME
-	_ZTI32CDataRecognitionResultArrayEntry @ 351 NONAME
-	_ZTI33CApaLocalisableResourceFileWriter @ 352 NONAME
-	_ZTI34CApaRegistrationResourceFileWriter @ 353 NONAME
-	_ZTI7HBufBuf @ 354 NONAME
-	_ZTI8CApaDoor @ 355 NONAME
-	_ZTIN26CApaResourceFileWriterBase11RBufferSinkE @ 356 NONAME
-	_ZTV11CApaAppData @ 357 NONAME
-	_ZTV11CApaAppList @ 358 NONAME
-	_ZTV12CApaAppEntry @ 359 NONAME
-	_ZTV13RApaLsSession @ 360 NONAME
-	_ZTV14CApaAIFCaption @ 361 NONAME
-	_ZTV15CApaAIFViewData @ 362 NONAME
-	_ZTV15CApaAppInfoFile @ 363 NONAME
-	_ZTV15CApaAppViewData @ 364 NONAME
-	_ZTV15CApaIconPicture @ 365 NONAME
-	_ZTV16CApaMaskedBitmap @ 366 NONAME
-	_ZTV16TDesCArrayFiller @ 367 NONAME
-	_ZTV16TSizeArrayFiller @ 368 NONAME
-	_ZTV17CApaAppInfoReader @ 369 NONAME
-	_ZTV17CApaSystemControl @ 370 NONAME
-	_ZTV18TApaPictureFactory @ 371 NONAME
-	_ZTV19CApaAppInfoReaderV2 @ 372 NONAME
-	_ZTV19CApaAppListNotifier @ 373 NONAME
-	_ZTV19CApaWindowGroupName @ 374 NONAME
-	_ZTV20TViewDataArrayFiller @ 375 NONAME
-	_ZTV21CApaAppInfoFileReader @ 376 NONAME
-	_ZTV21CApaAppInfoFileWriter @ 377 NONAME
-	_ZTV21CApaSystemControlList @ 378 NONAME
-	_ZTV21CAsyncFileRecognition @ 379 NONAME
-	_ZTV22CApaLsSessionExtension @ 380 NONAME
-	_ZTV23MApaAppListServObserver @ 381 NONAME
-	_ZTV27CDataRecognitionResultArray @ 382 NONAME
-	_ZTV30CApaAppServiceInfoArrayWrapper @ 383 NONAME
-	_ZTV32CDataRecognitionResultArrayEntry @ 384 NONAME
-	_ZTV33CApaLocalisableResourceFileWriter @ 385 NONAME
-	_ZTV34CApaRegistrationResourceFileWriter @ 386 NONAME
-	_ZTV7HBufBuf @ 387 NONAME
-	_ZTV8CApaDoor @ 388 NONAME
-	_ZTVN26CApaResourceFileWriterBase11RBufferSinkE @ 389 NONAME
-	_ZN31TIconLoaderAndIconArrayForLeaks25TestIconCaptionOverridesLEv @ 390 NONAME
-	_ZN13RApaLsSession40ForceCommitNonNativeApplicationsUpdatesLEv @ 391 NONAME
-	_ZN11CApaAppList20AppListUpdatePendingEv @ 392 NONAME
-	_ZN11CApaAppList19UninstalledAppArrayEv @ 393 NONAME
-	
\ No newline at end of file
+	_ZN11CApaAppList22AddForcedRegistrationLERK7TDesC16 @ 322 NONAME
+	_ZN11CApaAppList23AddCustomAppInfoInListLE4TUid9TLanguageRK7TDesC16 @ 323 NONAME
+	_ZN11CApaAppList28UpdateAppListByShortCaptionLEv @ 324 NONAME
+	_ZN11CApaAppList4NewLER3RFsii @ 325 NONAME
+	_ZN11TApaAppInfo12InternalizeLER11RReadStream @ 326 NONAME
+	_ZN11TApaAppInfoC1E4TUidRK4TBufILi256EES4_ @ 327 NONAME
+	_ZN11TApaAppInfoC1E4TUidRK4TBufILi256EES4_S4_ @ 328 NONAME
+	_ZN11TApaAppInfoC1Ev @ 329 NONAME
+	_ZN11TApaAppInfoC2E4TUidRK4TBufILi256EES4_ @ 330 NONAME
+	_ZN11TApaAppInfoC2E4TUidRK4TBufILi256EES4_S4_ @ 331 NONAME
+	_ZN11TApaAppInfoC2Ev @ 332 NONAME
+	_ZN12TApaAppEntryC1Ev @ 333 NONAME
+	_ZN12TApaAppEntryC2Ev @ 334 NONAME
+	_ZN15TApaAppViewInfo12InternalizeLER11RReadStream @ 335 NONAME
+	_ZN15TApaAppViewInfoC1E4TUidRK4TBufILi256EEi @ 336 NONAME
+	_ZN15TApaAppViewInfoC1Ev @ 337 NONAME
+	_ZN15TApaAppViewInfoC2E4TUidRK4TBufILi256EEi @ 338 NONAME
+	_ZN15TApaAppViewInfoC2Ev @ 339 NONAME
+	_ZN17TApaAppCapability12InternalizeLER11RReadStream @ 340 NONAME
+	_ZN17TApaAppCapability14CopyCapabilityER5TDes8RK6TDesC8 @ 341 NONAME
+	_ZN17TApaAppIdentifier12InternalizeLER11RReadStream @ 342 NONAME
+	_ZN17TApaAppIdentifierC1E4TUidRK4TBufILi256EE @ 343 NONAME
+	_ZN17TApaAppIdentifierC1Ev @ 344 NONAME
+	_ZN17TApaAppIdentifierC2E4TUidRK4TBufILi256EE @ 345 NONAME
+	_ZN17TApaAppIdentifierC2Ev @ 346 NONAME
+	_ZN18TApaAppServiceInfo12InternalizeLER11RReadStream @ 347 NONAME
+	_ZN18TApaAppServiceInfo7ReleaseEv @ 348 NONAME
+	_ZN18TApaAppServiceInfo9DataTypesEv @ 349 NONAME
+	_ZN18TApaAppServiceInfoC1E4TUidP13CArrayFixFlatI21TDataTypeWithPriorityEP6HBufC8 @ 350 NONAME
+	_ZN18TApaAppServiceInfoC1Ev @ 351 NONAME
+	_ZN18TApaAppServiceInfoC2E4TUidP13CArrayFixFlatI21TDataTypeWithPriorityEP6HBufC8 @ 352 NONAME
+	_ZN18TApaAppServiceInfoC2Ev @ 353 NONAME
+	_ZN23CApaAppServiceInfoArray33CApaAppServiceInfoArray_Reserved1Ev @ 354 NONAME
+	_ZN23CApaAppServiceInfoArray33CApaAppServiceInfoArray_Reserved2Ev @ 355 NONAME
+	_ZN23CApaAppServiceInfoArrayC2Ev @ 356 NONAME
+	_ZN23TApaEmbeddabilityFilter16AddEmbeddabilityEN17TApaAppCapability14TEmbeddabilityE @ 357 NONAME
+	_ZN23TApaEmbeddabilityFilterC1Ev @ 358 NONAME
+	_ZN23TApaEmbeddabilityFilterC2Ev @ 359 NONAME
+	_ZNK11TApaAppInfo12ExternalizeLER12RWriteStream @ 360 NONAME
+	_ZNK15TApaAppViewInfo12ExternalizeLER12RWriteStream @ 361 NONAME
+	_ZNK17TApaAppCapability12ExternalizeLER12RWriteStream @ 362 NONAME
+	_ZNK17TApaAppIdentifier12ExternalizeLER12RWriteStream @ 363 NONAME
+	_ZNK18TApaAppServiceInfo12ExternalizeLER12RWriteStream @ 364 NONAME
+	_ZNK23TApaEmbeddabilityFilter20MatchesEmbeddabilityEN17TApaAppCapability14TEmbeddabilityE @ 365 NONAME
+	_ZTI11CApaAppData @ 366 NONAME
+	_ZTI11CApaAppList @ 367 NONAME
+	_ZTI12CApaAppEntry @ 368 NONAME
+	_ZTI13RApaLsSession @ 369 NONAME
+	_ZTI15CApaAppViewData @ 370 NONAME
+	_ZTI15CApaIconPicture @ 371 NONAME
+	_ZTI16CApaMaskedBitmap @ 372 NONAME
+	_ZTI17CApaAppInfoReader @ 373 NONAME
+	_ZTI17CApaSystemControl @ 374 NONAME
+	_ZTI18TApaPictureFactory @ 375 NONAME
+	_ZTI19CApaAppListNotifier @ 376 NONAME
+	_ZTI19CApaWindowGroupName @ 377 NONAME
+	_ZTI21CApaSystemControlList @ 378 NONAME
+	_ZTI23CApaAppServiceInfoArray @ 379 NONAME
+	_ZTI23MApaAppListServObserver @ 380 NONAME
+	_ZTI27CDataRecognitionResultArray @ 381 NONAME
+	_ZTI33CApaLocalisableResourceFileWriter @ 382 NONAME
+	_ZTI34CApaRegistrationResourceFileWriter @ 383 NONAME
+	_ZTI7HBufBuf @ 384 NONAME
+	_ZTI8CApaDoor @ 385 NONAME
+	_ZTIN26CApaResourceFileWriterBase11RBufferSinkE @ 386 NONAME
+	_ZTV11CApaAppData @ 387 NONAME
+	_ZTV11CApaAppList @ 388 NONAME
+	_ZTV12CApaAppEntry @ 389 NONAME
+	_ZTV13RApaLsSession @ 390 NONAME
+	_ZTV15CApaAppViewData @ 391 NONAME
+	_ZTV15CApaIconPicture @ 392 NONAME
+	_ZTV16CApaMaskedBitmap @ 393 NONAME
+	_ZTV17CApaAppInfoReader @ 394 NONAME
+	_ZTV17CApaSystemControl @ 395 NONAME
+	_ZTV18TApaPictureFactory @ 396 NONAME
+	_ZTV19CApaAppListNotifier @ 397 NONAME
+	_ZTV19CApaWindowGroupName @ 398 NONAME
+	_ZTV21CApaSystemControlList @ 399 NONAME
+	_ZTV23CApaAppServiceInfoArray @ 400 NONAME
+	_ZTV23MApaAppListServObserver @ 401 NONAME
+	_ZTV27CDataRecognitionResultArray @ 402 NONAME
+	_ZTV33CApaLocalisableResourceFileWriter @ 403 NONAME
+	_ZTV34CApaRegistrationResourceFileWriter @ 404 NONAME
+	_ZTV7HBufBuf @ 405 NONAME
+	_ZTV8CApaDoor @ 406 NONAME
+	_ZTVN26CApaResourceFileWriterBase11RBufferSinkE @ 407 NONAME
+	_ZN11CApaAppData11SetCaptionLERK7TDesC16 @ 408 NONAME
+	_ZN11CApaAppData9SetIconsLERK7TDesC16i @ 409 NONAME
+	_ZN11CApaAppList36UpdateAppListByIconCaptionOverridesLEv @ 410 NONAME
+	_ZN13RApaLsSession40ForceCommitNonNativeApplicationsUpdatesLEv @ 411 NONAME
+	_ZN31TIconLoaderAndIconArrayForLeaks25TestIconCaptionOverridesLEv @ 412 NONAME
+	_ZN11CApaAppList20AppListUpdatePendingEv @ 413 NONAME
+	_ZNK13RApaLsSession13RecognizeDataERK6TDesC8R22TDataRecognitionResult @ 414 NONAME
+	_ZN11CApaAppList19UninstalledAppArrayEv @ 415 NONAME
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/eabi/aplistu.def	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,101 @@
+EXPORTS
+	_ZN11CApaAppData16CanUseScreenModeEi @ 1 NONAME
+	_ZN11CApaAppData16SetShortCaptionLERK7TDesC16 @ 2 NONAME
+	_ZN11CApaAppData4NewLERK12TApaAppEntryR3RFs @ 3 NONAME
+	_ZN11CApaAppDataD0Ev @ 4 NONAME
+	_ZN11CApaAppDataD1Ev @ 5 NONAME
+	_ZN11CApaAppDataD2Ev @ 6 NONAME
+	_ZN11CApaAppList12RestartScanLEv @ 7 NONAME
+	_ZN11CApaAppList16StartIdleUpdateLEP19MApaAppListObserver @ 8 NONAME
+	_ZN11CApaAppList16StartIdleUpdateLEv @ 9 NONAME
+	_ZN11CApaAppList22AddForcedRegistrationLERK7TDesC16 @ 10 NONAME
+	_ZN11CApaAppList22FindAndAddSpecificAppLEP16CApaAppRegFinder4TUid @ 11 NONAME
+	_ZN11CApaAppList23AddCustomAppInfoInListLE4TUid9TLanguageRK7TDesC16 @ 12 NONAME
+	_ZN11CApaAppList24ResetForcedRegistrationsEv @ 13 NONAME
+	_ZN11CApaAppList28UpdateAppListByShortCaptionLEv @ 14 NONAME
+	_ZN11CApaAppList4NewLER3RFsii @ 15 NONAME
+	_ZN11CApaAppList4SelfEv @ 16 NONAME
+	_ZN11CApaAppList6PurgeLEv @ 17 NONAME
+	_ZN11CApaAppList8StopScanEi @ 18 NONAME
+	_ZN11CApaAppList9InitListLEP19MApaAppListObserver @ 19 NONAME
+	_ZN11CApaAppListD0Ev @ 20 NONAME
+	_ZN11CApaAppListD1Ev @ 21 NONAME
+	_ZN11CApaAppListD2Ev @ 22 NONAME
+	_ZN12TApaAppEntryC1Ev @ 23 NONAME
+	_ZN12TApaAppEntryC2Ev @ 24 NONAME
+	_ZN14CAppSidChecker18SetRescanCallBackLERK9TCallBack @ 25 NONAME
+	_ZN14CAppSidChecker9reserved1Ev @ 26 NONAME
+	_ZN14CAppSidChecker9reserved2Ev @ 27 NONAME
+	_ZN14CAppSidChecker9reserved3Ev @ 28 NONAME
+	_ZN14CAppSidCheckerD0Ev @ 29 NONAME
+	_ZN14CAppSidCheckerD1Ev @ 30 NONAME
+	_ZN14CAppSidCheckerD2Ev @ 31 NONAME
+	_ZN16CApaAppRegFinder12FindAllAppsLENS_10TScanScopeE @ 32 NONAME
+	_ZN16CApaAppRegFinder4NewLERK3RFs @ 33 NONAME
+	_ZN16CApaAppRegFinder5NewLCERK3RFs @ 34 NONAME
+	_ZN16CApaAppRegFinder5NextLER12TApaAppEntryRK12CDesC16Array @ 35 NONAME
+	_ZNK11CApaAppData10CapabilityER5TDes8 @ 36 NONAME
+	_ZNK11CApaAppData10IconSizesLEv @ 37 NONAME
+	_ZNK11CApaAppData10OpaqueDataEv @ 38 NONAME
+	_ZNK11CApaAppData10OwnedFilesEv @ 39 NONAME
+	_ZNK11CApaAppData11GetIconInfoERiS0_ @ 40 NONAME
+	_ZNK11CApaAppData12IconFileNameEv @ 41 NONAME
+	_ZNK11CApaAppData14NonMbmIconFileEv @ 42 NONAME
+	_ZNK11CApaAppData17ImplementsServiceE4TUid @ 43 NONAME
+	_ZNK11CApaAppData19ApplicationLanguageEv @ 44 NONAME
+	_ZNK11CApaAppData19DefaultScreenNumberEv @ 45 NONAME
+	_ZNK11CApaAppData20RegistrationFileNameEv @ 46 NONAME
+	_ZNK11CApaAppData20RegistrationFileUsedEv @ 47 NONAME
+	_ZNK11CApaAppData24NonNativeApplicationTypeEv @ 48 NONAME
+	_ZNK11CApaAppData27LocalisableResourceFileNameEv @ 49 NONAME
+	_ZNK11CApaAppData4IconE5TSize @ 50 NONAME
+	_ZNK11CApaAppData4IconEi @ 51 NONAME
+	_ZNK11CApaAppData5ViewsEv @ 52 NONAME
+	_ZNK11CApaAppData8AppEntryEv @ 53 NONAME
+	_ZNK11CApaAppData8DataTypeERK9TDataType @ 54 NONAME
+	_ZNK11CApaAppData9IsPendingEv @ 55 NONAME
+	_ZNK11CApaAppList12AppDataByUidE4TUid @ 56 NONAME
+	_ZNK11CApaAppList17AppDataByFileNameERK7TDesC16 @ 57 NONAME
+	_ZNK11CApaAppList17AppScanInProgressEv @ 58 NONAME
+	_ZNK11CApaAppList17ServiceUidBufferLE4TUid @ 59 NONAME
+	_ZNK11CApaAppList19IsFirstScanCompleteEv @ 60 NONAME
+	_ZNK11CApaAppList19ServiceArrayBufferLE4TUid @ 61 NONAME
+	_ZNK11CApaAppList20IsIdleUpdateCompleteEv @ 62 NONAME
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataType @ 63 NONAME
+	_ZNK11CApaAppList21PreferredDataHandlerLERK9TDataTypePK4TUidRi @ 64 NONAME
+	_ZNK11CApaAppList23IsLanguageChangePendingEv @ 65 NONAME
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUid @ 66 NONAME
+	_ZNK11CApaAppList23ServiceImplArrayBufferLE4TUidRK9TDataType @ 67 NONAME
+	_ZNK11CApaAppList24ServiceOpaqueDataBufferLE4TUidS0_ @ 68 NONAME
+	_ZNK11CApaAppList5CountEv @ 69 NONAME
+	_ZNK11CApaAppList7NextAppEPK11CApaAppData @ 70 NONAME
+	_ZNK11CApaAppList7NextAppEPK11CApaAppDatai @ 71 NONAME
+	_ZNK11CApaAppList8FirstAppEi @ 72 NONAME
+	_ZNK11CApaAppList8FirstAppEv @ 73 NONAME
+	_ZNK15CApaAppViewData10IconSizesLEv @ 74 NONAME
+	_ZNK15CApaAppViewData10ScreenModeEv @ 75 NONAME
+	_ZNK15CApaAppViewData12IconFileNameEv @ 76 NONAME
+	_ZNK15CApaAppViewData14NonMbmIconFileEv @ 77 NONAME
+	_ZNK15CApaAppViewData3UidEv @ 78 NONAME
+	_ZNK15CApaAppViewData4IconERK5TSize @ 79 NONAME
+	_ZNK16CApaAppRegFinder9DriveListEv @ 80 NONAME
+	_ZTI11CApaAppData @ 81 NONAME
+	_ZTI11CApaAppList @ 82 NONAME
+	_ZTI12CApaAppEntry @ 83 NONAME
+	_ZTI14CAppSidChecker @ 84 NONAME
+	_ZTI15CApaAppViewData @ 85 NONAME
+	_ZTI16CApaAppRegFinder @ 86 NONAME
+	_ZTI17CApaAppInfoReader @ 87 NONAME
+	_ZTV11CApaAppData @ 88 NONAME
+	_ZTV11CApaAppList @ 89 NONAME
+	_ZTV12CApaAppEntry @ 90 NONAME
+	_ZTV14CAppSidChecker @ 91 NONAME
+	_ZTV15CApaAppViewData @ 92 NONAME
+	_ZTV16CApaAppRegFinder @ 93 NONAME
+	_ZTV17CApaAppInfoReader @ 94 NONAME
+	_ZN11CApaAppData11SetCaptionLERK7TDesC16 @ 95 NONAME
+	_ZN11CApaAppData9SetIconsLERK7TDesC16i @ 96 NONAME
+	_ZN11CApaAppList36UpdateAppListByIconCaptionOverridesLEv @ 97 NONAME
+	_ZN11CApaAppList20AppListUpdatePendingEv @ 98 NONAME
+	_ZN11CApaAppList19UninstalledAppArrayEv @ 99 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/APFILE.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// APFILE.MMP for component APFILE
+//
+
+/**
+@file
+
+@SYMPurpose apfile.dll Internal server helpers
+*/
+
+
+target          apfile.dll
+CAPABILITY All -Tcb
+targettype      DLL
+UID		0x1000008D 0x10003A3B
+VENDORID 0x70000001
+
+SOURCEPATH	../apfile
+
+userinclude   ../inc
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+macro UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
+
+source			APFREC.CPP APFSTD.CPP APRuleBased.CPP ApLaunchChecker.cpp apinstallationmonitor.cpp
+source			apfmimecontentpolicy.cpp
+
+library         euser.lib efsrv.lib apparc.lib apgrfx.lib bafl.lib apserv.lib ecom.lib 
+library			apmime.lib caf.lib
+library			centralrepository.lib
+
+
+START WINS
+	baseaddress	0x43000000
+END
+
+START MARM
+END
+
+// For the benefit of Eshell which cannot build a resource registration file
+START RESOURCE	eshell_reg.rss
+TARGETPATH	/private/10003a3f/apps
+END
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/APGRFX.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,69 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// APGRFX.MMP for component APGRFX
+//
+
+/**
+@file
+
+@SYMPurpose apgrfx.dll Apparc server client APIs + wserv wrapper utilities
+*/
+
+target          apgrfx.dll
+CAPABILITY All -Tcb
+targettype      DLL
+UID		0x1000008D 0x10003A3C
+VENDORID 0x70000001
+
+option MSVC /Od
+
+SOURCEPATH	../apgrfx
+
+userinclude		../inc
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+source			APGCTL.CPP APGDOOR.CPP APGICNFL.CPP APGSTD.CPP APGTASK.CPP
+source			APGWGNAM.CPP APGCLI.CPP apgstart.cpp apgrecog.cpp APGPRIV.CPP
+source			apgnotif.cpp APSCLI.CPP apgconstdata.cpp
+SOURCE			apsecutils.cpp
+
+library         euser.lib apparc.lib apmime.lib gdi.lib estor.lib efsrv.lib fbscli.lib
+library         bitgdi.lib ws32.lib bafl.lib
+library         apserv.lib apfile.lib
+
+#ifdef USE_IH_RAISE_EVENT
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+LIBRARY			instrumentationhandler.lib
+#endif // USE_IH_RAISE_EVENT
+
+#ifdef SYMBIAN_BAFL_SYSUTIL
+library sysutil.lib
+#endif
+
+macro			SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1
+
+deffile			APGRFX.DEF
+
+START WINS
+	baseaddress	0x42F00000
+END
+
+START MARM
+END
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/APLIST.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,79 @@
+/*
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// APLIST.MMP for component APLIST
+//
+
+/**
+@file
+
+@SYMPurpose aplist.dll 		//mm Apparc server client APIs + wserv wrapper utilities
+*/
+
+target          aplist.dll
+CAPABILITY 	All -Tcb
+targettype      DLL
+UID		0x1000008D 0x11003A3C	// GET REAL UID!!!!
+VENDORID 0x70000001
+
+option MSVC /Od
+
+SOURCEPATH	../aplist
+
+userinclude	../inc
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+source		aplapplist.cpp	aplapplistitem.cpp aplappinforeader.cpp aplappregfinder.cpp apsidchecker.cpp
+source		apsiconcaptionoverride.cpp
+// source       APGCTL.CPP apgdoor.cpp APGICNFL.CPP APGSTD.CPP APGTASK.CPP
+// source	APGWGNAM.CPP apgcli.cpp apgstart.cpp apgrecog.cpp APGPRIV.CPP
+// source	apgnotif.cpp APGAIR.CPP APGAIRV2.CPP APSCLI.CPP APGCONSTDATA.CPP
+// SOURCE	apsecutils.cpp
+// source       APGAPLSTV2.CPP
+
+library         euser.lib gdi.lib estor.lib efsrv.lib fbscli.lib
+library         bitgdi.lib ws32.lib bafl.lib ecom.lib 
+
+#ifdef SYMBIAN_BAFL_SYSUTIL
+library sysutil.lib
+#endif
+
+library 		apparc.lib	// TApaAppCapability referenced from CApaAppInfoReader
+library			apgrfx.lib  // CApaMaskedBitmap referenced from CApaIconLoader
+library 		apfile.lib	// CAppSidChecker referenced from CApaAppRegFinder
+library 		apserv.lib	// CApaAppListServer referenced from CApaAppRegFinder
+library 		apmime.lib 	// TDataType referenced from CApaAppData
+library			centralrepository.lib
+
+//library         	apserv.lib apfile.lib apparc.lib 
+
+#ifdef USE_IH_RAISE_EVENT
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+LIBRARY			instrumentationhandler.lib
+#endif // USE_IH_RAISE_EVENT
+
+macro			SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1
+
+
+START WINS
+//	baseaddress	0x42F00000
+END
+
+START MARM
+END
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/APPARC.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// APPARC.MMP for component APPARC
+//
+
+/**
+@file
+
+@SYMPurpose apparc.dll Application apparc base classes
+*/
+
+
+target          apparc.dll
+CAPABILITY All -Tcb
+targettype      DLL
+UID		0x1000008D 0x10003A3D
+VENDORID 0x70000001
+
+SOURCEPATH	../apparc
+userinclude		../inc
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+source          APACMDLN.CPP APAFLREC.CPP APAID.CPP APADBASE.CPP APAMDR.CPP
+source          APASTD.CPP APPARC.CPP apaapp.cpp apadoc.cpp apaproc.cpp
+source          ApaAppServer.cpp
+source          ApaAppClient.cpp
+
+library         euser.lib efsrv.lib gdi.lib estor.lib ecom.lib
+library		apmime.lib	// TDataTypeWithPriority referenced from TApaAppServiceInfo
+
+START WINS
+	baseaddress	0x40000000
+END
+
+START MARM
+END
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/APSERV.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// APSERV.MMP for component APSERV
+//
+
+/**
+@file
+
+@SYMPurpose apserv.dll Apparc server
+*/
+
+
+target          apserv.dll
+CAPABILITY All -Tcb
+targettype      DLL
+UID		0x1000008D 0x10003A3E
+VENDORID 0x70000001
+
+SOURCEPATH	../apserv
+
+userinclude		../inc ../apparc
+userinclude		../apgrfx
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+
+source          APSSERV.CPP APSSES.CPP APSSTD.CPP APSSCAN.CPP
+source          APSSTART.CPP APSRECCACHE.cpp APSRECUTIL.CPP
+source	        APSCONSTDATA.CPP
+source          apsnnapps.cpp apsnnappupdates.cpp
+
+
+library         euser.lib efsrv.lib apparc.lib apgrfx.lib apmime.lib fbscli.lib apfile.lib
+library         estor.lib bafl.lib ws32.lib ecom.lib
+library		aplist.lib
+
+macro UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
+
+deffile 	APSERV.DEF
+
+START WINS
+	baseaddress	0x43700000
+END
+
+START MARM
+END
+
+SMPSAFE
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/APSEXE.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// APSEXE.MMP server launch code for AppArc server
+//
+
+/**
+@file
+
+@SYMPurpose apsexe.dll Apparc server stub
+*/
+target          apsexe.exe
+targettype      EXE
+CAPABILITY ProtServ
+
+UID		0x1000008D 0x10003A3F
+VENDORID 0x70000001
+
+SOURCEPATH	../apsexe
+
+userinclude		../inc
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+source			APSMAIN.CPP
+
+library  euser.lib  apserv.lib
+
+
+// Apparc server need extra stack as it has a lot of
+// filenames and parse objects on stack from time to time
+epocstacksize	0x3000
+
+SMPSAFE
--- a/localisation/apparchitecture/group/BLD.INF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/group/BLD.INF	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -26,11 +24,11 @@
 PRJ_PLATFORMS
 WINC DEFAULT
 
+
 PRJ_EXPORTS
 // test code only
 
 PRJ_MMPFILES
-// test code only
 
 PRJ_TESTMMPFILES
 // specify the .mmp files required for building any test programs here
@@ -44,14 +42,12 @@
 // i.e. tests where no user input is required.  The default will apply if neither "manual"
 // or "support" is specified.
 ../tef/apparctestserver.MMP
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
 //../tef/TAppInstall/TestAppInstall.mmp
-#endif// SYMBIAN_APPARC_APPINFO_CACHE
-//../tef/TDoNothingFileRecognizer_v2.mmp
 ../tef/TSTAPP_embedded.MMP 	support
 ../tef/TSTAPP_standalone.MMP	support
 //../tef/m_ctrl_v2.mmp	support
 //../tef/SimpleApparcTestApp.mmp	support
+//../tef/zerosizedicontestapp.mmp	support
 //../tef/TEXE_V2.MMP 	support
 //../tef/TAppNotEmbeddable_v2.mmp support
 //../tef/TAppEmbeddable_embedded.mmp support
@@ -72,7 +68,6 @@
 //../tef/tRuleBasedApps/tRuleBasedApp4.mmp support
 //../tef/TCmdLineExe.mmp 	support
 //../tef/TApparcTestApp.mmp support
-//../tef/TTestEcomFileRec.mmp support
 //../tef/TAppLaunchChecker.mmp support
 //../tef/TAppLaunchChecker2.mmp support
 //../tef/TNonNativeAppLaunchChecker.mmp support
@@ -98,13 +93,45 @@
 //../tef/tlargestack/tlargestackapp.mmp
 //../tef/UnProctectedUidApp.mmp	support
 ../tef/TIconLoaderAndIconArrayForLeaks.mmp
+//  RecMime_1 binaries are used to install and uninstall the mime type recognizer during runtime in TRApaLsSessionTestStep.
+//../tef/TMimeRec1/RecMime_1.MMP
 //../tef/tupgradeiconapp/tupgradeiconapp.mmp
 //../tef/tnotifydrivesapp/tnotifydrivesapp.mmp
+//../tef/TRecUpgrade/recupgrade.mmp
+//*****************************************************************************************************************************************************************************************************
+//recupgrade_1 plug-in is used to upgrade the mime type recognizer during runtime in T_RecUpgrade test.  
+//              It is build for armv5 and rename to recupgrade_armv5_rel.dll and copied to apparc\Tdata before actual code builds.  If you are making any change in recupgrade_1.cpp then uncomment 
+//              “recupgrade_1.MMP” , build , rename (.dll) and copy as mentioned above .
+//*****************************************************************************************************************************************************************************************************
+//../tef/TRecUpgrade_1/recupgrade_1.MMP
+
+//../tef/testapp/testforceregistrationapp1/testforceregistrationapp1.mmp
+
+// ***************************************************************************************************************************************************************************************************
+// recupgrade_2 plug-in is used to upgrade the mime type recognizer during runtime in T_RecUpgrade test.  
+//              It is build for armv5 and rename to recupgrade2_armv5_rel.dll and copied to apparc\Tdata before actual code builds.  If you are making any change in recupgrade_2.cpp then uncomment 
+//              “recupgrade_2.MMP” , build , rename (.dll) and copy as mentioned above .
+// ***************************************************************************************************************************************************************************************************
+//../tef/TRecUpgrade_2/recupgrade_2.MMP
 //../tef/ticoncaptionoverride.mmp
-//../tef/trecupgrade/recupgrade.mmp
+// testupdregappuninstallation is used in t_serviceregistry test. If any changes done to
+// this application, uncomment testupdregappuninstallation.mmp file and build it.
+// Then comment it and copy the testupdregappuninstallation_reg.rsc file to ..\tdata folder.
+// Delete any testupdregappuninstallation* files from epoc32 directory.
+//../tef/testapp/testupdregappuninstallation/testupdregappuninstallation.mmp
+
+// testupgradeupdregappuninstallation is used in t_serviceregistry test. If any changes done to
+// this application, uncomment testupdregappuninstallation.mmp file and build it.
+// Then comment it and copy the testupgradeupdregappuninstallation_reg.rsc file to ..\tdata folder.
+// Delete any testupdregappuninstallation* files from epoc32 directory.
+//../tef/testapp/testupgradeupdregappuninstallation/testupgradeupdregappuninstallation.mmp
+
 
 PRJ_TESTEXPORTS
+
+//../group/apparcTest.iby /epoc32/rom/include/apparctest.iby
+
+//../tef/scripts/apparctest_T_Caption.script            		z:/apparctest/apparctest_t_caption.script
 ../tef/scripts/smoketest_language.script            		z:/smoketest/smoketest_language.script
 ../tef/scripts/setup_smoketest_language.script            	z:/smoketest/setup_smoketest_language.script
-../group/Smoketest_AppArchitecture.iby              /epoc32/rom/include/Smoketest_AppArchitecture.iby
-
+../group/Smoketest_AppArchitecture.iby              /epoc32/rom/include/Smoketest_AppArchitecture.iby
\ No newline at end of file
--- a/localisation/apparchitecture/group/ExeMove.mk	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-
-EXESOURCEDIR = %EPOCROOT%epoc32\release\winscw\udeb
-EXEDESTDIR = %EPOCROOT%epoc32\release\$(PLATFORM)\udeb\z\HelloV2_C
-EXEDESTDIR_CONTENTS = $(EXEDESTDIR)\*.*
-EMPTYDIR = %EPOCROOT%epoc32\release\$(PLATFORM)\udeb\z\System\data\Testpath\Empty
-
-EXENAME = HelloV2_C.exe
-REGNAME = HelloV2_C_reg.rsc
-RSRCNAME = HelloV2_C.rsc
-
-EXENAME_Z = HelloV2.exe
-
-SADEXENAME = HelloV2NoIke.exe
-SADREGNAME = HelloV2NoIke_reg.rsc
-
-MBMNAME = HelloV2_C_icon.mbm
-MBMNAME_DEFAULT_ROOT = default_app_icon.mbm
-MBMNAME_C_APP_ROOT = HelloV2_C_icon.mbm
-MBMNAME_Z_APP_ROOT = HelloV2_icon.mbm
-MBMNAME_Z_APP_NOIKE_ROOT = HelloV2NoIkeIcon.mbm
-
-RSRCAPPSPATH = %EPOCROOT%epoc32\winscw\c\Resource\Apps
-RSRCPATH = %EPOCROOT%epoc32\winscw\c\Resource
-REGPATH = %EPOCROOT%epoc32\winscw\c\private\10003a3f\Apps
-
-ALTICONSDIR = %EPOCROOT%epoc32\winscw\c\AltIcons
-ALTICONSCONTENTS = $(ALTICONSDIR)\*.*
-ALTICONSDIR_Z = %EPOCROOT%epoc32\winscw\c\AltIcons\Z
-ALTICONSCONTENTS_Z = $(ALTICONSDIR)\Z\*.*
-
-ALTICONS_REPOSITORY = %EPOCROOT%epoc32\release\$(PLATFORM)\udeb\z\IconStore
-ALTICONS_REPOSITORY_CONTENTS = $(ALTICONS_REPOSITORY)\*.*
-ALTICONS_MBMNAME_C_APP = HelloV2_C_icon.mbm
-ALTICONS_SOURCE_MBMNAME_C_APP = ..\tsrc\HelloV2_C\AltIcon\$(ALTICONS_MBMNAME_C_APP)
-ALTICONS_MBMNAME_Z_APP = HelloV2_icon.mbm
-ALTICONS_SOURCE_MBMNAME_Z_APP = ..\tsrc\HelloV2\AltIcon\$(ALTICONS_MBMNAME_Z_APP)
-ALTICONS_SOURCE_MBMNAME_Z_APP_NOIKE = ..\tsrc\HelloV2NoIke\HelloV2NoIkeIcon.mbm
-ALTICONS_MBMNAME_Z_APP_NOIKE = HelloV2NoIkeIcon.mbm
-ALTICONS_MBMNAME_DEFAULT_ICON = default_app_icon.mbm
-ALTICONS_SOURCE_MBMNAME_DEFAULT_ICON = ..\tsrc\HelloV2NoIke\default_app_icon.mbm
-
-SYSDIR = %EPOCROOT%epoc32\winscw\c\sys
-BINDIR = $(SYSDIR)\bin
-SYSDIR_Z = %EPOCROOT%epoc32\release\winscw\udeb\z\sys
-BINDIR_Z = $(SYSDIR_Z)\bin
-
-ROMBUILD_TEMP = %EPOCROOT%epoc32\release\IconsTemp
-ROMBUILD_TEMP_CONTENTS = %EPOCROOT%epoc32\release\IconsTemp\*.*
-
-CROOTDIR = %EPOCROOT%epoc32\winscw\c
-
-MAKMAKE FREEZE LIB CLEANLIB RESOURCE RELEASABLES BLD SAVESPACE:
-
-!IF ("$(PLATFORM)" == "WINSCW")
-
-FINAL :
-#	Make the C-based-app file repository on Z
-	echo Creating $(EXEDESTDIR) for $(PLATFORM)
-	-mkdir $(EXEDESTDIR) 2>NUL
-	echo .
-
-#	Move the C-based exe from the release directory to the app-file repository on Z
-	echo Moving $(EXENAME) for $(PLATFORM) to $(EXEDESTDIR)
-	-move $(EXESOURCEDIR)\$(EXENAME) $(EXEDESTDIR)\$(EXENAME)
-	echo .
-
-#	Make the folder on C for resource files
-	echo Creating $(RSRCAPPSPATH)
-	-mkdir $(RSRCPATH)
-	-mkdir $(RSRCAPPSPATH)
-	echo .
-
-#	Make the folder on C for registration files
-	echo Creating $(REGPATH)
-	-mkdir $(REGPATH)
-	echo .
-
-#	Move the Z-based exe from the release directory to the sys\bin on Z
-	echo Moving $(EXENAME_Z) for $(PLATFORM) to $(BINDIR_Z)\$(EXENAME_Z)
-	-move $(EXESOURCEDIR)\$(EXENAME_Z) $(BINDIR_Z)\$(EXENAME_Z)
-	echo .
-
-	echo Copying the Alt-Icons to repository on Z
-	-mkdir $(ALTICONS_REPOSITORY)
-	-copy $(ALTICONS_SOURCE_MBMNAME_C_APP) $(ALTICONS_REPOSITORY)\$(ALTICONS_MBMNAME_C_APP)
-	-copy $(ALTICONS_SOURCE_MBMNAME_Z_APP) $(ALTICONS_REPOSITORY)\$(ALTICONS_MBMNAME_Z_APP)
-	-copy $(ALTICONS_SOURCE_MBMNAME_Z_APP_NOIKE) $(ALTICONS_REPOSITORY)\$(ALTICONS_MBMNAME_Z_APP_NOIKE)
-	-copy $(ALTICONS_SOURCE_MBMNAME_DEFAULT_ICON) $(ALTICONS_REPOSITORY)\$(ALTICONS_MBMNAME_DEFAULT_ICON)
-
-#	Create 'Empty' folder for T_Serv2 tests
-	echo Creating $(EMPTYDIR) for $(PLATFORM)
-	-mkdir $(EMPTYDIR) 2>NUL
-	echo .
-
-
-CLEAN :
-#	Removing files from drive Z, the C-app-file repository
-    echo Deleting $(EXEDESTDIR_CONTENTS) for $(PLATFORM)
-    -del /q $(EXEDESTDIR_CONTENTS) 2>NUL
-	echo .
-
-#	Remove the drive Z, C-app-file repository
-	echo Removing $(EXEDESTDIR) if empty for $(PLATFORM)
-    -rmdir $(EXEDESTDIR) 2>NUL
-	echo .
-
-#	Remove the Z-based exe from the bin directory
-    echo Deleting $(BINDIR_Z)\$(EXENAME_Z) for $(PLATFORM)
-    -del $(BINDIR_Z)\$(EXENAME_Z) 2>NUL
-	echo .
-
-#	Remove the C-based exe from the bin directory
-    echo Deleting $(BINDIR)\$(EXENAME) for $(PLATFORM)
-    -del $(BINDIR)\$(EXENAME) 2>NUL
-	echo .
-
-	echo Removing $(BINDIR) if empty for $(PLATFORM)
-    -rmdir $(BINDIR) 2>NUL
-	echo .
-
-	echo Removing $(SYSDIR) if empty for $(PLATFORM)
-    -rmdir $(SYSDIR) 2>NUL
-	echo .
-
-#	Remove the alt-icon files  for Z-based apps
-	echo Deleting $(ALTICONSCONTENTS_Z) for $(PLATFORM)
-	-del /q $(ALTICONSCONTENTS_Z)
-	echo .
-
-	echo Removing $(ALTICONSDIR_Z) directory for $(PLATFORM)
-	-rmdir $(ALTICONSDIR_Z)
-	echo .
-
-#	Remove the alt-icon files  for C-based apps
-	echo Deleting $(ALTICONSCONTENTS) for $(PLATFORM)
-	-del /q $(ALTICONSCONTENTS)
-	echo .
-
-	echo Removing $(ALTICONSDIR) directory for $(PLATFORM)
-	-rmdir $(ALTICONSDIR)
-	echo .
-
-	echo Removing the alt-icons repository
-	-del /q $(ALTICONS_REPOSITORY_CONTENTS)
-	-rmdir $(ALTICONS_REPOSITORY)
-	echo .
-
-#	Uninstall the C-based app
-	echo Deleting registration file $(REGPATH)\$(REGNAME) for $(PLATFORM)
-	-del $(REGPATH)\$(REGNAME)
-	echo .
-
-	echo Removing $(REGPATH) if empty for $(PLATFORM)
-	-rmdir $(REGPATH) 
-	echo .
-
-	echo Removing $(RSRCAPPSPATH)\$(RSRCNAME) for $(PLATFORM)
-	-del $(RSRCAPPSPATH)\$(RSRCNAME)
-	echo .
-
-	echo Deleting $(RSRCAPPSPATH)\$(MBMNAME) for $(PLATFORM)
-	-del $(RSRCAPPSPATH)\$(MBMNAME)
-	echo .
-
-	echo Removing $(RSRCAPPSPATH) if empty for $(PLATFORM)
-	-rmdir $(RSRCAPPSPATH)
-	echo .
-
-	echo Removing $(RSRCPATH) if empty for $(PLATFORM)
-	-rmdir $(RSRCPATH)
-	echo .
-
-	echo Deleting MBM files in the root of emulated drive-C
-	echo .
-	echo $(CROOTDIR)\$(MBMNAME_DEFAULT_ROOT)
-	-del $(CROOTDIR)\$(MBMNAME_DEFAULT_ROOT)
-	echo $(CROOTDIR)\$(MBMNAME_DEFAULT_ROOT)
-	-del $(CROOTDIR)\$(MBMNAME_C_APP_ROOT)
-	echo $(CROOTDIR)\$(MBMNAME_DEFAULT_ROOT)
-	-del $(CROOTDIR)\$(MBMNAME_Z_APP_ROOT)
-	echo $(CROOTDIR)\$(MBMNAME_Z_APP_NOIKE_ROOT)
-	-del $(CROOTDIR)\$(MBMNAME_Z_APP_NOIKE_ROOT)
-	echo .
-
-#	Remove the "Empty" dir from the drive Z
-	echo Removing $(EMPTYDIR) if empty for $(PLATFORM)
-    -rmdir $(EMPTYDIR) 2>NUL
-	echo .
-!ELSE
-FINAL :
-	echo Copying AltIcons to temp directory
-	-mkdir $(ROMBUILD_TEMP) 2>NUL
-	-copy $(ALTICONS_SOURCE_MBMNAME_C_APP)	$(ROMBUILD_TEMP)
-	-copy $(ALTICONS_SOURCE_MBMNAME_Z_APP) $(ROMBUILD_TEMP)
-	-copy $(ALTICONS_SOURCE_MBMNAME_Z_APP_NOIKE) $(ROMBUILD_TEMP)
-	-copy $(ALTICONS_SOURCE_MBMNAME_DEFAULT_ICON) $(ROMBUILD_TEMP)	
-CLEAN :
-	-del /q $(ROMBUILD_TEMP_CONTENTS) 2>NUL
-	-rmdir $(ROMBUILD_TEMP) 2>NUL
-
-!ENDIF
\ No newline at end of file
--- a/localisation/apparchitecture/group/RELEASE.TXT	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/group/RELEASE.TXT	Tue Aug 03 10:20:34 2010 +0100
@@ -494,19 +494,19 @@
 1) Changed over to new build system splitting mnt.cmd into ebld.bat
 and mnt.cmd and using makmake etc...
 
-2) Bug fix SW1-516: to speed up drawing of control panel moved the DLL loading into
+2) Defect fix SW1-516: to speed up drawing of control panel moved the DLL loading into
 CApaSystemControl::CreateL() from CApaSystemControl::ConstructL()
 which was being called to build up the list of available controls. 
 Added member data iUidType and iFullPath.  This also means that OOM
 is less likely when bringing up the control panel.
 
-3) Bug fix SW1-451: in CApaScanningAppFinder::FindAllAppsL() set
+3) Defect fix SW1-451: in CApaScanningAppFinder::FindAllAppsL() set
 iDriveList=NULL after deleting it (spotted by MartinB).
 
-4) Bug fix SW1-566: in CApaScanningAppFinder destructor now delete
+4) Defect fix SW1-566: in CApaScanningAppFinder destructor now delete
 iFileList.
 
-5) Bug fix SW1-620: in CApaScanningControlFinder::NextL() iFileIndex
+5) Defect fix SW1-620: in CApaScanningControlFinder::NextL() iFileIndex
 was only being reset to 0 if there was a drive in between which
 failed GetFileListL(); if 2 consecutive drives both had controls it
 was hit and miss whether all those on the second drive would be
@@ -604,9 +604,9 @@
 
 ) Fixes CSW3-1386: Overriding of ROM apps doesnt work - the in ROM versions are still loaded instead of those in RAM. The fix ensures that the correct dll is loaded, but does not cache the new AIF data.
 
-) Fixes SW1-122: OPL programs don't run when copied from one disk to another. This was another manifestation of the above bug, and the fix carries the same proviso (though in this case it's meaningless as the data is the same - it was just copied between discs).
-
-) The above fixes left a couple of slight problems, and these have been noted in a new bug report SW1-134.
+) Fixes SW1-122: OPL programs don't run when copied from one disk to another. This was another manifestation of the above defect, and the fix carries the same proviso (though in this case it's meaningless as the data is the same - it was just copied between discs).
+
+) The above fixes left a couple of slight problems, and these have been noted in a new defect report SW1-134.
 
 
 
@@ -751,7 +751,7 @@
 
 Binary compatible with 065 - 069
 
-) Fixed a bug in the recognizer list where in copying recognizers from one list to another the wrong extension was being appended to recognizer dll names and so they were failing to load.
+) Fixed a defect in the recognizer list where in copying recognizers from one list to another the wrong extension was being appended to recognizer dll names and so they were failing to load.
 Involved adding one line of code that parsed in the absent .RDL extension. (spotted by Bill)
 
 
@@ -1085,7 +1085,7 @@
 
 ) KApfTempPath now hidden in a static method Apfile::TempPath(), added in a BC manner.
 
-) Bug in TApaAppCapability::InternalizeL() that was causing the iIsHidden flag to always be set to false fixed (spotted by Bill).
+) Defect in TApaAppCapability::InternalizeL() that was causing the iIsHidden flag to always be set to false fixed (spotted by Bill).
 
 ) 2nd UID of KSharedLibraryUid [0x1000008d] added to apparc.dll, apgrfx.dll, apfile.dll and apserv.dll (SW-3947)
 
@@ -1346,7 +1346,7 @@
 
 ) Extra "name" builds added to all .mak files to make binary compatable releases easier (suggested by Geert)
 
-) Temporarily iconic doors now persist the correct glass door size even if the embedded doc is edited (bug spotted by MartinH SW-2195)
+) Temporarily iconic doors now persist the correct glass door size even if the embedded doc is edited (defect spotted by MartinH SW-2195)
 
 ) Base address of 0x43700000 set for apserv.dll (ommission spotted by MartinB)
 
@@ -1379,7 +1379,7 @@
 
 ) CApaCommandLine::New(HBufC*) added.
 
-) Untrapped leave bug fix to CApaTaskList
+) Untrapped leave defect fix to CApaTaskList
 
 From Ian:
 
@@ -1472,7 +1472,7 @@
 
 From Ian:
 
-2) Bug fix to CApaDoor::ExternalizeStateStream() - temporarily iconic doors now remember their glass size correctly after multiple Store()'s (spotted by DavidA)
+2) Defect fix to CApaDoor::ExternalizeStateStream() - temporarily iconic doors now remember their glass size correctly after multiple Store()'s (spotted by DavidA)
 
 
 
@@ -1499,13 +1499,13 @@
 
 From Ian:
 
-2) Bug fix to dodgy ASSERT in CApaDoor::DetachFromStore() (spotted by DavidA)
+2) Defect fix to dodgy ASSERT in CApaDoor::DetachFromStore() (spotted by DavidA)
 
 ) CApaDocument::EditL() now takes an extra parameter: TBool aReadOnly.
 If aReadOnly is true, the embedded doc should be opened in read-only mode - ie navigation of the document should be allowed, but it should not be possible to change the content.
 This parameter defaults to EFalse.
 
-) Agenda bugs SW-479 and SW-520 fixed - glass doors now correctly persist their size if they are temporarily made iconic
+) Agenda defects SW-479 and SW-520 fixed - glass doors now correctly persist their size if they are temporarily made iconic
 
 ) CApaDoor::SetFormatToTemporaryIcon() now takes a TBool parameter which allows it to be toggled on and off. The default parameter is ETrue
 If a door is in iconic mode, SetFormatToTemporaryIcon(ETrue) has no effect - it stays iconic.
@@ -1519,7 +1519,7 @@
 From Neil:
 
 ) TApaWindowGroupName becomes CApaWindowGroupName, using an HBufC to provide support for long filenames.  
-This will fix showstopper bug SW-1488
+This will fix showstopper defect SW-1488
 
 Consequent changes to this class are:
 
@@ -1642,7 +1642,7 @@
 
 1) Binary compatible with 045
 
-) Fixed access violation bug in CApaDoor::SetFormatToGlass() (spotted by MartinD)
+) Fixed access violation defect in CApaDoor::SetFormatToGlass() (spotted by MartinD)
 
 
 
@@ -1859,7 +1859,7 @@
 
 3) Interpreted app starter re-written (by Howard)
 
-4) Bug fix to command line to remove trailing space from full command line (by Neil)
+4) Defect fix to command line to remove trailing space from full command line (by Neil)
 
 Notes for Glass-door enabled apps and SDK:
 
@@ -1897,7 +1897,7 @@
 
 __FIRST_EXPORT
 
-) Bug fix in command line classes by Neil
+) Defect fix in command line classes by Neil
 
 
 
@@ -1949,13 +1949,13 @@
 
 ) MApaDocContainer renamed MApaEmbeddedDocObserver, and an extra exit mode "EEmpty" added. If an embedded document has no content it should return EEmpty when it exits, and the container can then choose not to insert it if it doesnt want to.
 
-) Bug in CApaDoor::RestoreDoc() fixed (spotted by DavidA)
+) Defect in CApaDoor::RestoreDoc() fixed (spotted by DavidA)
 
 From Bill:
 
 ) Rewrite of the file recogniser module, and new classes CApaAppList and CApaAppData that cache a list of all apps available on the system. No testcode for this stuff yet...
 
-) The interpreted app recogniser is now completely buggered and will have to be rewritten (Howard?)
+) The interpreted app recogniser is now completely perplexed and will have to be rewritten (Howard?)
 
 From Neil:
 
@@ -2156,7 +2156,7 @@
 
 Note that ReadRootStreamL() now takes an RFs& and WriteRootStreamL() has been overloaded with a version that takes a correctly constructed TApaAppIdentifier instead of a CApaApplication&
 
-) Access violation bug in ~CApaProcess() fixed (spotted by MartinB)
+) Access violation defect in ~CApaProcess() fixed (spotted by MartinB)
 
 ) The plan for passworded documents:
 
@@ -2444,7 +2444,7 @@
 
 Tools: E32Tools[046] ; E32Utils[003] ; GDITOOLS[026] ; GCCTOOLS[111]
 
-1) Binary compatible bug fix release for Agenda and Data
+1) Binary compatible defect fix release for Agenda and Data
 
 2) No new components taken
 
@@ -2530,7 +2530,7 @@
 
 ) Some CApaDoor methods that took a TSize as a parameter now take a const TSize& instead
 
-Bug Fixes:
+Defect Fixes:
 
 ) The correct UID for the icon file is now used in CApaApplication::OpenIconFileLC()
 
@@ -2553,7 +2553,7 @@
 
 Uses: E32Tools[045] ; E32[072] ; F32[038] ; Store[028] ; GDI[036] ; Fntstore[030] ; Fbserv[036] ; Bitgdi[039]
 
-1)  Fixed an infinite loop bug in CApaProcess::FindAppInListL() which
+1)  Fixed an infinite loop defect in CApaProcess::FindAppInListL() which
 meant that a second app couldn't be added to a process
 
 
@@ -2614,7 +2614,7 @@
 	iMainDocFileName = NULL;
 in between the delete and the AllocL()
 
-7)  Fixed a bug pointed out by MartinD and Jezar in that the
+7)  Fixed a defect pointed out by MartinD and Jezar in that the
 ReadRootStreamLC() function was always opening the file in read mode
 only, which is fine for Direct stores but not for Permanent
 ("re-writable") ones; note that some decision will need to be taken
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/ServiceRegistry.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// ServiceRegistry
+//
+
+/**
+@file
+
+@SYMPurpose ServiceRegistry.dll Service Registry
+*/
+
+
+target          serviceregistry.dll
+CAPABILITY All -Tcb
+targettype      DLL
+UID		0x1000008D 0x1020D703
+VENDORID 0x70000001
+
+option MSVC /Od
+
+userinclude		../inc
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+sourcepath	../ServiceRegistry
+
+source          ServiceRegistry.cpp
+library         euser.lib apgrfx.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/group/Smoketest_AppArchitecture.iby	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/group/Smoketest_AppArchitecture.iby	Tue Aug 03 10:20:34 2010 +0100
@@ -2,9 +2,9 @@
 #define SMOKETEST_APPARCHITECTURE_IBY
 
 file=ABI_DIR\DEBUG_DIR\apserv.dll	System\libs\apserv.dll
-file=ABI_DIR\DEBUG_DIR\TSTAPP_embedded.dll	System\libs\TSTAPP_embedded.dll
+file=ABI_DIR\DEBUG_DIR\tstapp_embedded.dll	System\libs\tstapp_embedded.dll
 file=ABI_DIR\DEBUG_DIR\tstapp.exe	System\libs\tstapp.exe
-file=ABI_DIR\DEBUG_DIR\TIconLoaderAndIconArrayForLeaks.dll	System\libs\TIconLoaderAndIconArrayForLeaks.dll
+file=ABI_DIR\DEBUG_DIR\ticonloaderandiconarrayforleaks.dll	System\libs\ticonloaderandiconarrayforleaks.dll
 
 data=EPOCROOT##epoc32\data\z\smoketest\smoketest_language.script 	      smoketest\smoketest_language.script
 data=EPOCROOT##epoc32\data\z\smoketest\setup_smoketest_language.script 	      smoketest\setup_smoketest_language.script
--- a/localisation/apparchitecture/group/app-framework_apparc.history.xml	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/group/app-framework_apparc.history.xml	Tue Aug 03 10:20:34 2010 +0100
@@ -1,19 +1,24 @@
 <?xml version="1.0"?>
 <relnotes schema="1.0.0" name="Application Architecture" purpose="" type="component">
-<revision major="1" functional="0" minor="5" date="20080820">
-    <ref name="125788" type="defect"/>
-    <description> RApaLsSession::CancelRecognizeFiles() complete the TRequestStatus that was passed to RApaLsSession::RecognizeFilesL(). </description>
+<revision major="2" functional="0" minor="6" date="20080829">
+  <ref name="126909" type="defect" /> 
+  <description>RApaLsSession::CancelRecognizeFiles() complete the TRequestStatus that was passed to RApaLsSession::RecognizeFilesL().</description> 
   </revision>
-  <revision major="1" functional="0" minor="4" date="20080528">
-    <ref name="122634" type="defect"/>
-    <description> If drive name is present in the filename then it scans through the \\sys\\bin of that particular drive,
-	otherwise it scans through the \\sys\\bin folders in all the avaliable drives.</description>
-  </revision>	   	
-  <revision major="1" functional="0" minor="3" date="20080305">
-    <ref name="119000" type="defect"/>
-    <description>Changed documetnation in How To Port Guide: Control Panel Plugins.doc correctly.
-Changed out of date documentation in apgctl.h and apgctl.cpp
-Removed incorrect check in CApaSystemControl::ConstructL()</description>
+  <revision major="2" functional="0" minor="5" date="20080603">
+  <ref name="122635" type="defect" /> 
+  <description>If drive name is present in the filename then it scans through the \\sys\\bin of that particular drive, otherwise it scans through the \\sys\\bin folders in all the avaliable drives.</description> 
+  </revision>	
+  <revision major="2" functional="0" minor="4" date="20080313">
+    <ref name="117753" type="defect"/>
+    <description>CApaAppUnInstallMonitor will check if installation is in progress as well. </description>
+  </revision>
+  <revision major="1" functional="0" minor="4" date="20080228">
+    <ref name="118240" type="defect"/>
+    <description>Changed documetnation in How To Port Guide: Control Panel Plugins.doc. Changed out of date documentation in apgctl.h and apgctl.cpp. Removed incorrect check in CApaSystemControl::ConstructL()</description>
+  </revision>
+  <revision major="1" functional="0" minor="3" date="20080219">
+    <ref name="117569" type="defect"/>
+    <description>Increased the delay timing in script file.</description>
   </revision>
   <revision major="1" functional="0" minor="2" date="20071226">
     <ref name="115489" type="defect"/>
--- a/localisation/apparchitecture/group/app-framework_apparc.mrp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/group/app-framework_apparc.mrp	Tue Aug 03 10:20:34 2010 +0100
@@ -5,10 +5,8 @@
 notes_source	\component_defs\release.src
 
 
-#  == IPR section auto-inserted from distribution.policy files  ==
 ipr D 
 ipr T \sf\mw\appsupport\appfw\apparchitecture\tdata
 ipr T \sf\mw\appsupport\appfw\apparchitecture\tdatasrc
 ipr T \sf\mw\appsupport\appfw\apparchitecture\tef
 
-# == end auto-inserted section ==
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/apparc.iby	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __APPARC_IBY__
+#define __APPARC_IBY__
+
+REM Application Architecture
+
+file=ABI_DIR\BUILD_DIR\apparc.dll			System\Libs\apparc.dll
+file=ABI_DIR\BUILD_DIR\apfile.dll			System\Libs\apfile.dll
+file=ABI_DIR\BUILD_DIR\aplist.dll			System\Libs\aplist.dll
+file=ABI_DIR\BUILD_DIR\apgrfx.dll			System\Libs\apgrfx.dll
+file=ABI_DIR\DEBUG_DIR\apserv.dll			System\Libs\apserv.dll
+file=ABI_DIR\BUILD_DIR\apsexe.exe			System\Programs\apsexe.exe
+file=ABI_DIR\BUILD_DIR\ServiceRegistry.dll	System\Libs\ServiceRegistry.dll
+
+
+
+#ifndef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+file=ABI_DIR\BUILD_DIR\apstart.dll			System\Libs\apstart.dll
+#endif // SYMBIAN_SYSTEM_STATE_MANAGEMENT
+
+//Backup and restore
+data=EPOCROOT##epoc32\data\z\private\10003a3f\backup_registration.xml   \private\10003a3f\backup_registration.xml
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/apparcTest.iby	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,362 @@
+/*
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __APPARCTEST_IBY__
+#define __APPARCTEST_IBY__
+
+REM Application Architecture Framework unit test iby file
+
+
+#ifndef __APPFWK_TEST_FRAMEWORK_IBY__
+	#include <appfwk_test_framework.iby>
+#endif
+
+
+file=ABI_DIR\BUILD_DIR\texe.exe				sys\bin\texe.exe
+
+file=ABI_DIR\BUILD_DIR\TCmdLineExe.exe  	sys\bin\TCmdLineExe.exe
+
+file=ABI_DIR\BUILD_DIR\m_ctrl.exe											sys\bin\m_ctrl.exe
+data=ZRESOURCE\apps\m_ctrl.rsc												Resource\Apps\m_ctrl.rsc
+data=ZRESOURCE\apps\m_ctrl_loc.rsc											Resource\Apps\m_ctrl_loc.rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\import\apps\m_ctrl_reg.rsc		private\10003a3f\import\apps\m_ctrl_reg.rsc
+
+file=ABI_DIR\BUILD_DIR\TestAppInstall.exe									sys\bin\TestAppInstall.exe
+data=EPOCROOT##epoc32\data\Z\Apparctest\TestAppInstall_reg.rsc				ApparcTest\TestAppInstall_reg.rsc
+file=ABI_DIR\BUILD_DIR\tstapp.exe											sys\bin\tstapp.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\import\apps\tstapp_reg.rsc		private\10003a3f\import\apps\tstapp_reg.rsc
+ECOM_PLUGIN(tstapp_embedded.dll,10004c66.rsc)
+data=ZRESOURCE\apps\testappinstall.rsc 										Resource\apps\testappinstall.rsc
+data=ZRESOURCE\apps\tstapp.rsc 										Resource\apps\tstapp.rsc
+data=ZRESOURCE\apps\tstapp_loc.r01 									Resource\apps\tstapp_loc.r01
+data=ZRESOURCE\apps\tstapp_loc.r02 									Resource\apps\tstapp_loc.r02
+data=ZRESOURCE\apps\tstapp_loc.r03 									Resource\apps\tstapp_loc.r03
+data=ZRESOURCE\apps\tstapp_loc.r04 									Resource\apps\tstapp_loc.r04
+data=ZRESOURCE\apps\tstapp_loc.r05 									Resource\apps\tstapp_loc.r05
+data=ZRESOURCE\apps\tstapp_loc.rsc 									Resource\apps\tstapp_loc.rsc
+data=ZRESOURCE\apps\tstapp.mbm 					Resource\apps\tstapp.mbm
+data=ZRESOURCE\apps\tstapp02.m02 					Resource\apps\tstapp02.m02
+data=ZRESOURCE\apps\tstappview01.m01 					Resource\apps\tstappview01.m01
+data=ZRESOURCE\apps\tstappview02.k 					Resource\apps\tstappview02.k
+data=ZRESOURCE\apps\tstappview01.m02 					Resource\apps\tstappview01.m02
+data=ZRESOURCE\apps\tstappview					Resource\apps\tstappview
+data=ZRESOURCE\apps\tstappviewneg.xyz 					Resource\apps\tstappviewneg.xyz
+data=ZRESOURCE\apps\tstappviewneg.mbm 					Resource\apps\tstappviewneg.mbm
+data=ZRESOURCE\apps\zerosizedicon.mbm 					Resource\apps\zerosizedicon.mbm
+
+file=ABI_DIR\BUILD_DIR\ticoncaptionoverride.exe						sys\bin\ticoncaptionoverride.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\import\apps\ticoncaptionoverride_reg.rsc		private\10003a3f\import\apps\ticoncaptionoverride_reg.rsc
+data=ZRESOURCE\apps\ticoncaptionoverride.rsc 						Resource\apps\ticoncaptionoverride.rsc
+data=ZRESOURCE\apps\ticoncaptionoverride_loc.r01 									Resource\apps\ticoncaptionoverride_loc.r01
+data=ZRESOURCE\apps\ticoncaptionoverride_loc.r02 									Resource\apps\ticoncaptionoverride_loc.r02
+data=ZRESOURCE\apps\ticoncaptionoverride_loc.r03 									Resource\apps\ticoncaptionoverride_loc.r03
+data=ZRESOURCE\apps\ticoncaptionoverride_loc.rsc   									Resource\apps\ticoncaptionoverride_loc.rsc
+data=ZRESOURCE\apps\ticoncapoverride.mbm 					Resource\apps\ticoncapoverride.mbm
+data=ZRESOURCE\apps\ticoncapoverride02.m02 					Resource\apps\ticoncapoverride02.m02
+
+
+data=ABI_DIR\BUILD_DIR\tstapp.doc				System\data\tstapp.doc
+data=ABI_DIR\BUILD_DIR\zero_len.txt				System\data\zero_len.txt	
+data=ABI_DIR\BUILD_DIR\one_byte.txt				System\data\one_byte.txt
+
+
+#ifdef SYMBIAN_DISTINCT_LOCALE_MODEL
+REM Copy new locale language dlls to ROM SFTB10.1 onwards
+file=ABI_DIR\BUILD_DIR\elocl_lan.002					Sys\bin\elocl_lan.002
+file=ABI_DIR\BUILD_DIR\elocl_lan.004					Sys\bin\elocl_lan.004
+file=ABI_DIR\BUILD_DIR\elocl_lan.005					Sys\bin\elocl_lan.005
+file=ABI_DIR\BUILD_DIR\elocl_lan.032					Sys\bin\elocl_lan.032
+#else
+// These are pre SYMBIAN_DISTINCT_LOCALE_MODEL language locale dlls.Not to be use SFTB10.1 onwards. 
+file=ABI_DIR\BUILD_DIR\ELOCL.01					Sys\bin\ELOCL.01
+file=ABI_DIR\BUILD_DIR\ELOCL.02					Sys\bin\ELOCL.02
+file=ABI_DIR\BUILD_DIR\ELOCL.03					Sys\bin\ELOCL.03
+file=ABI_DIR\BUILD_DIR\ELOCL.04					Sys\bin\ELOCL.04
+file=ABI_DIR\BUILD_DIR\ELOCL.05					Sys\bin\ELOCL.05
+file=ABI_DIR\BUILD_DIR\ELOCL.10					Sys\bin\ELOCL.10
+file=ABI_DIR\BUILD_DIR\ELOCL.32					Sys\bin\ELOCL.32
+#endif
+// This is now included in techview, from initlocale.iby
+//file=ABI_DIR\BUILD_DIR\ELOCL.LOC				Sys\bin\ELOCL.LOC
+
+file=ABI_DIR\BUILD_DIR\UnProctectedUidApp.exe 		Sys\bin\UnProctectedUidApp.exe
+data=EPOCROOTepoc32\data\z\Resource\apps\UnProctectedUidApp.rsc						Resource\apps\UnProctectedUidApp.rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\UnProctectedUidApp_reg.rsc		private\10003a3f\apps\UnProctectedUidApp_reg.rsc
+
+file=ABI_DIR\BUILD_DIR\SimpleApparcTestApp.exe 					sys\bin\SimpleApparcTestApp.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\SimpleApparcTestApp_reg.rsc	private\10003a3f\apps\SimpleApparcTestApp_reg.rsc
+data=ZRESOURCE\apps\SimpleApparcTestApp.rsc 									resource\apps\SimpleApparcTestApp.rsc
+
+data=EPOCROOT##epoc32\data\Z\Apparctest\AAA_reg.rsc											ApparcTest\AAA_reg.rsc
+data=EPOCROOT##epoc32\data\Z\Apparctest\Corrupted_reg.rsc									ApparcTest\Corrupted_reg.rsc
+data=EPOCROOT##epoc32\data\Z\Apparctest\zerosizedicon_loc.rsc								ApparcTest\zerosizedicon_loc.rsc
+data=EPOCROOT##epoc32\data\Z\Apparctest\zerosizedicon_reg.rsc								ApparcTest\zerosizedicon_reg.rsc
+data=EPOCROOT##epoc32\data\Z\System\data\App_ctrl.MBM 										resource\Apps\App_ctrl.MBM
+data=EPOCROOT##epoc32\data\z\system\data\svg_icon.svg 										resource\apps\svg_icon.svg
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\file1.txt									System\data\Testpath\file1.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\file2.txt									System\data\Testpath\file2.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\FilterTests\testfile1.txt					System\data\Testpath\FilterTests\testfile1.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\FilterTests\testfile2.txt					System\data\Testpath\FilterTests\testfile2.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\FilterTests\testfile3.txt					System\data\Testpath\FilterTests\testfile3.txt
+data=EPOCROOT##epoc32\data\z\system\data\Testpath\FilterTests\testfile4.txt					System\data\Testpath\FilterTests\testfile4.txt
+data=EPOCROOT##epoc32\data\z\system\data\FileWithUnknownMimeType.UnrecognisableExtention	System\data\FileWithUnknownMimeType.UnrecognisableExtention
+data=ABI_DIR\BUILD_DIR\z\system\data\recmime_1.rsc								System\data\recmime_1.rsc
+data=ABI_DIR\BUILD_DIR\z\system\data\recmime_armv5.dll							System\data\recmime_armv5.dll
+data=ABI_DIR\BUILD_DIR\z\system\data\TApsRecogAppTest.mmr							System\data\TApsRecogAppTest.mmr
+data=ABI_DIR\BUILD_DIR\z\system\data\recupgrade.rsc								System\data\recupgrade.rsc
+data=ABI_DIR\BUILD_DIR\z\system\data\recupgrade2.rsc							System\data\recupgrade2.rsc
+data=ABI_DIR\BUILD_DIR\z\system\data\recupgrade_armv5_rel.dll					System\data\recupgrade_armv5_rel.dll
+data=ABI_DIR\BUILD_DIR\z\system\data\recupgrade2_armv5_rel.dll					System\data\recupgrade2_armv5_rel.dll
+data=ABI_DIR\BUILD_DIR\z\system\data\TApsRecogUpgradeTest.upg					System\data\TApsRecogUpgradeTest.upg
+data=ABI_DIR\BUILD_DIR\z\system\data\TApsRecogUpgradeTest.upr					System\data\TApsRecogUpgradeTest.upr
+data=ABI_DIR\BUILD_DIR\z\system\data\testupdregappuninstallation_reg.rsc		System\data\testupdregappuninstallation_reg.rsc
+data=ABI_DIR\BUILD_DIR\z\system\data\testupgradeupdregappuninstallation_reg.rsc				System\data\testupgradeupdregappuninstallation_reg.rsc
+
+data=EPOCROOT##epoc32\data\Z\Apparctest\testforceregistrationapp1_reg.rsc			ApparcTest\testforceregistrationapp1_reg.rsc
+data=EPOCROOT##epoc32\data\Z\Apparctest\testforceregistrationapp1_loc.rsc			ApparcTest\testforceregistrationapp1_loc.rsc
+
+data=EPOCROOTepoc32\data\Z\private\10003a3f\import\apps\CustomiseDefaultIconApp_reg.RSC		private\10003a3f\import\apps\CustomiseDefaultIconApp_reg.RSC
+data=EPOCROOTepoc32\data\Z\resource\apps\CustomiseDefaultIconApp_loc.RSC					resource\apps\CustomiseDefaultIconApp_loc.RSC
+data=EPOCROOTepoc32\data\Z\resource\apps\default_app_icon.m02								resource\apps\default_app_icon.m02
+
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\TCtrlPnlApp_reg.RSC						private\10003a3f\apps\TCtrlPnlApp_reg.RSC
+
+data=EPOCROOTepoc32\data\Z\private\10202be9\1028583d.txt				         private\10202be9\1028583d.txt
+data=EPOCROOTepoc32\data\Z\private\10202be9\10003a3f.txt				         private\10202be9\10003a3f.txt
+
+
+// Change for Control panel Start
+file=ABI_DIR\BUILD_DIR\app_ctrl.exe											Sys\bin\app_ctrl.exe
+file=ABI_DIR\BUILD_DIR\app_ctrl2.exe										Sys\bin\app_ctrl2.exe
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\App_CTRL_reg.Rsc			private\10003a3f\apps\App_CTRL_reg.Rsc
+data=EPOCROOTepoc32\data\z\Resource\apps\App_CTRL_loc.Rsc					Resource\apps\App_CTRL_loc.Rsc
+data=EPOCROOTepoc32\data\z\Resource\apps\App_CTRL.Rsc						Resource\apps\App_CTRL.Rsc
+data=EPOCROOTepoc32\data\z\private\10003a3f\import\apps\App_CTRL2_reg.Rsc	private\10003a3f\import\apps\App_CTRL2_reg.Rsc
+data=EPOCROOTepoc32\data\z\Resource\apps\App_CTRL2.Rsc						Resource\apps\App_CTRL2.Rsc
+// Change for Control panel End
+
+file=ABI_DIR\BUILD_DIR\TAppNotEmbeddable.exe											sys\bin\TAppNotEmbeddable.exe		
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TAppNotEmbeddable_reg.Rsc				private\10003a3f\apps\TAppNotEmbeddable_reg.Rsc
+file=ABI_DIR\BUILD_DIR\TAppEmbeddable.exe												sys\bin\TAppEmbeddable.exe		
+ECOM_PLUGIN(TAppEmbeddable_embedded.DLL,10004c5b.rsc)
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TAppEmbeddable_reg.Rsc					private\10003a3f\apps\TAppEmbeddable_reg.Rsc
+ECOM_PLUGIN(TAppEmbeddableOnly.DLL,10004c5c.rsc)
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TAppEmbeddableOnly_reg.Rsc				private\10003a3f\apps\TAppEmbeddableOnly_reg.Rsc
+file=ABI_DIR\BUILD_DIR\TAppEmbeddableUiOrStandAlone.exe									sys\bin\TAppEmbeddableUiOrStandAlone.exe
+ECOM_PLUGIN(TAppEmbeddableUiOrStandAlone_embedded.DLL,10004c5d.rsc)
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TAppEmbeddableUiOrStandAlone_reg.Rsc	private\10003a3f\apps\TAppEmbeddableUiOrStandAlone_reg.Rsc
+ECOM_PLUGIN(TAppEmbeddableUiNotStandAlone.DLL,10004c5e.rsc)
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TAppEmbeddableUiNotStandAlone_reg.Rsc	private\10003a3f\apps\TAppEmbeddableUiNotStandAlone_reg.Rsc
+
+ECOM_PLUGIN(TLongUrlRecognizer.DLL,10004c4e.rsc)
+ECOM_PLUGIN(TBufferOnlyRec.DLL, 10207f88.rsc)
+
+file=ABI_DIR\BUILD_DIR\TStartDocApp.exe									sys\bin\TStartDocApp.exe
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TStartDocApp_reg.Rsc	private\10003a3f\apps\TStartDocApp_reg.Rsc
+
+file=ABI_DIR\BUILD_DIR\T_WinChainChild.exe									sys\bin\T_WinChainChild.exe
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\T_WinChainChild_reg.Rsc	private\10003a3f\apps\T_WinChainChild_reg.Rsc
+file=ABI_DIR\BUILD_DIR\T_WinChainLaunch.exe									sys\bin\T_WinChainLaunch.exe
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\T_WinChainLaunch_reg.Rsc	private\10003a3f\apps\T_WinChainLaunch_reg.Rsc
+
+data=ABI_DIR\BUILD_DIR\z\system\data\TRApaLsSessionStartAppTest.tst						System\data\TRApaLsSessionStartAppTest.tst
+file=ABI_DIR\BUILD_DIR\TRApaLsSessionStartAppTestApp.exe								sys\bin\TRApaLsSessionStartAppTestApp.exe
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TRApaLsSessionStartAppTestApp_reg.Rsc	private\10003a3f\apps\TRApaLsSessionStartAppTestApp_reg.Rsc
+ECOM_PLUGIN(TRApaLsSessionStartAppTestRecognizer.DLL,10000182.rsc)
+
+file=ABI_DIR\BUILD_DIR\TRuleBasedApp1.exe											sys\bin\TRuleBasedApp1.exe		
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TRuleBasedApp1_reg.Rsc				private\10003a3f\apps\TRuleBasedApp1_reg.Rsc
+data=ZRESOURCE\apps\TRuleBasedApp1.rsc 												resource\apps\TRuleBasedApp1.rsc
+file=ABI_DIR\BUILD_DIR\TRuleBasedApp2.exe											sys\bin\TRuleBasedApp2.exe		
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TRuleBasedApp2_reg.Rsc				private\10003a3f\apps\TRuleBasedApp2_reg.Rsc
+data=ZRESOURCE\apps\TRuleBasedApp2.rsc 												resource\apps\TRuleBasedApp2.rsc
+file=ABI_DIR\BUILD_DIR\TRuleBasedApp3.exe											sys\bin\TRuleBasedApp3.exe		
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TRuleBasedApp3_reg.Rsc				private\10003a3f\apps\TRuleBasedApp3_reg.Rsc
+data=ZRESOURCE\apps\TRuleBasedApp3.rsc 												resource\apps\TRuleBasedApp3.rsc
+file=ABI_DIR\BUILD_DIR\TRuleBasedApp4.exe											sys\bin\TRuleBasedApp4.exe		
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\TRuleBasedApp4_reg.Rsc				private\10003a3f\apps\TRuleBasedApp4_reg.Rsc
+data=ZRESOURCE\apps\TRuleBasedApp4.rsc 												resource\apps\TRuleBasedApp4.rsc
+
+file=ABI_DIR\BUILD_DIR\EndTaskTestApp.exe											sys\bin\EndTaskTestApp.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\EndTask_reg.rsc					private\10003a3f\apps\EndTask_reg.rsc
+data=ZRESOURCE\apps\EndTaskTestApp.rsc 												resource\apps\EndTaskTestApp.rsc
+
+ECOM_PLUGIN(TAppLaunchChecker.DLL,1020d465.rsc)
+ECOM_PLUGIN(TAppLaunchChecker2.DLL,102722ba.rsc)
+ECOM_PLUGIN(TNonNativeAppLaunchChecker.DLL,A0000B70.rsc)
+
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\serverapp_reg.Rsc		private\10003a3f\apps\serverapp_reg.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\serverapp2_reg.Rsc		private\10003a3f\apps\serverapp2_reg.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\serverapp3_reg.Rsc		private\10003a3f\apps\serverapp3_reg.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\serverapp4_reg.Rsc		private\10003a3f\apps\serverapp4_reg.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\serverapp6_reg.Rsc		private\10003a3f\apps\serverapp6_reg.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\serverapp7_reg.Rsc		private\10003a3f\apps\serverapp7_reg.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\openservice1a.Rsc		private\10003a3f\apps\openservice1a.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\openservice1b.Rsc		private\10003a3f\apps\openservice1b.Rsc
+data=EPOCROOTepoc32\data\Z\resource\apps\serverapp_loc.Rsc				resource\apps\serverapp_loc.Rsc
+
+file=ABI_DIR\BUILD_DIR\T_DataPrioritySystem1.exe	Sys\bin\T_DataPrioritySystem1.exe
+file=ABI_DIR\BUILD_DIR\T_DataPrioritySystem2.exe	Sys\bin\T_DataPrioritySystem2.exe
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\T_DataPrioritySystem1_reg.rsc	private\10003a3f\apps\T_DataPrioritySystem1_reg.rsc
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\T_DataPrioritySystem2_reg.rsc	private\10003a3f\apps\T_DataPrioritySystem2_reg.rsc
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\T_DataPrioritySystem3_reg.rsc 	private\10003a3f\apps\T_DataPrioritySystem3_reg.rsc
+data=EPOCROOTepoc32\data\z\Resource\apps\T_DataPrioritySystem1_loc.rsc	Resource\apps\T_DataPrioritySystem1_loc.rsc
+data=EPOCROOTepoc32\data\z\Resource\apps\T_DataPrioritySystem2_loc.rsc	Resource\apps\T_DataPrioritySystem2_loc.rsc
+
+file=ABI_DIR\BUILD_DIR\ParentProcess.exe				Sys\bin\ParentProcess.exe
+file=ABI_DIR\BUILD_DIR\ChildI.exe					Sys\bin\ChildI.exe
+file=ABI_DIR\BUILD_DIR\ChildII.exe					Sys\bin\ChildII.exe
+file=ABI_DIR\BUILD_DIR\ChildIII.exe					Sys\bin\ChildIII.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\ParentProcess_reg.Rsc	private\10003a3f\apps\ParentProcess_reg.RSC
+data=EPOCROOTepoc32\data\z\Resource\apps\ParentProcess.Rsc		Resource\apps\ParentProcess.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\ChildI_reg.RSC		private\10003a3f\apps\ChildI_reg.RSC
+data=EPOCROOTepoc32\data\z\Resource\apps\ChildI.Rsc			Resource\apps\ChildI.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\ChildII_reg.RSC	private\10003a3f\apps\ChildII_reg.RSC
+data=EPOCROOTepoc32\data\z\Resource\apps\ChildII.Rsc			Resource\apps\ChildII.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\ChildIII_reg.RSC	private\10003a3f\apps\ChildIII_reg.RSC
+data=EPOCROOTepoc32\data\z\Resource\apps\ChildIII.Rsc			Resource\apps\ChildIII.Rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\import\apps\TestUnTrustedPriorityApp1_reg.rsc		private\10003a3f\import\apps\TestUnTrustedPriorityApp1_reg.rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\import\apps\TestUnTrustedPriorityApp2_reg.rsc		private\10003a3f\import\apps\TestUnTrustedPriorityApp2_reg.rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\TestTrustedPriorityApp1_reg.rsc		private\10003a3f\apps\TestTrustedPriorityApp1_reg.rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\TestTrustedPriorityApp2_reg.rsc		private\10003a3f\apps\TestTrustedPriorityApp2_reg.rsc
+
+file=ABI_DIR\BUILD_DIR\T_EnvSlots.EXE 									sys\bin\T_EnvSlots.EXE
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\T_EnvSlots_reg.Rsc		private\10003a3f\apps\T_EnvSlots_reg.Rsc
+data=EPOCROOTepoc32\data\Z\resource\apps\T_EnvSlots_loc.Rsc				resource\apps\T_EnvSlots_loc.Rsc
+ECOM_PLUGIN(testrec.dll,102032A5.rsc)
+
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\T_groupname_reg.rsc	   	private\10003a3f\apps\T_groupname_reg.rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\T_groupnamever1_reg.rsc   	private\10003a3f\apps\T_groupnamever1_reg.rsc
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\T_groupnamever2_reg.rsc   	private\10003a3f\apps\T_groupnamever2_reg.rsc
+data=EPOCROOTepoc32\data\Z\resource\apps\T_groupname_loc.rsc		   		resource\apps\T_groupname_loc.rsc
+data=EPOCROOTepoc32\data\Z\resource\apps\T_groupnamever1_loc.rsc	   		resource\apps\T_groupnamever1_loc.rsc	
+data=EPOCROOTepoc32\data\Z\resource\apps\T_groupnamever2_loc.rsc	   		resource\apps\T_groupnamever2_loc.rsc
+
+file=ABI_DIR\BUILD_DIR\TApparcTestApp.exe										Sys\bin\TApparcTestApp.exe
+data=EPOCROOTepoc32\data\z\private\10003a3f\IMPORT\apps\TApparcTestApp_reg.Rsc 	private\10003a3f\IMPORT\apps\TApparcTestApp_reg.Rsc
+data=EPOCROOTepoc32\data\z\Resource\apps\TApparcTestApp.Rsc						Resource\apps\TApparcTestApp.Rsc
+data=EPOCROOTepoc32\data\z\resource\apps\tapparctestapp_loc.rsc					resource\apps\tapparctestapp_loc.Rsc
+
+file=ABI_DIR\BUILD_DIR\tssaac.exe                							sys\bin\tssaac.exe
+file=ABI_DIR\BUILD_DIR\tssaac_tapp.exe 										sys\bin\tssaac_tapp.exe
+data=EPOCROOTepoc32\data\Z\private\10003a3f\apps\tssaac_tapp_reg.rsc		private\10003a3f\apps\tssaac_tapp_reg.rsc
+data=ZRESOURCE\apps\tssaac_tapp.rsc 										resource\apps\tssaac_tapp.rsc
+data=ZRESOURCE\apps\tssaac_tapp_loc.rsc 									resource\apps\tssaac_tapp_loc.rsc
+
+file=ABI_DIR\BUILD_DIR\TNNAPP1.EXE										Sys\bin\TNNAPP1.EXE
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\tnnapp1_reg.rsc		private\10003a3f\apps\tnnapp1_reg.rsc
+file=ABI_DIR\BUILD_DIR\TNNAPP2.EXE										Sys\bin\TNNAPP2.EXE 
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\tnnapp2_reg.rsc		private\10003a3f\apps\tnnapp2_reg.rsc
+ECOM_PLUGIN(TNonNativeRec.DLL, 10207f95.rsc)
+data=EPOCROOTepoc32\data\Z\private\101F289C\gif.nna1	   				private\101F289C\gif.nna1
+data=EPOCROOTepoc32\data\Z\private\101F289C\html.nna2	   				private\101F289C\html.nna2
+data=EPOCROOTepoc32\data\Z\private\101F289C\contact.nna3	   			private\101F289C\contact.nna3
+data=EPOCROOTepoc32\data\Z\private\101F289C\txt.nna4	   				private\101F289C\txt.nna4
+
+file=ABI_DIR\BUILD_DIR\tlargestackapp.exe										Sys\bin\tlargestackapp.exe
+data=EPOCROOTepoc32\data\z\private\10003a3f\apps\tlargestackapp_reg.rsc 		private\10003a3f\apps\tlargestack_reg.RSC
+data=EPOCROOTepoc32\data\z\Resource\apps\tlargestackapp.rsc						Resource\apps\tlargestackapp.rsc
+data=EPOCROOTepoc32\data\z\system\data\tnotifydrivesapp_reg.rsc					system\data\tnotifydrivesapp_reg.rsc
+
+data=EPOCROOT##epoc32\data\z\system\data\fl_goo.dm					System\data\fl_goo.dm
+data=EPOCROOT##epoc32\data\z\system\data\jpeg_wes.dm				System\data\jpeg_wes.dm
+data=EPOCROOT##epoc32\data\z\system\data\gif_wallpaper.gif				System\data\gif_wallpaper.gif
+data=EPOCROOT##epoc32\data\z\system\data\propelli.jpg	 				System\data\propelli.jpg
+data=EPOCROOT##epoc32\data\z\system\data\type-r.jpg					System\data\type-r.jpg
+data=EPOCROOT##epoc32\data\z\system\data\sd_goo.dcf	 				System\data\sd_goo.dcf
+
+ECOM_PLUGIN(recmime.DLL, 102822B7.rsc)
+data=EPOCROOTepoc32\data\z\Resource\Plugins\recmime.RSC     			apparctest\dummy.rsc
+
+ECOM_PLUGIN(TestSidChecker.dll, testsidchecker.rsc)
+ECOM_PLUGIN(recupgrade.DLL, recupgrade.rsc)
+
+data=ABI_DIR\DEBUG_DIR\ApparcTestServer.exe							sys\bin\ApparcTestServer.exe
+data=ABI_DIR\DEBUG_DIR\TIconLoaderAndIconArrayForLeaks.dll			sys\bin\TIconLoaderAndIconArrayForLeaks.dll
+
+data=DATAZ_\apparctest\apparctest_run.bat                     		\apparctest_run.bat
+
+data=DATAZ_\apparctest\apparctest_t_ApsScan.script            		\apparctest\apparctest_t_ApsScan.script
+data=DATAZ_\apparctest\apparctest_t_AppList.script            		\apparctest\apparctest_t_AppList.script
+data=DATAZ_\apparctest\apparctest_t_AppListFileUpdate.script            \apparctest\apparctest_t_AppListFileUpdate.script
+data=DATAZ_\apparctest\apparctest_t_AutoMMCReaderOpen.script  		\apparctest\apparctest_t_AutoMMCReaderOpen.script
+data=DATAZ_\apparctest\apparctest_t_Backup.script             		\apparctest\apparctest_t_Backup.script
+data=DATAZ_\apparctest\apparctest_t_Capability1.script        		\apparctest\apparctest_t_Capability1.script
+data=DATAZ_\apparctest\apparctest_t_Capability2.script        		\apparctest\apparctest_t_Capability2.script
+data=DATAZ_\apparctest\apparctest_t_DataTypeMappingWithSid.script  \apparctest\apparctest_t_DataTypeMappingWithSid.script
+data=DATAZ_\apparctest\apparctest_t_Caption.script            		\apparctest\apparctest_t_Caption.script
+data=DATAZ_\apparctest\apparctest_t_Cmdln.script              		\apparctest\apparctest_t_Cmdln.script
+data=DATAZ_\apparctest\apparctest_t_ControlPanelTest.script   		\apparctest\apparctest_t_ControlPanelTest.script
+data=DATAZ_\apparctest\apparctest_T_DataMappingPersistenceA.script	\apparctest\apparctest_T_DataMappingPersistenceA.script
+data=DATAZ_\apparctest\apparctest_T_DataMappingPersistenceB.script	\apparctest\apparctest_T_DataMappingPersistenceB.script
+data=DATAZ_\apparctest\apparctest_T_DataMappingPersistenceC.script	\apparctest\apparctest_T_DataMappingPersistenceC.script
+data=DATAZ_\apparctest\apparctest_t_EndTask.script             		\apparctest\apparctest_t_EndTask.script
+data=DATAZ_\apparctest\apparctest_t_Exe.script                		\apparctest\apparctest_t_Exe.script
+data=DATAZ_\apparctest\apparctest_t_File2.script               		\apparctest\apparctest_t_File2.script
+data=DATAZ_\apparctest\apparctest_t_File3.script               		\apparctest\apparctest_t_File3.script
+data=DATAZ_\apparctest\apparctest_t_Foreground.script         		\apparctest\apparctest_t_Foreground.script
+data=DATAZ_\apparctest\apparctest_t_GroupName.script          		\apparctest\apparctest_t_GroupName.script
+data=DATAZ_\apparctest\apparctest_t_GroupName_ver1.script     		\apparctest\apparctest_t_GroupName_ver1.script
+data=DATAZ_\apparctest\apparctest_t_GroupName_ver2.script     		\apparctest\apparctest_t_GroupName_ver2.script
+data=DATAZ_\apparctest\apparctest_t_Locale.script             		\apparctest\apparctest_t_Locale.script
+data=DATAZ_\apparctest\apparctest_t_Mdr.script                		\apparctest\apparctest_t_Mdr.script
+data=DATAZ_\apparctest\apparctest_t_mimecontentpolicy.script                  \apparctest\apparctest_t_mimecontentpolicy.script
+data=DATAZ_\apparctest\apparctest_t_Mru.script                		\apparctest\apparctest_t_Mru.script
+data=DATAZ_\apparctest\apparctest_t_NonNativeApps.script            \apparctest\apparctest_t_NonNativeApps.script
+data=DATAZ_\apparctest\apparctest_t_Notif.script              		\apparctest\apparctest_t_Notif.script
+data=DATAZ_\apparctest\apparctest_t_OOM.script                		\apparctest\apparctest_t_OOM.script
+data=DATAZ_\apparctest\apparctest_t_Pro.script                		\apparctest\apparctest_t_Pro.script
+data=DATAZ_\apparctest\apparctest_t_Proc.script              		\apparctest\apparctest_t_Proc.script
+data=DATAZ_\apparctest\apparctest_t_RApaLsSession.script      		\apparctest\apparctest_t_RApaLsSession.script
+data=DATAZ_\apparctest\apparctest_t_RuleBasedLaunching.script 		\apparctest\apparctest_t_RuleBasedLaunching.script
+data=DATAZ_\apparctest\apparctest_t_Serv2.script              		\apparctest\apparctest_t_Serv2.script
+data=DATAZ_\apparctest\apparctest_t_Serv3.script              		\apparctest\apparctest_t_Serv3.script
+data=DATAZ_\apparctest\apparctest_t_ServiceRegistry.script    		\apparctest\apparctest_t_ServiceRegistry.script
+data=DATAZ_\apparctest\apparctest_t_Services.script           		\apparctest\apparctest_t_Services.script
+data=DATAZ_\apparctest\apparctest_t_StartApp.script           		\apparctest\apparctest_t_StartApp.script
+data=DATAZ_\apparctest\apparctest_t_StartDoc.script           		\apparctest\apparctest_t_StartDoc.script
+data=DATAZ_\apparctest\apparctest_t_WindowChaining.script     		\apparctest\apparctest_t_WindowChaining.script
+data=DATAZ_\apparctest\apparctest_t_Wgnam.script              		\apparctest\apparctest_t_Wgnam.script
+data=DATAZ_\apparctest\apparctest_t_IntegritySupport.script		\apparctest\apparctest_t_IntegritySupport.script
+data=DATAZ_\apparctest\apparctest_t_IntegritySupportReboot1.script	\apparctest\apparctest_t_IntegritySupportReboot1.script
+data=DATAZ_\apparctest\apparctest_t_IntegritySupportReboot2.script	\apparctest\apparctest_t_IntegritySupportReboot2.script
+data=DATAZ_\apparctest\apparctest_t_largestack.script				\apparctest\apparctest_t_largestack.script
+data=DATAZ_\apparctest\apparctest_t_drivenotification.script			\apparctest\apparctest_t_drivenotification.script
+data=DATAZ_\apparctest\apparctest_t_servicebase.script			\apparctest\apparctest_t_servicebase.script
+data=DATAZ_\apparctest\apparctest_t_RecUpgrade.script			\apparctest\apparctest_t_RecUpgrade.script
+
+REM SysStart Apparc Scripts
+data=DATAZ_\apparctest\apparctest_T_TestStartApp1L.script		\apparctest\apparctest_T_TestStartApp1L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp2L.script		\apparctest\apparctest_T_TestStartApp2L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp3L.script		\apparctest\apparctest_T_TestStartApp3L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp4L.script		\apparctest\apparctest_T_TestStartApp4L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp5L.script		\apparctest\apparctest_T_TestStartApp5L.script		
+data=DATAZ_\apparctest\apparctest_T_TestStartApp6L.script		\apparctest\apparctest_T_TestStartApp6L.script		
+data=DATAZ_\apparctest\apparctest_T_TestGetAllApps.script     		\apparctest\apparctest_T_TestGetAllApps.script     	
+data=DATAZ_\apparctest\apparctest_T_TestInsertDataTypeL.script		\apparctest\apparctest_T_TestInsertDataTypeL.script	
+data=DATAZ_\apparctest\apparctest_T_TestAppForDataTypeL.script		\apparctest\apparctest_T_TestAppForDataTypeL.script	
+data=DATAZ_\apparctest\apparctest_T_TestDeleteDataTypeL.script		\apparctest\apparctest_T_TestDeleteDataTypeL.script	
+data=DATAZ_\apparctest\apparctest_T_TestServiceDiscovery.script		\apparctest\apparctest_T_TestServiceDiscovery.script	
+data=DATAZ_\apparctest\apparctest_T_TestGetAppInfo.script     		\apparctest\apparctest_T_TestGetAppInfo.script     	
+data=DATAZ_\apparctest\apparctest_T_TestAppCount.script     		\apparctest\apparctest_T_TestAppCount.script     	
+data=DATAZ_\apparctest\apparctest_T_TestCreateDoc.script      		\apparctest\apparctest_T_TestCreateDoc.script      	
+data=DATAZ_\apparctest\apparctest_T_TestLocalisedCaptionL.script	\apparctest\apparctest_T_TestLocalisedCaptionL.script
+
+REM End of Application Architecture Framework unit test iby file
+
+patchdata apgrfx.dll @ KMinApplicationStackSize 0xf000
+patchdata apserv.dll @ KApaDrivesToMonitor 4
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/group/backup_registration.xml	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,34 @@
+<?xml version="1.0" standalone="yes"?>
+
+<!--
+ Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of "Eclipse Public License v1.0"
+ which accompanies this distribution, and is available
+ at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+
+ Description:
+
+-->
+
+
+
+<backup_registration version="1.0">
+
+    <passive_backup>
+
+        <include_file name = "dtstor.ini">
+
+        </include_file>
+
+    </passive_backup>
+
+    <restore requires_reboot = "yes"/>
+
+</backup_registration>
--- a/localisation/apparchitecture/inc/AIFTOOL.RH	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/AIFTOOL.RH	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -40,9 +40,9 @@
 
 
 
-///////////////////////////
+//
 // HEADER INFO
-///////////////////////////
+//
 
 STRUCT AIF_DATA
 	{
@@ -66,9 +66,9 @@
 	}
 
 
-///////////////////////////
+//
 // CAPTIONS
-///////////////////////////
+//
 
 #define KMaxCaption 256
 
@@ -183,9 +183,9 @@
 	LTEXT caption(KMaxCaption);
 	}
 
-///////////////////////////
+//
 // DATATYPE
-///////////////////////////
+//
 
 #define KMaxDataTypeLength 256
 
@@ -203,9 +203,9 @@
 	LTEXT8 type(KMaxDataTypeLength);
 	}
 
-///////////////////////////
+//
 // VIEW_DATA
-///////////////////////////
+//
 
 STRUCT VIEW_DATA
 	{
@@ -218,9 +218,9 @@
 	LEN WORD STRUCT caption_list[]; // CAPTION
 	}
 
-///////////////////////////
+//
 // FILE_OWNERSHIP_INFO
-///////////////////////////
+//
 
 #define KMaxFileNameLength 256
 
@@ -229,9 +229,9 @@
 	LTEXT file_name(KMaxFileNameLength);
 	}
 
-///////////////////////////
+//
 // MEMORY
-///////////////////////////
+//
 
 // not yet implemented
 
@@ -241,3 +241,4 @@
 	LONG maxheap;
 	LONG stack;
 	}
+
--- a/localisation/apparchitecture/inc/APACLN.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APACLN.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -12,17 +12,15 @@
 //
 // Description:
 //
+// apacln.h
+//
 
 
-#if !defined(__APACLN_H__)
+#ifndef __APACLN_H__
 #define __APACLN_H__
 
-#if !defined(__APPARC_H__)
 #include <apparc.h>
-#endif
 
-
-class TApaDocCleanupItem
 /** Allows CApaDocument-derived objects to be safely put onto the cleanup 
 stack, by calling CApaProcess::DestroyDocument() should a leave or a call 
 to CleanupStack::PopAndDestroy() occur.
@@ -37,6 +35,7 @@
 @publishedPartner
 @deprecated
 */
+class TApaDocCleanupItem
 	{
 public:
 	inline TApaDocCleanupItem(CApaProcess* aProcess,CApaDocument* aDoc);
@@ -51,19 +50,19 @@
 	};
 
 
-inline TApaDocCleanupItem::TApaDocCleanupItem(CApaProcess* aProcess,CApaDocument* aDoc)
-	: iApaProcess(aProcess), iApaDoc(aDoc)
 /** Constructs a cleanup item object for the specified document.
 
 @param aProcess A pointer to the process object that will be used to destroy the document.
 @param aDoc The document to destroy as part of cleanup. */
+inline TApaDocCleanupItem::TApaDocCleanupItem(CApaProcess* aProcess,CApaDocument* aDoc)
+	: iApaProcess(aProcess), iApaDoc(aDoc)
 	{}
 
-inline TApaDocCleanupItem::operator TCleanupItem()
 /** A TCleanupItem cast operator that enables the TApaDocCleanupItem object to be pushed to 
 the cleanup stack as a TCleanupItem, so that the document will be properly destroyed 
 (by a call to CApaProcess::DestroyDocument()) should a leave or a call to 
 CleanupStack::PopAndDestroy() occur. */
+inline TApaDocCleanupItem::operator TCleanupItem()
 	{return TCleanupItem(DoCleanup,this);}
 
-#endif
+#endif	// __APACLN_H__
--- a/localisation/apparchitecture/inc/APACMDLN.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APACMDLN.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,160 +11,111 @@
 // Contributors:
 //
 // Description:
+// apacmdln.h
 //
 
-#if !defined(__APACMDLN_H__)
+#ifndef __APACMDLN_H__
 #define __APACMDLN_H__
 
-#if !defined(__E32BASE_H__)
-#include <e32base.h>
-#endif
-
-#if !defined(__APADEF_H__)
-#include <apadef.h>
-#endif
-
-#if !defined(__F32FILE_H__)
+#include <e32base.h>	// class CBase
+#include <apadef.h>		// enum TApaCommand
 #include <f32file.h>
-#endif
-
-#if !defined(__S32STRM_H__)
 #include <s32strm.h>
-#endif
 
 
-class CApaCommandLine : public CBase
 /** Information for launching an application.
 
-This is often referred to as a command line and contains:
-
-the name of an application EXE to be launched,
+To start an application, passed a CApaCommandLine object to the RApaLsSession::StartApp() method.
 
-a document name,
-
+This class is often referred to as a command line and contains:
+the name of an application EXE to be launched, a document name,
 a command code that defines the way the application is launched
-
 trailing data; the structure of this depends on the application to be launched.
 
-The information is held in a buffer implemented by a heap descriptor. 
+To start an application, startup parameters are set on the CApaCommandLine object that is 
+then externalized into a stream and attached to a new RProcess object. These parameters 
+are then used to re-populate a new CApaCommandLine object inside the process by 
+EikStart::RunApplication() and used to bootstrap the launching application.
 
 @publishedAll
 @released */
+class CApaCommandLine : public CBase
 	{
 public:
-	// construction/destruction
+	// Creates an empty command line object
 	IMPORT_C static CApaCommandLine* NewL();
 	IMPORT_C static CApaCommandLine* NewLC();
+	// Specify how the application is to be started (see TApaCommand in apadef.h)
+	IMPORT_C void SetCommandL(TApaCommand aCommand);
+	IMPORT_C TApaCommand Command() const;
+	// Launch the application associated with the mime-type of the document file
+	IMPORT_C void SetDocumentNameL(const TDesC& aDocName);
+	IMPORT_C TPtrC DocumentName() const;
+	IMPORT_C void SetFileByHandleL(const RFile& aFile);
+	IMPORT_C void GetFileByHandleL(RFile& aFile) const;
+	// Launch the application explicitly named
+	IMPORT_C void SetExecutableNameL(const TDesC& aAppName);
+	IMPORT_C TPtrC ExecutableName() const;
+	// Additional application execution arguments (added to the tail if the command line)
+	IMPORT_C void SetTailEndL(const TDesC8& aTailEnd);
+	IMPORT_C TPtrC8 TailEnd() const;
+	// Set the process id of the application being the conceptual parent.
+	// The child process will be closed down automatically when the parent is.
+	IMPORT_C void SetParentProcessId(TProcessId aProcessId);
+	IMPORT_C TProcessId ParentProcessId() const;
+	// Starting the application on a specific screen
+	IMPORT_C void SetDefaultScreenL(TInt aDefaultScreenNumber);
+	IMPORT_C TInt DefaultScreen() const;
+	IMPORT_C TBool IsDefaultScreenSet() const;
+	// Managed order of applications' window groups.
+	// A child applicatoin's windows will always be kept in front of the parent's windows.
+	IMPORT_C void SetParentWindowGroupID(TInt aParentWindowGroupID);
+	IMPORT_C TInt ParentWindowGroupID() const;
+	// Process environment-slot for public use. These can be used for passing parameters 
+	// to the starting application. However, use of the EndTail should be prefered.
+	IMPORT_C static TInt NumberOfEnvironmentSlotsForPublicUse();
+	IMPORT_C static TInt EnvironmentSlotForPublicUse(TInt aIndex);
+public:	// Internal
 	IMPORT_C ~CApaCommandLine();
-
-	// Getting/setting the CApaCommandLine to/from process environment-slots
-	IMPORT_C void SetProcessEnvironmentL(RProcess& aProcess) const;
-	IMPORT_C static TInt GetCommandLineFromProcessEnvironment(CApaCommandLine*& aCommandLine);
-
+	// Set opaque data sent to the application being started
+	IMPORT_C void SetOpaqueDataL(const TDesC8& aOpaqueData);
+	IMPORT_C TPtrC8 OpaqueData() const;
 	// Getting/setting the CApaCommandLine to/from a server IPC-message
 	IMPORT_C void GetIpcArgsLC(TIpcArgs& aIpcArgs) const;
 	IMPORT_C void ConstructCmdLineFromMessageL(const RMessage2& aMessage);
-
-	// operations on the document name
-	IMPORT_C void SetDocumentNameL(const TDesC& aDocName);
-	IMPORT_C TPtrC DocumentName() const;
-
-	// operations on the executable name
-	IMPORT_C void SetExecutableNameL(const TDesC& aAppName);
-	IMPORT_C TPtrC ExecutableName() const;
-	
-	IMPORT_C void SetOpaqueDataL(const TDesC8& aOpaqueData);
-	IMPORT_C TPtrC8 OpaqueData() const;
-
-	// operations on the tail end
-	IMPORT_C void SetTailEndL(const TDesC8& aTailEnd);
-	IMPORT_C TPtrC8 TailEnd() const;
-
-	// operations on the command
-	IMPORT_C void SetCommandL(TApaCommand aCommand);
-	IMPORT_C TApaCommand Command() const;
-
-	// operations on the parent process id
-	IMPORT_C void SetParentProcessId(TProcessId aProcessId);
-	IMPORT_C TProcessId ParentProcessId() const;
-
-	// operations on the file passed by handle
-	IMPORT_C void SetFileByHandleL(const RFile& aFile);
-	IMPORT_C void GetFileByHandleL(RFile& aFile) const;
-public:
-
+	// Getting/setting the CApaCommandLine to/from process environment-slots
+	IMPORT_C void SetProcessEnvironmentL(RProcess& aProcess) const;
+	IMPORT_C static TInt GetCommandLineFromProcessEnvironment(CApaCommandLine*& aCommandLine);
+	// operations to support passing memory-allocation failure settings in to applications
+	IMPORT_C void SetDebugMemFailL(TInt aDebugMemFail);
+	IMPORT_C TInt DebugMemFail() const;
+	// operations to support the instrumentation (i.e. profiling) of application startup
+	IMPORT_C void SetAppStartupInstrumentationEventIdBaseL(TInt aEventIdBase);
+	IMPORT_C TInt AppStartupInstrumentationEventIdBase() const;
 	// operations on the server requirement/differentiator number - 0 means no server, non-zero sets the differentiator for the server name
 	IMPORT_C void SetServerNotRequiredL();
 	IMPORT_C void SetServerRequiredL(TUint aServerDifferentiator);
 	IMPORT_C TUint ServerRequired() const;
-
-	// operations to support starting an application with a specific screen number
-	IMPORT_C void SetDefaultScreenL(TInt aDefaultScreenNumber);
-	IMPORT_C TInt DefaultScreen() const;
-	IMPORT_C TBool IsDefaultScreenSet() const;
-
-	// Operations to support window chaining
-	IMPORT_C void SetParentWindowGroupID(TInt aParentWindowGroupID);
-	IMPORT_C TInt ParentWindowGroupID() const;
-
-	// operations to support passing memory-allocation failure settings in to applications
-	IMPORT_C void SetDebugMemFailL(TInt aDebugMemFail);
-	IMPORT_C TInt DebugMemFail() const;
-
-	// operations to support the instrumentation (i.e. profiling) of application startup
-	IMPORT_C void SetAppStartupInstrumentationEventIdBaseL(TInt aEventIdBase);
-	IMPORT_C TInt AppStartupInstrumentationEventIdBase() const;
-
-	IMPORT_C static TInt EnvironmentSlotForPublicUse(TInt aIndex);
-
-private:
-	struct SOption
-		{
-		const TDesC* iToken;
-		TInt* iResult;
-		TRadix iRadix;
-		HBufC8* iHBufC8Result;
-		};
-
 private:
 	CApaCommandLine();
-	void SetServerDifferentiatorL(TUint aServerDifferentiator);
 	void ExternalizeL(RWriteStream& aStream) const;
 	void InternalizeL(RReadStream& aStream);
 	HBufC8* StreamableAttributesLC() const;
-	void GetCommandLineFromProcessEnvironmentL();
-	TInt Parse(const TDesC& aCmdLine);
-	TPtrC StripQuotes(const TDesC& aDes) const;
-
-private:
-	enum
-		{
-		EEnvironmentSlotUnused=0,
-
-		EEnvironmentSlotMain=1,
-		EEnvironmentSlotFsSession=2,
-		EEnvironmentSlotFile=3,
-
-		EFirstEnvironmentSlotForPublicUse=8,
-		ENumberOfEnvironmentSlotsForPublicUse=4
-		};
-
-	enum
-		{
-		EIpcSlotMain=0,
-		EIpcSlotFsSession=1,
-		EIpcSlotFile=2
-		};
+	void DoGetCommandLineFromProcessEnvironmentL();
+	TInt DoGetParametersFromCommandLineString(const TDesC& aCmdLine);
+	static HBufC* NameOfExecutable(const TDesC& aCmdLine, TInt& aEndDocNameOffset);
+	static TPtrC StripQuotes(const TDesC& aDes);
+	void SetServerDifferentiatorL(TUint aServerDifferentiator);
 public:
-	enum
+	enum	// for internal use only
 		{
 		EIpcFirstFreeSlot=3
 		};
 private:
-	HBufC* iDocumentName;
-	HBufC* iExecutableName;
-	HBufC8* iOpaqueData;
-	HBufC8* iTailEnd;
+	RBuf iDocumentName;
+	RBuf iExecutableName;
+	RBuf8 iOpaqueData;
+	RBuf8 iTailEnd;
 	TApaCommand iCommand;
 	TUint iServerDifferentiator;
 	TInt iDefaultScreenNumber;
@@ -175,4 +126,4 @@
 	TProcessId iParentProcessId;
 	};
 
-#endif
+#endif // __APACMDLN_H__
--- a/localisation/apparchitecture/inc/APADBASE.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APADBASE.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,24 +11,18 @@
 // Contributors:
 //
 // Description:
+// apadbase.h
 //
 
 #ifndef __APADBASE_H__
 #define __APADBASE_H__
 
-#if !defined(__E32STD_H__)
 #include <e32std.h>
-#endif
-#if !defined(__S32STD_H__)
 #include <s32std.h>
-#endif
-#if !defined(__GDI_H__)
 #include <gdi.h>
-#endif
-
 
-class CApaDoorBase : public CPicture
 // Base class for a wrapper for embedded CApaDocuments
+
 /** The base class for the graphic representation of an embedded document.
 
 An embedded document can be represented either as an icon or as a glass picture. 
@@ -40,9 +34,9 @@
 @released
 @see CApaDoor
 @see CApaModelDoor */
+class CApaDoorBase : public CPicture
 	{
 public:
-	
 	/** Defines the possible formats for the graphical representation of the embedded 
 	document. */
 	enum TFormat {
@@ -54,29 +48,27 @@
 		ETemporarilyIconic
 		};
 public:
-	inline TFormat Format()const;
-	inline TUid Source()const;
+	inline TFormat Format() const;
+	inline TUid Source() const;
 	inline void SetSource(TUid aSource);
-	// Virtuals from CPicture
-	IMPORT_C virtual TStreamId StoreL(CStreamStore& aStore) const;
-	IMPORT_C virtual void SetScaleFactor(TInt aScaleFactorWidth,TInt aScaleFactorHeight); 
-	IMPORT_C virtual void SetCropInTwips(const TMargins& aMargins); 
-	IMPORT_C virtual TPictureCapability Capability() const;
-	IMPORT_C virtual void GetCropInTwips(TMargins& aMargins) const; 
-	IMPORT_C virtual TInt ScaleFactorWidth() const; 
-	IMPORT_C virtual TInt ScaleFactorHeight() const; 
-	IMPORT_C virtual TBool LineBreakPossible(TUint aClass,TBool aBeforePicture,TBool aHaveSpaces) const;
-	IMPORT_C virtual TBool NativePixelSize(TSize& aPixelSize);
+public:	// from CPicture
+	IMPORT_C TStreamId StoreL(CStreamStore& aStore) const;
+	IMPORT_C void SetScaleFactor(TInt aScaleFactorWidth, TInt aScaleFactorHeight); 
+	IMPORT_C void SetCropInTwips(const TMargins& aMargins); 
+	IMPORT_C TPictureCapability Capability() const;
+	IMPORT_C void GetCropInTwips(TMargins& aMargins) const; 
+	IMPORT_C TInt ScaleFactorWidth() const; 
+	IMPORT_C TInt ScaleFactorHeight() const; 
+	IMPORT_C TBool LineBreakPossible(TUint aClass, TBool aBeforePicture, TBool aHaveSpaces) const;
+	IMPORT_C TBool NativePixelSize(TSize& aPixelSize);
 protected:
 	IMPORT_C CApaDoorBase();
 	IMPORT_C void ExternalizeBaseStreamL(CStreamStore& aStore,CStreamDictionary& aStreamDict)const;
 	IMPORT_C TSize InternalizeBaseStreamL(const CStreamStore& aStore,const CStreamDictionary& aStreamDict); // returns current size in twips
-
 private:
 	IMPORT_C virtual void CApaDoorBase_Reserved1();
 	IMPORT_C virtual void CApaDoorBase_Reserved2();
 protected:
-
 	/** Returns the size of the glass door, in twips.
 	
 	A concrete implementation of this function is provided by derived classes.
@@ -85,43 +77,44 @@
 	
 	@publishedAll 
 	@released */
-	virtual TSize GlassDoorSize()const=0;
+	virtual TSize GlassDoorSize() const = 0;
 protected:
 	TFormat iFormat;
 	TUid iSource; // foreign representation of a translated door (eg MS Word doc)
-
 private:
-	TInt iCApaDoorBase_Reserved1;
+	TInt iCApaDoorBase_Spare1;
 	};
 
 //
 // inlines
 //
 
+/** Gets the current format of the representation of the embedded document.
+
+@return The format for the representation of the embedded document. */
 inline CApaDoorBase::TFormat CApaDoorBase::Format()const
-	/** Gets the current format of the representation of the embedded document.
-	
-	@return The format for the representation of the embedded document. */
 	{ return iFormat; }
 
+/** Gets the UID that identifies this door when the source originates on a non-Symbian 
+OS device.
+
+This is used by converters.
+
+@return The UID for the non-Symbian OS source. For a source that originates 
+on a Symbian OS phone, this is KNullUid. */
 inline TUid CApaDoorBase::Source()const
-	/** Gets the UID that identifies this door when the source originates on a non-Symbian 
-	OS device.
-	
-	This is used by converters.
-	
-	@return The UID for the non-Symbian OS source. For a source that originates 
-	on a Symbian OS phone, this is KNullUid. */
 	{ return iSource; }
 
+/** Sets the UID that identifies this door when the source originates on a non-Symbian 
+OS device.
+
+This is used by converters.
+
+@param aSource The UID for the non-Symbian OS source. For a source that originates 
+on a Symbian OS phone, this is KNullUid. */
 inline void CApaDoorBase::SetSource(TUid aSource)
-	/** Sets the UID that identifies this door when the source originates on a non-Symbian 
-	OS device.
-	
-	This is used by converters.
-	
-	@param aSource The UID for the non-Symbian OS source. For a source that originates 
-	on a Symbian OS phone, this is KNullUid. */
 	{ iSource=aSource; }
 
-#endif
+#endif	// __APADBASE_H__
+
+
--- a/localisation/apparchitecture/inc/APADEF.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APADEF.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,51 +11,13 @@
 // Contributors:
 //
 // Description:
+// apadef.h
 //
 
 #ifndef __APADEF_H__
 #define __APADEF_H__
 
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-
-// comand line tokens
-
-/**
-@internalComponent
-*/
-const TUint KApaCommandLetterOpen='O';
-
-/**
-@internalComponent
-*/
-const TUint KApaCommandLetterCreate='C';
-
-/**
-@internalComponent
-*/
-const TUint KApaCommandLetterRun='R';
-
-/**
-@internalComponent
-*/
-const TUint KApaCommandLetterBackground='B';
-
-/**
-@internalComponent
-*/
-const TUint KApaCommandLetterViewActivate='V';
-
-/**
-@internalComponent
-*/
-const TUint KApaCommandLetterRunWithoutViews='W';
-
-/**
-@internalComponent
-*/
-const TUint KApaCommandLetterBackgroundAndWithoutViews='A';
 
 /** Defines the command codes used to indicate the way an application is to be 
 launched.
@@ -98,6 +60,7 @@
 @released */
 typedef TBuf<KApaMaxAppCaption> TApaAppCaption; 
 
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 /**
 @internalComponent
 */
@@ -108,15 +71,7 @@
 */
 typedef TBuf<KApaMaxCommandLine> TApaCommandLine;
 
-/**
-@internalComponent
-*/
-const TInt KApaMaxAppFileName=0x10;	// Length of App's filename without path or extension (not it's caption)
-
-/**
-@internalComponent
-*/
-typedef TBuf<KApaMaxAppFileName> TApaAppFileName;
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
 /** Maximum length of an application group name.
 
@@ -134,20 +89,6 @@
 @released */
 typedef TBuf<KApaMaxAppGroupName> TApaAppGroupName;
 
-/** The hexadecimal value of the 2nd UID that identifies a DLL as being an ASCII UI 
-application. In .mmp files, the hexadecimal number is explicitly inserted 
-as the first value following the UID keyword. 
-
-@publishedAll 
-@deprecated */
-const TInt KAppUidValue8 = 0x1000006c;
-
-/** The 2nd UID that identifies a DLL as being an ASCII UI application. 
-
-@publishedAll 
-@deprecated */
-const TUid KUidApp8={KAppUidValue8};
-
 /** The hexadecimal value of the 2nd UID that defines a DLL as being a Unicode 
 UI application. In .mmp files, the hexadecimal number is explicitly inserted 
 as the first value following the UID keyword.
@@ -168,25 +109,11 @@
 // 2nd Uid for app doc files
 /**
 @publishedAll 
-@deprecated
-*/
-const TUid KUidAppDllDoc8={268435565}; 
-
-/**
-@publishedAll 
 @released
 */
 const TUid KUidAppDllDoc16={0x10003A12};
 
 /** The UID encoded in a TPictureHeader that identifies a picture as a door (for 
-ASCII builds). 
-
-@publishedAll 
-@deprecated
-*/
-const TUid KUidPictureTypeDoor8={268435537};
-
-/** The UID encoded in a TPictureHeader that identifies a picture as a door (for 
 Unicode builds).
 
 @publishedAll 
@@ -196,11 +123,6 @@
 
 //
 // Uid's for streams in stream dictionaries
-/**
-@publishedAll 
-@deprecated
-*/
-const TUid KUidSecurityStream8={268435661};
 
 /**
 @publishedAll 
@@ -210,82 +132,54 @@
 
 /**
 @publishedAll 
-@deprecated
+@released
 */
-const TUid KUidAppIdentifierStream8={268435593}; // stream containing a TApaAppIdentifier
+const TUid KUidAppIdentifierStream16={0x10003A34};
+
+/** The type-independent 2nd UID that identifies a DLL as being a UI application.
+
+@publishedAll 
+@released
+@see KUidApp16 */
+#define KUidApp KUidApp16
+
+/** The type-independent hexadecimal value of the 2nd UID that identifies a DLL as 
+being a UI application.
+
+@publishedAll 
+@released
+@see KAppUidValue16 */
+#define KAppUidValue KAppUidValue16 //lint !e1923 supress could become const variable
 
 /**
 @publishedAll 
 @released
 */
-const TUid KUidAppIdentifierStream16={0x10003A34};
-
-#ifdef _UNICODE
-/** The type-independent 2nd UID that identifies a DLL as being a UI application.
+#define KUidAppDllDoc KUidAppDllDoc16
 
-@publishedAll 
-@released
-@see KUidApp16
-@see KUidApp8 */
-#define KUidApp KUidApp16
-/** The type-independent hexadecimal value of the 2nd UID that identifies a DLL as 
-being a UI application.
-
-@publishedAll 
-@released
-@see KAppUidValue16
-@see KAppUidValue8 */
-#define KAppUidValue KAppUidValue16 //lint !e1923 supress could become const variable
-/**
-@publishedAll 
-@released
-*/
-#define KUidAppDllDoc KUidAppDllDoc16
 /** The type independent UID encoded in a TPictureHeader that identifies a picture 
 as a door.
 
 @publishedAll 
 @released
 @see KUidPictureTypeDoor16
-@see KUidPictureTypeDoor8
 @see TPictureHeader
 @see TApaModelDoorFactory::NewPictureL() */
 #define KUidPictureTypeDoor KUidPictureTypeDoor16
+
 /**
 @publishedAll 
 @released
 */
 #define KUidAppIdentifierStream KUidAppIdentifierStream16
+
 /**
 @publishedAll 
 @released
 */
 #define KUidSecurityStream KUidSecurityStream16
-#else
-/** The type independent 2nd UID that defines a DLL as being a UI application.
 
-@see KUidApp16
-@see KUidApp8 */
-#define KUidApp KUidApp8
-/** The type independent hexadecimal value of the 2nd UID that defines a DLL as 
-being a UI application.
-
-@see KAppUidValue16
-@see KAppUidValue8 */
-#define KAppUidValue KAppUidValue8
-#define KUidAppDllDoc KUidAppDllDoc8
-/** The type independent UID encoded in a TPictureHeader that identifies a picture 
-as a door.
-
-@see KUidPictureTypeDoor16
-@see KUidPictureTypeDoor8
-@see TPictureHeader
-@see TApaModelDoorFactory::NewPictureL() */
-#define KUidPictureTypeDoor KUidPictureTypeDoor8
-#define KUidAppIdentifierStream KUidAppIdentifierStream8
-#define KUidSecurityStream KUidSecurityStream8
-#endif
 
 const TUid KUidFileEmbeddedApplicationInterfaceUid={0x101f8c96};
 
-#endif
+#endif	// __APADEF_H__
--- a/localisation/apparchitecture/inc/APAFLREC.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APAFLREC.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,103 +11,19 @@
 // Contributors:
 //
 // Description:
+// apaflrec.h
 //
 
-#if !defined(__APAFLREC_H__)
+#ifndef __APAFLREC_H__
 #define __APAFLREC_H__
 
-#if !defined(__APADEF_H__)
 #include <apadef.h>
-#endif
-#if !defined(__APAID_H__)
 #include <apaid.h>
-#endif
 
-// classes defined:
-class MApaAppStarter;
-class CApaAppLocator;
-class CApaFileRecognizer;
-class CApaFileRecognizerType;
-class CFileRecognizerExtension;
-//
-// classes referenced:
 class TApaAppEntry;
 class CApaCommandLine;
 class RFs;
-//
 
-// KUidFileRecognizer is UID[1] for app recognizer dll's (UID[2] identifies a particular identifier)
-/**
-@publishedAll
-@released
-*/
-#ifdef _UNICODE
-#define KUidFileRecognizer KUidFileRecognizer16
-#else
-#define KUidFileRecognizer KUidFileRecognizer8
-#endif
-
-/**
-@publishedAll 
-@deprecated
-*/
-const TInt KFileRecognizerUidValue8=0x1000013E;
-
-/**
-@publishedAll 
-@deprecated
-*/
-const TUid KUidFileRecognizer8={KFileRecognizerUidValue8};
-
-/**
-@publishedAll
-@released
-*/
-const TUid KUidFileRecognizer16={0x10003A37};
-//
-
-
-class CApaAppLocator : public CBase
-/**
-@internalComponent
-*/
-	{
-public:
-	virtual TInt GetAppEntryByUid(TApaAppEntry& aAppEntry,TUid aAppUid)=0;
-	virtual TInt GetAppCapabilityByUid(TDes8& aCapabilityBuf,TUid aAppUid)=0;
-	};
-
-
-
-class CApaFileRecognizer : public CBase
-/**
-@internalComponent
-@deprecated
-*/
-	{
-public:
-	//
-	IMPORT_C CApaFileRecognizerType* RecognizeFileL(const TDesC& aFullFileName,const TUidType* aUidType=NULL);
-	IMPORT_C CApaAppLocator* AppLocator() const;
-	//
-	IMPORT_C ~CApaFileRecognizer();
-protected:
-	IMPORT_C CApaFileRecognizer(RFs& aFs);
-	IMPORT_C void AddFileRecognizerType(CApaFileRecognizerType* aFileRecognizerType);
-	IMPORT_C TInt RemoveFileRecognizerType(const CApaFileRecognizerType* aFileRecognizerType);
-	IMPORT_C void SetAppLocator(CApaAppLocator* aAppLocator); // should be called by child-classes eg during construction
-	static inline void SetAppStarter(CApaFileRecognizerType* aRecognizer,MApaAppStarter* aAppStarter);
-	IMPORT_C void DestroyRecognizerList();
-protected:
-	RFs& iFs;
-	CApaAppLocator* iAppLocator;
-private:
-	CApaFileRecognizerType *iFileRecognizerList;
-	};
-
-
-
-class MApaAppStarter
 /** An interface used by the Application Architecture server to start applications.
 
 CEikonEnv is derived from this class.
@@ -115,6 +31,7 @@
 @publishedPartner
 @released
 @see CEikonEnv */
+class MApaAppStarter
 	{
 public:
 	virtual TThreadId StartAppL(const CApaCommandLine& aCommandLine)=0;
@@ -127,82 +44,4 @@
 	TInt iMApaAppStarter_Reserved1;
 	};
 
-
-
-class CApaFileRecognizerType : public CBase
-/**
-@publishedPartner
-@deprecated
-*/
-	{
-public:
-	enum TRecognizedType {EProgram,EDoc,EOtherFile,ENotRecognized};
-public:
-	virtual TThreadId RunL(TApaCommand aCommand,const TDesC* aDocFileName,const TDesC8* aTailEnd) const=0;
-	inline TThreadId RunL(TApaCommand aCommand, const TDesC* aDocFileName) const;
-	inline TThreadId RunL(TApaCommand aCommand) const;
-	inline TUid AppUid()const;
-	inline TUid TypeUid()const;
-	inline TRecognizedType Type()const;
-	IMPORT_C void Capability(TDes8& aCapabilityBuf)const;
-	IMPORT_C void Lock();
-	IMPORT_C void Unlock();
-protected:
-	IMPORT_C CApaFileRecognizerType();
-	IMPORT_C ~CApaFileRecognizerType();
-	IMPORT_C TThreadId AppRunL(const CApaCommandLine& aCommandLine) const;
-private:
-	inline void SetAppStarter(MApaAppStarter* aAppStarter); // must be called before AppRunL()
-	virtual TRecognizedType DoRecognizeFileL(RFs& aFs,TUidType aUidType)=0;
-	TRecognizedType RecognizeFileL(RFs& aFs,const TDesC& aFullFileName,TUidType aUidType);
-	TBool Locked()const;
-	IMPORT_C virtual void Reserved_1();
-public:
-	IMPORT_C static CApaFileRecognizerType* CreateFileRecognizerL(TUid aImplUid);
-protected:
-	CApaFileRecognizer* iFileRecognizer;
-	MApaAppStarter* iAppStarter;
-	HBufC* iFullFileName;
-	TUid iFileType; // type UID of the recognizer file (ie UID[1])
-	TUid iAppUid; // UID of the associated app (ie UID[2])
-	TRecognizedType iRecognizedType;
-	TApaAppCapabilityBuf* iCapabilityBuf;
-private:
-	CApaFileRecognizerType* iNext;
-	TInt iLock;
-	CFileRecognizerExtension* iFileRecognizerExtn;
-private:
-	friend class CApaFileRecognizer;
-	};
-
-
-//
-// inlines
-//
-
-inline void CApaFileRecognizer::SetAppStarter(CApaFileRecognizerType* aRecognizer,MApaAppStarter* aAppStarter)
-	{ aRecognizer->SetAppStarter(aAppStarter); }
-
-inline void CApaFileRecognizerType::SetAppStarter(MApaAppStarter* aAppStarter)
-	{ iAppStarter = aAppStarter; }
-
-inline TUid CApaFileRecognizerType::AppUid() const
-	{ return iAppUid; }
-
-inline TUid CApaFileRecognizerType::TypeUid() const
-	{ return iFileType; }
-
-inline CApaFileRecognizerType::TRecognizedType CApaFileRecognizerType::Type()const
-	{ return iRecognizedType; }
-
-inline TThreadId CApaFileRecognizerType::RunL(TApaCommand aCommand, const TDesC* aDocFileName) const
-	/** Calls RunL(TApaCommand,const TDesC*,const TDesC8*) with NULL as third parameter.
-	@see CApaFileRecognizerType::RunL(TApaCommand,const TDesC*,const TDesC8*) */
-	{ return RunL(aCommand, aDocFileName, NULL); }
-
-inline TThreadId CApaFileRecognizerType::RunL(TApaCommand aCommand) const
-	/** Calls RunL(TApaCommand,const TDesC*,const TDesC8*) with NULL as second and third parameter.
-	@see CApaFileRecognizerType::RunL(TApaCommand,const TDesC*,const TDesC8*) */
-	{ return RunL(aCommand, NULL, NULL); }	
-
-#endif
+#endif	// __APAFLREC_H__
--- a/localisation/apparchitecture/inc/APAID.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APAID.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,34 +11,21 @@
 // Contributors:
 //
 // Description:
+// apaid.h
 //
 
 #ifndef __APAID_H__
 #define __APAID_H__
 
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-#if !defined(__APADEF_H__)
 #include <apadef.h>
-#endif
+#include <apmstd.h>		// class TDataTypeWithPriority
 
-#include "apmstd.h"
-
-
-// classes defined:
-class TApaAppIdentifier;
-class TApaAppEntry;
-class CApaAppFinder;
-//
-// classes referenced:
+// classes referenced
 class RReadStream;
 class RWriteStream;
 class RFs;
-//
 
-
-class TApaAppIdentifier
 /** The identity of an application.
 
 An object of this type contains two pieces of information:
@@ -56,52 +43,23 @@
 @see CApaProcess::WriteRootStreamL()
 @see CApaProcess::ReadAppIdentifierL()
 @see CApaProcess::WriteAppIdentifierL() */
+class TApaAppIdentifier
 	{
 public:
 	IMPORT_C TApaAppIdentifier();
 	IMPORT_C TApaAppIdentifier(TUid aAppUidType,const TFileName& aDllName);
 	IMPORT_C void ExternalizeL(RWriteStream& aStream)const;
 	IMPORT_C void InternalizeL(RReadStream& aStream);
-	
 public:
 	/** The application-specific UID. */
 	TUid iAppUid;
 	/** The full path name of the application DLL. */
 	TFileName iFullName;
-
 private:
 	TInt iTApaAppIdentifier_Reserved1;
 	};
 
 
-class TApaAppEntry
-/** An application entry.
-
-An object of this type contains two pieces of information:
-
-the full path name of the application DLL
-
-the UID type (or compound identifier) of the application DLL. 
-
-@publishedAll 
-@released */
-	{
-public:
-	IMPORT_C TApaAppEntry();
-	IMPORT_C TApaAppEntry(const TUidType& aAppUidType,const TFileName& aDllName);
-	IMPORT_C void ExternalizeL(RWriteStream& aStream)const;
-	IMPORT_C void InternalizeL(RReadStream& aStream);
-public:
-	/** The UID type (or compound identifier) of the application DLL. */
-	TUidType iUidType;
-	/** The full path name of the application DLL. */
-	TFileName iFullName;
-private:
-	TInt iTApaAppEntry_Reserved1;
-	};
-
-
-class TApaAppInfo
 /** Application information.
 
 An object of this type contains four pieces of information:
@@ -116,6 +74,7 @@
 
 @publishedAll
 @released */
+class TApaAppInfo
 	{
 public:
 	IMPORT_C TApaAppInfo();
@@ -132,13 +91,11 @@
 	TApaAppCaption iCaption;
 	/** The short caption for the application. */
 	TApaAppCaption iShortCaption;
-
 private:
 	TInt iTApaAppInfo_Reserved1;
 	};
 
 
-class TApaAppViewInfo
 /** Contains the basic information about an application view.
 
 An object of this type contains two pieces of information:
@@ -153,6 +110,7 @@
 @released
 @see CApaAppViewArray
 @see TUid */
+class TApaAppViewInfo
 	{
 public:
 	IMPORT_C TApaAppViewInfo();
@@ -181,21 +139,17 @@
 typedef CArrayFixFlat<TApaAppViewInfo> CApaAppViewArray;
 
 
-class TApaAppCapability
-// expandable class - add new members to the end, add them to the end of int/ext also, and increment the version no.
-// default value for all data members must be 0
 /** Application capabilities. 
 
 @publishedAll
 @released */
+class TApaAppCapability
 	{
 public:
 	IMPORT_C static void CopyCapability(TDes8& aDest,const TDesC8& aSource);
 	IMPORT_C void InternalizeL(RReadStream& aStream);
-	IMPORT_C void Internalize7_0L(RReadStream& aStream);	// deprecated
 	IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
 private:
-	IMPORT_C void Externalize7_0L(RWriteStream& aStream) const;	// deprecated
 	void DoInternalizeL(RReadStream& aStream, TBool& aLaunchInBackground, TApaAppGroupName& aGroupName);
 public:
 	//
@@ -214,7 +168,9 @@
 	/** Defines an application's attributes as a set of bit flags. */
 	enum TCapabilityAttribute
 		{
-		/** If set, the application was built as a DLL, otherwise it was built as an EXE. */
+		/** This functionality is deprecated from v9.5 onwards.
+		@deprecated
+		*/
 		EBuiltAsDll			= 0x00000001,
 		/** If set, the application provides control panel functionality. */
 		EControlPanelItem	= 0x00000002,
@@ -239,6 +195,8 @@
 	/** Indicates the application attributes. One or more values from TCapabilityAttribute may be specified. */
 	TUint iAttributes;
 private:
+	// expandable class - add new members to the end, add them to the end of int/ext also, and increment the version no.
+	// default value for all data members must be 0
 	enum { EVersion=4 };
 private:
 	TInt iTApaAppCapability_Reserved1;
@@ -268,27 +226,7 @@
 	TInt iTApaEmbeddabilityFilter_Reserved1;
 	};
 
-
-class CApaAppFinder : public CBase
-/**
-@publishedPartner
-@deprecated
-*/
-	{
-public:
-	virtual void FindAllAppsL()=0; // sets up a scan for all apps
-	virtual TBool NextL(TApaAppEntry& aEntry)=0; // increments a scan for all apps
-	virtual TFileName FindAppL(const TDesC& aFileName,TUid aFileUid)=0; // searches for a particular app - should support wildcards in aFileName
-	//
-	virtual TFileName DefaultAppInfoFileName()const=0; // should return the full name, path and drive of the default icon file
-protected:
-	IMPORT_C CApaAppFinder();
-	
-private:
-	IMPORT_C virtual void CApaAppFinder_Reserved1();
-	IMPORT_C virtual void CApaAppFinder_Reserved2();
-	};
-
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 /** 
 The uid for the Open service.
 
@@ -311,13 +249,12 @@
 class TApaAppServiceInfo
 	{
 public:
-	TApaAppServiceInfo();
-	TApaAppServiceInfo(TUid aUid, CArrayFixFlat<TDataTypeWithPriority>* aDataTypes,
-		HBufC8* aOpaqueData);
-	void ExternalizeL(RWriteStream& aStream) const;
-	void InternalizeL(RReadStream& aStream);
-	void Release();
-	CArrayFixFlat<TDataTypeWithPriority>& DataTypes();
+	IMPORT_C TApaAppServiceInfo();
+	IMPORT_C TApaAppServiceInfo(TUid aUid, CArrayFixFlat<TDataTypeWithPriority>* aDataTypes, HBufC8* aOpaqueData);
+	IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+	IMPORT_C void InternalizeL(RReadStream& aStream);
+	IMPORT_C void Release();
+	IMPORT_C CArrayFixFlat<TDataTypeWithPriority>& DataTypes();
 	IMPORT_C TUid Uid() const;
 	IMPORT_C const CArrayFixFlat<TDataTypeWithPriority>& DataTypes() const;
 	IMPORT_C const TDesC8& OpaqueData() const;
@@ -339,20 +276,20 @@
 class CApaAppServiceInfoArray : public CBase
 	{
 protected:
-	CApaAppServiceInfoArray();
+	IMPORT_C CApaAppServiceInfoArray();
 public:
 	/** Provides access to the encapsulated array of
 	TApaAppServiceInfo objects.
 
 	@return A generic array of TApaAppServiceInfo objects. */
 	virtual TArray<TApaAppServiceInfo> Array()=0;
-	
 private:
 	IMPORT_C virtual void CApaAppServiceInfoArray_Reserved1();
 	IMPORT_C virtual void CApaAppServiceInfoArray_Reserved2();
-	
 private:
 	TInt iCApaAppServiceInfoArray_Reserved1;
 	};
 
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+
 #endif
--- a/localisation/apparchitecture/inc/APAMDR.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APAMDR.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,60 +11,45 @@
 // Contributors:
 //
 // Description:
+// apamdr.h
 //
 
 #ifndef __APAMDR_H__
 #define __APAMDR_H__
 
-#if !defined(__E32STD_H__)
 #include <e32std.h>
-#endif
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-#if !defined(__GDI_H__)
 #include <gdi.h>
-#endif
-#if !defined(__APADBASE_H__)
 #include <apadbase.h>
-#endif
 
-// classes defined:
-class TApaModelDoorFactory;
-class CApaModelDoor;
-class CApaModelHeader;
-class MApaModelHeaderFactory;
-//
-// classes referenced:
 class RReadStream;
 class RWriteStream;
 class CStreamStore;
 class CStreamDictionary;
 class CEmbeddedStore;
 class TApaAppIdentifier;
-//
+class MApaModelHeaderFactory;
+class CApaModelHeader;
 
 
-class TApaModelDoorFactory : public MPictureFactory
-// Recognizes KUidPictureTypeDoor and creates CApaModelDoor pictures
 /** A factory class for instantiating and restoring an application's door using 
 the application's model. 
 
 @publishedAll 
 @released */
+class TApaModelDoorFactory : public MPictureFactory
+// Recognizes KUidPictureTypeDoor and creates CApaModelDoor pictures
 	{
 public:
 	IMPORT_C TApaModelDoorFactory(const MApaModelHeaderFactory* aFactory);
-	//
-	// from MPictureFactory
-	IMPORT_C void NewPictureL(TPictureHeader& aPictureHeader,const CStreamStore& aPictureStore)const; // used to create CApaDoor's during document restore only 
+public:	// from MPictureFactory
+	IMPORT_C void NewPictureL(TPictureHeader& aPictureHeader, const CStreamStore& aPictureStore) const; // used to create CApaDoor's during document restore only 
 private:
 	const MApaModelHeaderFactory* iHeaderFactory;
 	TInt iTApaModelDoorFactory_Reserved1;
 	};
 
 
-class CApaModelDoor : public CApaDoorBase
 /** A persistent representation of a door that also acts as a wrapper around an 
 application's model.
 
@@ -73,12 +58,13 @@
 
 @publishedAll 
 @released */
+class CApaModelDoor : public CApaDoorBase
 	{
 public:
 	IMPORT_C static CApaModelDoor* NewL(CApaModelHeader* aHeader);
 	IMPORT_C static CApaModelDoor* NewLC(CApaModelHeader* aHeader);
-	IMPORT_C static CApaModelDoor* NewL(const CStreamStore& aStore,TStreamId aHeadStreamId,const MApaModelHeaderFactory* aFactory);
-	//
+	IMPORT_C static CApaModelDoor* NewL(const CStreamStore& aStore, TStreamId aHeadStreamId, const MApaModelHeaderFactory* aFactory);
+
 	/** Gets the application model wrapper object.
 	
 	@return A pointer to the application model wrapper object. */
@@ -89,13 +75,10 @@
 	@param aFormat The format for the graphical representation of the embedded 
 	document. */
 	inline void SetFormat(TFormat aFormat) { iFormat = aFormat; }
-	//
 	IMPORT_C TStreamId StoreL(CStreamStore& aStore) const;
 	IMPORT_C void RestoreL(const CStreamStore& aStore,TStreamId aHeadStreamId,const MApaModelHeaderFactory* aFactory);
-	//
 	IMPORT_C ~CApaModelDoor();
-	//
-	// from CPicture
+public:	// from CPicture
 	IMPORT_C void DetachFromStoreL(TDetach /*aDegree*/=EDetachFull); //lint !e1735 Virtual function has default parameter - Inherited from CPicture, must be fixed there
 	IMPORT_C void ExternalizeL(RWriteStream& aStream)const;
 	IMPORT_C void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,MGraphicsDeviceMap* aMap)const; 
@@ -103,16 +86,13 @@
 	IMPORT_C void SetScaleFactor(TInt aScaleFactorWidth,TInt aScaleFactorHeight); 
 	IMPORT_C TInt ScaleFactorWidth()const; 
 	IMPORT_C TInt ScaleFactorHeight()const;
-	//
 private:
 	CApaModelDoor();
 	CApaModelDoor(CApaModelHeader* aHeader);
-	//
 	static CStreamDictionary* ReadStreamDictionaryLC(const CStreamStore& aSourceStore,TStreamId aStreamId);
 	static void CopyStoreL(const CEmbeddedStore& aSourceStore,RWriteStream& aTargetStream);
 	void InternalizeModelL(const MApaModelHeaderFactory& aFactory);
-	//
-	// from CApaDoorBase
+private: // from CApaDoorBase
 	TSize GlassDoorSize()const;
 private:
 	CApaModelHeader* iModelHeader;
@@ -122,7 +102,6 @@
 	};
 
 
-class CApaModelHeader : public CBase
 // Abstract wrapper for an applications model - used for file format conversion etc
 /** An interface class that acts as a wrapper for an application model.
 
@@ -142,6 +121,7 @@
 @see CApaModelDoor
 @see TApaModelDoorFactory
 @see MApaModelHeaderFactory */
+class CApaModelHeader : public CBase
 	{
 public:
 	/** Stores the model and its components in the specified store.
@@ -149,18 +129,18 @@
 	@param aStore The store in which the model's components are to be stored.
 	@param aDict The stream dictionary into which stream IDs and associated UIDs 
 	are put. */
-	virtual void StoreL(CStreamStore& aStore,CStreamDictionary& aDict) const=0;
+	virtual void StoreL(CStreamStore& aStore, CStreamDictionary& aDict) const = 0;
 	/** Gets the identity of the application associated with the application model.
 	
 	@return The application identity. */
-	virtual TApaAppIdentifier AppId()const=0;
+	virtual TApaAppIdentifier AppId() const = 0;
 	/** Restores the model to the specified degree.
 	
 	An implementation of this function should propagate this call to all components 
 	of the model.
 	
 	@param aDegree The degree to which restoration is needed. */
-	virtual void DetachFromStoreL(CPicture::TDetach aDegree)=0;
+	virtual void DetachFromStoreL(CPicture::TDetach aDegree) = 0;
 protected:
 	IMPORT_C CApaModelHeader();
 private:
@@ -169,16 +149,15 @@
 private:
 	TInt iCApaModelHeader_Reserved1;
 	};
-
+	
 
-
-class MApaModelHeaderFactory
 /** An interface class that applications implement to construct an application model 
 wrapper object, also known as the application model header.
 
 @publishedAll
 @released
 @see CApaModelHeader */
+class MApaModelHeaderFactory
 	{
 public:	
 	/** Creates and returns an application model wrapper object.
@@ -188,7 +167,7 @@
 	@param aAppId The application's identity held as a stream in the application's 
 	store
 	@return A pointer to the new application model wrapper object. */
-	virtual CApaModelHeader* NewHeaderL(const CStreamStore& aStore,const CStreamDictionary& aDict,const TApaAppIdentifier& aAppId)const=0;
+	virtual CApaModelHeader* NewHeaderL(const CStreamStore& aStore, const CStreamDictionary& aDict, const TApaAppIdentifier& aAppId) const = 0;
 protected:
 	IMPORT_C MApaModelHeaderFactory();
 private:
--- a/localisation/apparchitecture/inc/APASVST.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APASVST.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,10 @@
 // Description:
 // Starting of AppArc server
 // 
+// apasvst.h
 //
 
+
 #ifndef __APASVST_H__
 #define __APASCST_H__
 
@@ -23,16 +25,33 @@
 // classes referenced
 class MApaAppStarter;
 
-
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+/**
+@internalTechnology
+@released
+*/
 IMPORT_C TPtrC NameApaServStartSemaphore();
 
+/**
+@internalTechnology
+@released 
+*/
 IMPORT_C TPtrC NameApaServServerThread();
 
-IMPORT_C TInt StartupApaServer(MApaAppStarter& aAppStarter);
-
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+/**
+@publishedPartner 
+@released
+*/
 IMPORT_C TInt StartupApaServerProcess();
 
-IMPORT_C TInt ApaServThreadStart(TAny* aAppStarter);
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+/**
+@internalTechnology
+@released
+*/
+IMPORT_C TInt ApaServThreadStart(TAny* aUnused = NULL);
 
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
 #endif
--- a/localisation/apparchitecture/inc/APFCTLF.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APFCTLF.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,6 +13,10 @@
 // Description:
 //
 
+/**
+ @internalTechnology
+ @released
+*/
 #ifndef __APFCTLF_H__
 #define __APFCTLF_H__
 
--- a/localisation/apparchitecture/inc/APFDEF.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APFDEF.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/inc/APFFNDR.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APFFNDR.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,6 +13,10 @@
 // Description:
 //
 
+/**
+ @internalTechnology
+ @released
+*/
 #ifndef __APFFNDR_H__
 #define __APFFNDR_H__
 
--- a/localisation/apparchitecture/inc/APFREC.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APFREC.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,142 +11,20 @@
 // Contributors:
 //
 // Description:
+// apfrec.h
 //
 
-#if !defined(__APFREC_H__)
+#ifndef __APFREC_H__
 #define __APFREC_H__
 
-#if !defined(__APADEF_H__)
 #include <apadef.h>
-#endif
-#if !defined(__APAFLREC_H__)
 #include <apaflrec.h>
-#endif
-
 #include <babackup.h>
 
-// classes defined:
-class CApaScanningFileRecognizer;
-
-//
-// classes referenced:
-class CApaAppFinder;
 class TApaAppEntry;
 class TEntry;
 class RFs;
 class TDriveUnit;
-//
 
-// dir in which app recognizers should live - this dir is scanned on all drives
-
-/**
-@internalTechnology
-*/
-_LIT(KAppRecognizerSearchPath,"\\System\\Recogs\\");
-
-/**
-@internalComponent
-*/
-_LIT(KAppRecognizerSearchString,"?:\\System\\Recogs\\");
-
-/**
-@internalComponent
-*/
-_LIT(KAppRecognizerSearchAnyFile,"*");
-
-/**
-@internalComponent
-*/
-const TUid KUidFileRecogInterfaceUid={0x101F7D86};
-
-class CApaRecognizerDll; // private class
-
-/** Constructs a recognizer type 
-
-@publishedPartner
-@released
-*/
-typedef CApaFileRecognizerType* (*CreateCApaFileRecognizerType)();
 
-class CApaScanningFileRecognizer : public CApaFileRecognizer
-/**
-@internalComponent
-@deprecated
-*/
-	{
-public:
-	class TRecognizer
-		{
-	friend class CApaRecognizerDll;
-	friend class CT_File1Step;
-	public:
-		TRecognizer(HBufC* aName);
-		inline const TDesC& Name() const;
-	public:
-		//lint --e{1925} suppress "public data member" 
-		TUid iUid;
-		TInt iDrive;
-	private:
-		inline TRecognizer();
-		TRecognizer(const TRecognizer&);
-		TRecognizer& operator=(const TRecognizer&);
-	private:
-		HBufC* iName;
-		};
-	typedef CArrayFixFlat<TRecognizer> CRecognizerArray;
-	//
-private:
-	class CApaBackupOperationObserver : public CBase, public MBackupOperationObserver
-		{
-	public:
-		CApaBackupOperationObserver(CApaScanningFileRecognizer& aRecognizer);
-		~CApaBackupOperationObserver();
-		void RegisterObserverL();
-
-		virtual void HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes);
-		TInt UpdateCounter() const;
-		void SetUpdateCounter( TInt aValue );
-	private:
-		CBaBackupSessionWrapper* iSession;
-		CApaScanningFileRecognizer& iRecognizer;
-		TInt iUpdateCounter;
-		};
-	friend class CApaScanningFileRecognizer::CApaBackupOperationObserver;
-public:
-	IMPORT_C static CApaScanningFileRecognizer* NewL(RFs& aFs,MApaAppStarter* aAppStarter);
-	IMPORT_C ~CApaScanningFileRecognizer();
-	IMPORT_C void ScanForRecognizersL();
-	IMPORT_C TInt RecognizerCount();
-	IMPORT_C CRecognizerArray* RecognizerListLC()const;
-	IMPORT_C const TRecognizer& operator[](TInt aIndex)const; 
-	IMPORT_C TInt UpdateCounter()const;
-
-protected:
-	IMPORT_C CApaScanningFileRecognizer(RFs& aFs,MApaAppStarter* aAppStarter);
-	IMPORT_C void ConstructL();
-	//
-private:
-	void ScanDriveL(TInt aDriveNum);
-	void LoadRecognizerL(const TDesC& aFullName,TUid aUid);
-	TInt RemoveRecognizer(CApaRecognizerDll& aDll);
-	void LoadEcomRecognizerL(TDriveUnit& aDrive,TUid aUid);
-	void ScanForEcomRecognizersL();
-public:
-	IMPORT_C void SetEcomRecognizersFromListL(const CRecognizerArray& aList);
-	IMPORT_C void SetEcomRecognizerL(const TRecognizer& aRecognizer); 
-private:
-	CApaRecognizerDll* iRecognizerLib;
-	MApaAppStarter* iAppStarter;
-	CApaBackupOperationObserver* iObserver;
-	};
-
-inline const TDesC& CApaScanningFileRecognizer::TRecognizer::Name() const
-	{
-	return *iName;	
-	}
-
-inline CApaScanningFileRecognizer::TRecognizer::TRecognizer()
-	{
-	}
-
-#endif
+#endif	// __APFREC_H__
--- a/localisation/apparchitecture/inc/APGAPLST.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APGAPLST.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,36 +11,18 @@
 // Contributors:
 //
 // Description:
+// apgaplst.h
 //
 
-#if !defined(__APGAPLST_H__)
+#ifndef __APGAPLST_H__
 #define __APGAPLST_H__
 
-#if !defined(__APAID_H__)
 #include <apaid.h>
-#endif
-#if !defined(__APMSTD_H__)
 #include <apmstd.h>
-#endif
-#if !defined(__BADESCA_H__)
 #include <badesca.h>
-#endif
-
 #include <s32file.h>
 
-// classes defined:
-class CApaAppData;
-class CApaAppList;
-class CApaAppViewData;
-//
-// classes referenced:
-class CApaMaskedBitmap;
-class TEntry;
-class RFs;
-class CApaAppRegFinder;
-class CApaAppIconArray;
-class CApaIconLoader;
-//
+
 
 /**
 KApaMaxAppIcons
@@ -74,470 +56,9 @@
 */
 const TInt KApaIconIndexLarge=2;
 
-/**
-KIgnoreScreenMode
-
-@internalTechnology
-*/
-const TInt KIgnoreScreenMode=-1;
-
 
 _LIT(KDefaultAppIconMbm,"Z:\\Resource\\Apps\\default_app_icon.mbm");
 _LIT(KLitPathForUntrustedRegistrationResourceFiles, "?:\\private\\10003a3f\\import\\apps\\*");
 
 
-class CApaAppEntry : public CBase
-/**
-Utility class with smaller RAM footprint than TApaAppEntry
-
-@internalComponent
-*/
-	{
-public:
-	static CApaAppEntry* NewL(const TApaAppEntry& aAppEntry);
-	~CApaAppEntry();
-	void Get(TApaAppEntry& aAppEntry) const;
-private:
-	CApaAppEntry(const TUidType& aUidType);
-	void ConstructL(const TDesC& aFileName);
-private:
-	TUidType iUidType;
-	HBufC* iFullName;
-	};
-
-class CApaAppData : public CBase
-/** Represents the data associated with a CApaApplication, such as its 
-caption, capabilities and icons. This should be accessed through the Apparc Server.
-
-@internalComponent
-*/
-	{
-public:
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	IMPORT_C static CApaAppData* NewL(const TApaAppEntry& aAppEntry, RFs& aFs);
-#else
-	IMPORT_C static CApaAppData* NewL(const TApaAppEntry& aAppEntry, RFs& aFs, const TDesC& aDefaultAppIconFileName);
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	IMPORT_C ~CApaAppData();
-	IMPORT_C TApaAppEntry AppEntry() const;
-	inline TPtrC Caption() const;
-	inline TPtrC ShortCaption() const;
-	IMPORT_C CApaMaskedBitmap* Icon(TInt aIconIndex) const;
-	IMPORT_C void Capability(TDes8& aCapabilityBuf)const;
-	inline TBool IsPresent() const;
-	// ER5
-	IMPORT_C TDataTypePriority DataType(const TDataType& aDataType) const;
-	// ER6
-	IMPORT_C CApaMaskedBitmap* Icon(TSize aSize) const;
-	IMPORT_C CArrayFixFlat<TSize>* IconSizesL() const;
-	// ER6.1
-	IMPORT_C CArrayPtrFlat<CApaAppViewData>* Views() const;
-	IMPORT_C CDesCArray* OwnedFiles() const;
-	IMPORT_C TBool CanUseScreenMode(TInt aScreenMode);
-	// 7.0s
-	IMPORT_C void GetIconInfo(TInt& aIconCount, TInt& aDefaultIconsUsed) const;
-	// 8.1
-	IMPORT_C TUint DefaultScreenNumber() const;
-	IMPORT_C TBool RegistrationFileUsed() const;
-	IMPORT_C TPtrC IconFileName() const;
-	IMPORT_C TBool NonMbmIconFile() const;
-
-	// 9.0
-	IMPORT_C TBool ImplementsService(TUid aServiceUid) const;
-	TInt ImplementsServiceWithDataType(TUid aServiceUid, const TDataType& aDataType) const;
-
-	// 9.1
-	IMPORT_C TLanguage ApplicationLanguage() const;
-	IMPORT_C TPtrC RegistrationFileName() const;
-	IMPORT_C TPtrC8 OpaqueData() const;
-	IMPORT_C TUid NonNativeApplicationType() const;
-	IMPORT_C TPtrC LocalisableResourceFileName() const;
-	IMPORT_C void SetShortCaptionL(const TDesC& aShortCaption);
-	IMPORT_C TBool IsPending()const;
-	
-	// Icon/caption overrides
-	IMPORT_C void SetCaptionL(const TDesC& aCaption);
-	IMPORT_C void SetIconsL(const TDesC& aFileName, TInt aNumIcons);
-	
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	void ExternalizeL(RWriteStream& aWriteStream) const;	
-	void LoadIconsL();
-	TBool MbmIconsRequireLoading() const;
-	inline CApaAppData* Next() const;
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-private:
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	CApaAppData(RFs& aFs);
-	TBool Update();
-	void SetAppPending();
-
-	void ConstructL(const TApaAppEntry& aAppEntry);
-	TInt StoreApplicationInformation();
-#else
-	CApaAppData(RFs& aFs);
-	TBool Update(const TDesC& aDefaultAppIconFileName);	
-	void ConstructL(const TApaAppEntry& aAppEntry, const TDesC& aDefaultAppIconFileName);
-	TInt StoreApplicationInformation(const TDesC& aDefaultAppIconFileName);
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	void UpdateServiceArray(CArrayFixFlat<TApaAppServiceInfo>* aNewServiceArray);
-	TDataTypePriority DataType(const TDataType& aDataType, const CArrayFixFlat<TDataTypeWithPriority>& aDataTypeArray) const;
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	void InternalizeL(RReadStream& aReadStream);
-	TBool ViewMbmIconsRequireLoading() const;
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-private:
-	enum { ENotPresent, ENotPresentPendingUpdate, EPresentPendingUpdate, EIsPresent, ESuperseded };
-private:
-	CApaAppIconArray* iIcons;
-	HBufC* iCaption;
-	HBufC* iShortCaption;
-	HBufC* iFullName; // filename of application binary
-	TInt iIsPresent; // uses enum
-	TUidType iUidType;
-	CApaAppData* iNext;
-	TApaAppCapabilityBuf iCapabilityBuf;
-	CApaAppEntry* iSuccessor;
-	TTime iTimeStamp;
-	CArrayPtrFlat<CApaAppViewData>* iViewDataArray;
-	CDesCArray* iOwnedFileArray;
- 	RFs& iFs;
- 	HBufC* iRegistrationFile;
- 	TUint iDefaultScreenNumber;
- 	HBufC* iIconFileName;
- 	TBool iNonMbmIconFile;
- 	HBufC* iLocalisableResourceFileName;
- 	TTime iLocalisableResourceFileTimeStamp;
-	TTime iIconFileTimeStamp;
- 	TLanguage iApplicationLanguage;
- 	CArrayFixFlat<TApaAppServiceInfo>* iServiceArray;
- 	TInt iIndexOfFirstOpenService;
-	TUid iNonNativeApplicationType;
-	HBufC8* iOpaqueData;
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
- 	TInt iNumOfAppIcons;
- 	TInt iNumOfAppIconsFromResourceFile;
- 	HBufC* iIconFileNameFromResourceFile; // Icon file name as found in the localisable resource file
- 	TBool iNonMbmIconFileFromResourceFile; // A Flag that tells whether the icon in resource file is non MBM file format
- 	TTime iIconFileTimeStampFromResourceFile;
-	HBufC* iShortCaptionFromResourceFile;	// Short Caption as found in the localisable resource file
-	HBufC* iCaptionFromResourceFile;		// Caption as found in the localisable resource file
-	CApaIconLoader* iIconLoader;
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-private:
-	friend class CApaAppList;
-	};
-
-class CApaAppViewData : public CBase
-/**
-The CApaAppViewData class represents the data associated with an application view.
-
-@internalComponent
-*/
-	{
-public:
-	IMPORT_C TUid Uid() const;
-	inline TPtrC Caption() const;
-	IMPORT_C CApaMaskedBitmap* Icon(const TSize& aSize) const;
-	IMPORT_C CArrayFixFlat<TSize>* IconSizesL() const;
-	IMPORT_C TInt ScreenMode() const;
-	IMPORT_C TPtrC IconFileName() const;
-	IMPORT_C TBool NonMbmIconFile() const;
-public:
-	~CApaAppViewData();
-	static CApaAppViewData* NewLC();
-	void SetUid(TUid aUid);
-	void SetCaptionL(const TDesC& aCaption);
-	void SetIconArray(CApaAppIconArray* aIcons);
-	void SetScreenMode(TInt aScreenMode);
-	void SetIconFileNameL(const TDesC& aFileName);
-	void SetNonMbmIconFile(TBool aNonMbmIconFile);
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	void SetNumOfViewIcons(TInt aNumOfViewIcons);
-#endif // SYMBIAN_APPARC_APPINFO_CACHE	
-private:
-	CApaAppViewData();
-	void ConstructL();
-private:
-	CApaAppIconArray* iIcons;
-	HBufC* iCaption;
-	TUid iUid;
-	TInt iScreenMode;
-	HBufC* iIconFileName;
-	TBool iNonMbmIconFile;
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	TInt iNumOfViewIcons;
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	friend class CApaAppData;
-	};
-
-
-class MApaAppListObserver
-/**
- The MApaAppListObserver interface allows a class to be informed when a CApaAppList is 
- updated.
-
- @internalComponent
-*/
-	{
-public:
-	virtual void NotifyUpdate(TInt aReason)=0;
-	virtual void InitialListPopulationComplete()=0;
-	virtual void NotifyScanComplete()=0;
- 	};
-
-class CApaAppList : public CBase
-/**
-The CApaAppList class provides a list of all available applications present on a device.
-Its functionality should be accessed through the Apparc Server.
-
-@internalComponent
-*/
-	{
-public: 
-	IMPORT_C static CApaAppList* NewL(RFs& aFs,CApaAppRegFinder* aAppRegFinder, TBool aLoadMbmIconsOnDemand, TInt aTimeoutDelay = 50000); // takes ownership of aAppRegFinder
-public:
-	IMPORT_C void PurgeL();
-	inline void Purge();
-	IMPORT_C TInt Count() const;
-	IMPORT_C CApaAppData* FirstApp() const;
-	IMPORT_C CApaAppData* FirstApp(TInt aScreenMode) const; 
-	IMPORT_C CApaAppData* NextApp(const CApaAppData* aApp) const;
-	IMPORT_C CApaAppData* NextApp(const CApaAppData* aApp, TInt aScreenMode) const;
-	IMPORT_C CApaAppData* AppDataByUid(TUid aAppUid) const;
-	IMPORT_C void StopScan(TBool aNNAInstall = EFalse);
-	IMPORT_C void RestartScanL();
-	IMPORT_C TBool AppListUpdatePending();
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-	IMPORT_C TInt UpdateCounter() const;
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	// ER5
-	IMPORT_C TUid PreferredDataHandlerL(const TDataType& aDataType) const;
-	IMPORT_C void StartIdleUpdateL();
-	IMPORT_C void StartIdleUpdateL(MApaAppListObserver* aObserver);
-	IMPORT_C void InitListL(MApaAppListObserver* aObserver);
-	IMPORT_C TBool IsIdleUpdateComplete() const;
-	//
-	IMPORT_C TBool IsFirstScanComplete() const;
-	IMPORT_C TBool AppScanInProgress() const;
-	IMPORT_C CBufFlat* ServiceArrayBufferL(TUid aAppUid) const;
-	IMPORT_C CBufFlat* ServiceImplArrayBufferL(TUid aServiceUid) const;
-	IMPORT_C CBufFlat* ServiceImplArrayBufferL(TUid aServiceUid, const TDataType& aDataType) const;	
-	IMPORT_C CBufFlat* ServiceUidBufferL(TUid aAppUid) const;
-	IMPORT_C CBufFlat* ServiceOpaqueDataBufferL(TUid aAppUid, TUid aServiceUid) const;
-	IMPORT_C CApaAppData* FindAndAddSpecificAppL(CApaAppRegFinder* aFinder, TUid aAppUid);
-	IMPORT_C TUid PreferredDataHandlerL(const TDataType& aDataType, const TUid* aServiceUid, 
-		TInt& aPriority) const;
-	IMPORT_C ~CApaAppList();
-	// 9.1
-	IMPORT_C CApaAppData* AppDataByFileName(const TDesC& aFullFileName) const;
-	/*IMPORT_C*/ RFs& ShareProtectedFileServer();
-	IMPORT_C void AddForcedRegistrationL(HBufC* aRegistrationFile);
-	IMPORT_C void ResetForcedRegistrations();
-	IMPORT_C static TInt CompareStrings(const HBufC& aFirst, const HBufC& aSecond);
-	IMPORT_C TBool IsLanguageChangePending() const;
-	IMPORT_C static CApaAppList* Self();
-    IMPORT_C CArrayFixFlat<TUid>* UninstalledAppArray();
-	void AcquireDefaultIconArrayL() const;
-	const CApaAppIconArray& DefaultIconArray() const;
-	void ReleaseDefaultIconArray() const;
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	void StoreL();
-	void NotifyObserver();
-	void DeleteAppListStorer();
-	void DeleteAppIconLoader();
-	void InitiateStoringOfAppList();
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-private:
-	enum
-		{
-		EFirstScanComplete = 0x01
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-		,EAppListHasChanged = 0x02,	// This flag is used to check if the applist has really changed after a re-scan/update scan.
-		ENotifyUpdateOnFirstScanComplete = 0x04	// This flag is used to notify clients for applist update on first boot when AppsList.Bin is used.
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-		,ELangChangePending = 0x08 // This flag is used to check if applist update is in progress on language change event.
-		};
-
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE		
-	enum
-		{
-		EFirstStageScan=0x01,
-		EScanFinished=0x02,
-		};
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-private:
-	CApaAppList(RFs& aFs, CApaAppRegFinder* aAppRegFinder, TBool aLoadMbmIconsOnDemand, TInt aIdlePeriodicDelay);
-	void UpdateNextAppL(const TApaAppEntry& aAppEntry,TBool& aHasChanged);
-	void AddToList( CApaAppData* aAppData );
-	static void SetPending(CApaAppData* aAppData);
-	static void SetNotFound(CApaAppData* aAppData, TBool& aHasChanged);
-	static TInt IdleUpdateCallbackL(TAny* aObject);
-	TInt IdleUpdateL();
-	void ScanComplete();
-	void UndoSetPending(CApaAppData* aAppData);
-
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	void StopIdler();
-	void DeleteAppData();
-#else	
-	void StopIdlerL();
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	CArrayFixFlat<TDataTypeWithPriority>* DataTypeArrayDeepCopyLC(const CArrayFixFlat<TDataTypeWithPriority>& aOriginal) const;
-	CApaAppIconArray* LoadDefaultIconsL() const;
-	void UpdateDefaultIconsL();
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	void StartIconLoadingL();
-	void DeleteAppsListBackUpAndTempFiles();
-	void ScanRemovableDrivesAndUpdateL();
-	void CreateDefaultAppIconFileNameL();
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-private: 
-	// Persistence Layer
-	void RestoreL();
-	void ConstructL();
-#ifndef SYMBIAN_APPARC_APPINFO_CACHE
-	void StoreL();
-	void StoreEntryL(RFileWriteStream& theWriteStream,CApaAppData* aApp);
-	void DoStoreL(RFileWriteStream& aWriteStream);
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-	void GetAppsListCachePathL();
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	NONSHARABLE_CLASS(CApaIdleIconLoader) : public CActive
-		{
-	/**
-	Utility class used to Load Icons once applist is populated
-	@internalComponent
-	*/	
-	public:
-		CApaIdleIconLoader(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList);
-		~CApaIdleIconLoader();
-		void Start();
-
-	private:	// from CActive
-		void RunL();
-		void DoCancel();
-		TInt RunError(TInt aError);
-
-	private:
-		CApaAppData* iCurrentAppData;
-		RFs& iFs;
-		CApaAppList& iAppList;
-		};
-
-	NONSHARABLE_CLASS(CApaAppListStorer) : public CActive
-		{
-	/**
-	Utility class used to externalize applist to file
-	@internalComponent
-	*/	
-	public:
-		static CApaAppListStorer* NewL(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList);
-		~CApaAppListStorer();
-		void StartL(const TTimeIntervalMicroSeconds32& aDelay);
-
-	private:
-		CApaAppListStorer(CApaAppData* aFirstAppData, RFs& aFs, CApaAppList& aAppList);
-		static void StoreEntryL(RWriteStream& aWriteStream, const CApaAppData& aApp);
-		void ConstructL();
-
-	private:	// from CActive
-		void RunL();
-		void DoCancel();
-		TInt RunError(TInt aError);
-
-	private:
-		CApaAppData* iCurrentAppData;
-		TFileName iTempFilename;
-		RFileWriteStream iWriteStream;
-		RTimer iTimer;
-		RFs& iFs;
-		CApaAppList& iAppList;
-		};
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	
-private:
-	RFs& iFs;
-	CApaAppData* iAppData; // linked list of apps
-	CPeriodic* iAppIdler;
-	MApaAppListObserver* iObserver;
-	CApaAppData* iValidFirstAppData; //First valid app data in linked list!
-	TInt iFlags;
-	CApaAppRegFinder* iAppRegFinder;
-	TInt iIdlePeriodicDelay; 	// idle timeout periodic delay
-	RFs iFsShareProtected;
-	mutable CApaAppIconArray* iDefaultIconArray;
-	mutable TInt iDefaultIconUsageCount;
-	RPointerArray<HBufC> iForcedRegistrations;
-	class CApaLangChangeMonitor; //inner class of CApaAppList.
-	CApaLangChangeMonitor* iAppLangMonitor; // Active Object used for language change monitoring.		
-
-	RBuf iAppsListCacheFileName;
-	RBuf iAppsListCacheBackUpFileName;
-	RBuf iAppsListCachePath;
-
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-	HBufC* iDefaultAppIconMbmFileName; // This member data lives only during the scan
-	CApaAppListStorer* iAppListStorer;	//Active Object used for writing applist to file.
-	CApaIdleIconLoader* iAppIconLoader;	//Active Object used for icon handling
-#else
-	TInt iScanStage;
-	TInt iUpdateCounter;
-	TApaAppEntry iCurrentApp;
-	TInt iOldUpdateCounter;
-	HBufC* iDefaultAppIcon; // This member data lives only during the scan
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-	TBool iLoadMbmIconsOnDemand;
-	TBool iNNAInstallation;
-    CArrayFixFlat<TUid>* iUninstalledApps; 
-
-private:
-	friend class CApaLangChangeMonitor;
-	};
-
-//
-// inlines
-//
-
-inline TPtrC CApaAppViewData::Caption() const
-	{ return *iCaption; }
-
-inline TPtrC CApaAppData::Caption() const
-/** Gets the application's caption.
-
-@return The application's caption. */
-	{ return *iCaption; }
-
-inline TPtrC CApaAppData::ShortCaption() const
-/** Gets the application's short caption.
-
-@return The application's short caption. */
-	{ return *iShortCaption; }
-
-inline TBool CApaAppData::IsPresent() const
-/** Tests whether the application is present or not on the device.
-
-@return True if application exists, else false. */
-	{ return iIsPresent; }
-
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
-inline CApaAppData* CApaAppData::Next() const
-/** Gets the Next Appdata in the list
-
-@return iNext */
-	{ return iNext; }
-#endif // SYMBIAN_APPARC_APPINFO_CACHE
-
-/**
- * Use PurgeL.
- *
- * @deprecated
- */
-inline void CApaAppList::Purge()
-	{	TRAP_IGNORE(PurgeL());	}
-
 #endif //__APGAPLST_H__
--- a/localisation/apparchitecture/inc/APGCLI.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APGCLI.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,75 +11,61 @@
 // Contributors:
 //
 // Description:
+// apgcli.h
 //
 
-#if !defined(__APGCLI_H__)
+#ifndef __APGCLI_H__
 #define __APGCLI_H__
 
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-#if !defined(__APMSTD_H__)
 #include <apmstd.h>
-#endif
-#if !defined(__APMREC_H__)
 #include <apmrec.h>
-#endif
-#if !defined(__APAID_H__)
 #include <apaid.h>
-#endif
-#if !defined(__BADESCA_H__)
 #include <badesca.h>
-#endif
-#if !defined(__F32FILE_H__)
 #include <f32file.h>
-#endif
 
 // classes referenced
+class RFile;
+class MArrayFiller;
 class CApaCommandLine;
 class CApaMaskedBitmap;
-class MArrayFiller;
-class RFile;
-
 class CApaLsSessionExtension;
-
-class CDataRecognitionResultArrayEntry;
 class CApaRegistrationResourceFileWriter;
 class CApaLocalisableResourceFileWriter;
+class CApaAppServiceInfoArray;
 
-/* @internalComponent
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+/** @internalComponent
 */
 IMPORT_C TUint MinApplicationStackSize();
 
-class CDataRecognitionResultArray : public CBase
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+
+
 /**
-This class holds the recognition results of a recognized directory.
+This class holds the MIME-type recognition results of a recognized directory.
 @publishedAll
 @released
 */
+class CDataRecognitionResultArray : public CBase
 	{
-public: // exported functions
+public: 
 	IMPORT_C CDataRecognitionResultArray();
-	IMPORT_C virtual ~CDataRecognitionResultArray();
+	IMPORT_C ~CDataRecognitionResultArray();
 	IMPORT_C const TFileName& Path() const;
 	IMPORT_C TUint Count() const;
 	IMPORT_C void GetDataRecognitionResultL(TDataRecognitionResult& aResult, const TUint aIndex) const;
 	IMPORT_C void GetFileNameL(TFileName& aFileName, const TUint aIndex) const;
-public: // dll internally
+public: 
 	TUint InternalizeL(const CBufFlat& aBuffer);
 	void SetPath(const TFileName& aPath);
 private:
+	NONSHARABLE_CLASS(CItem);
 	TFileName iPath;
-	RPointerArray<CDataRecognitionResultArrayEntry> iEntries;
+	RPointerArray<CItem> iItems;
 	};
 
 
-
-////////////////////////////////////
-// RApaLsSession
-////////////////////////////////////
-
-class RApaLsSession : public RSessionBase
 /** A session with the application architecture server.
 
 The server provides access to a cached list of the applications on the device. 
@@ -106,123 +92,117 @@
 
 @publishedAll
 @released */
+class RApaLsSession : public RSessionBase
 	{
-	friend class CApaLsSessionExtension;
 public:
-	enum {
+	enum TApaLsErrorCode {
 		/** A possible return value from GetNextApp(), to indicate that there are no more 
 		applications in the list. */
-		ENoMoreAppsInList=1,
+		ENoMoreAppsInList = 1,
 		/** Indicates that an RApaLsSession member function was called before the session's 
 		application list is fully populated. */
 		EAppListInvalid
 		};
-	/** Defines the way an application is launched. */
+	
+	/** Defines the way an application is launched. 
+	This is no longer in use. Has no effect! */
 	enum TLaunchType {
-		/** Launches a new instance of the application. */
-		ELaunchNewApp=1,
-		/** Launches a new instance of the application if no existing instance of the application 
-		is running. If an instance of the application is already running, then it 
-		is brought to the foreground. */
+		ELaunchNewApp = 1,
 		ESwitchFiles
 		};
-	
-public:
+public: // Session management
 	IMPORT_C RApaLsSession();
-	//
 	IMPORT_C TInt Connect();
+	IMPORT_C void Close(); //lint !e1511 Member hides non-virtual member
 	IMPORT_C TVersion Version() const;
-	//
-	IMPORT_C TInt AppCount(TInt& aCount) const; // returns error
-	IMPORT_C TInt EmbeddableAppCount(TInt& aCount) const; // returns error
-	//
-	IMPORT_C TInt GetAllApps() const; // Call to initialize
-	IMPORT_C TInt GetAllApps(TInt aScreenMode) const; // Call to initialize
-	IMPORT_C TInt GetEmbeddableApps() const; // Call to initialize
-	IMPORT_C TInt GetEmbeddableApps(TInt aScreenMode) const; // Call to initialize
-	// 7.0s
-	IMPORT_C TInt GetFilteredApps(const TApaEmbeddabilityFilter& aFilter) const; // Call to initialize
-	IMPORT_C TInt GetFilteredApps(const TApaEmbeddabilityFilter& aFilter, TInt aScreenMode) const; // Call to initialize
-	// 8.1
-	IMPORT_C TInt GetFilteredApps(TUint aCapabilityAttributeMask, TUint aCapabilityAttributeValue) const; // Call to initialize
-	IMPORT_C TInt GetFilteredApps(TUint aCapabilityAttributeMask, TUint aCapabilityAttributeValue, TInt aScreenMode) const; // Call to initialize
-	// 9.0
-	IMPORT_C TInt GetServerApps(TUid aServiceUid) const; // Call to initialize
-	IMPORT_C TInt GetServerApps(TUid aServiceUid, TInt aScreenMode) const; // Call to initialize
-	//
+	IMPORT_C void RegisterListPopulationCompleteObserver(TRequestStatus& aStatus) const;
+	IMPORT_C TInt CancelListPopulationCompleteObserver() const;
+public:	// Utilities
+	IMPORT_C TInt IsProgram(const TDesC& aFileName, TBool& aProgram) const;	
+	IMPORT_C TInt MatchesSecurityPolicy(TBool& aMatches, TUid aAppUid, const TSecurityPolicy& aSecurityPolicy) const;
+public: // Application list initialization
+	// Set up list of all apps
+	IMPORT_C TInt GetAllApps() const;
+	IMPORT_C TInt GetAllApps(TInt aScreenMode) const;
+	IMPORT_C TInt GetEmbeddableApps() const;
+	IMPORT_C TInt GetEmbeddableApps(TInt aScreenMode) const;
+	// Set up filtered list of apps
+	IMPORT_C TInt GetFilteredApps(const TApaEmbeddabilityFilter& aFilter) const;
+	IMPORT_C TInt GetFilteredApps(const TApaEmbeddabilityFilter& aFilter, TInt aScreenMode) const;
+	IMPORT_C TInt GetFilteredApps(TUint aCapabilityAttributeMask, TUint aCapabilityAttributeValue) const;
+	IMPORT_C TInt GetFilteredApps(TUint aCapabilityAttributeMask, TUint aCapabilityAttributeValue, TInt aScreenMode) const;
+	// Set up list of server "service" apps
+	IMPORT_C TInt GetServerApps(TUid aServiceUid) const;
+	IMPORT_C TInt GetServerApps(TUid aServiceUid, TInt aScreenMode) const;
+public: // Application list access	
+	// Get application count
+	IMPORT_C TInt AppCount(TInt& aCount) const;
+	IMPORT_C TInt EmbeddableAppCount(TInt& aCount) const;
+	// Get next app in list
 	IMPORT_C TInt GetNextApp(TApaAppInfo& aInfo) const; // call repeatedly, returns err (inc ENoMoreAppsInList,EAppListInvalid)
 	IMPORT_C TInt GetNextApp(TApaAppInfo& aInfo,TInt aScreenMode) const; // call repeatedly, returns err (inc ENoMoreAppsInList,EAppListInvalid)
-	//
-	IMPORT_C TInt GetAppInfo(TApaAppInfo& aInfo,TUid aAppUid) const;
-	IMPORT_C TInt SetAppShortCaption(const TDesC& aShortCaption, TLanguage aLanguage, TUid aAppUid);
-	IMPORT_C TInt GetDefaultScreenNumber(TInt& aDefaultScreenNumber, TUid aAppUid) const;
+public: // Application meta-data
+	IMPORT_C TInt GetAppInfo(TApaAppInfo& aInfo, TUid aAppUid) const;
+	IMPORT_C TInt GetAppViews(CApaAppViewArray& aAppViews, TUid aAppUid) const;
 	
-public:
+	IMPORT_C TInt SetAppShortCaption(const TDesC& aShortCaption, TLanguage aLanguage, TUid aAppUid);
+	IMPORT_C TInt ApplicationLanguage(TUid aAppUid, TLanguage& aLanguage) const;
 	IMPORT_C TInt GetAppCapability(TDes8& aCapabilityBuf,TUid aAppUid) const;
+	IMPORT_C TInt GetAppOwnedFiles(CDesCArray& aAppOwnedFiles, TUid aAppUid) const;
+	IMPORT_C TInt GetDefaultScreenNumber(TInt& aDefaultScreenNumber, TUid aAppUid) const;
+	// Application icons
+	IMPORT_C TInt GetAppIcon(TUid aAppUid, TInt aSize, CApaMaskedBitmap& aAppBitmap) const;
+	IMPORT_C TInt GetAppIconSizes(TUid aAppUid, CArrayFixFlat<TSize>& aArrayToFill) const;
+	IMPORT_C TInt GetAppIcon(TUid aAppUid, TSize aSize, CApaMaskedBitmap& aAppBitmap) const;
+	IMPORT_C TInt GetAppIcon(TUid aAppUid, HBufC*& aFullFileName) const;
+	IMPORT_C TInt GetAppIcon(TUid aAppUid, RFile& aFile) const;
+	IMPORT_C TInt NumberOfOwnDefinedIcons(TUid aAppUid, TInt& aCount) const;
+	// View icons
+	IMPORT_C TInt GetAppViewIcon(TUid aAppUid, TUid aViewUid, const TSize& aSize, CApaMaskedBitmap& aViewBitmap) const;
+	IMPORT_C TInt GetAppViewIcon(TUid aAppUid, TUid aViewUid, HBufC*& aFullFileName) const;
+public: // Application start
 	IMPORT_C TInt StartApp(const CApaCommandLine& aCommandLine); // This is only recommended for non document based apps
-	IMPORT_C TInt StartApp(const CApaCommandLine& aCommandLine,TThreadId& aThreadId);
-	IMPORT_C TInt StartApp(const CApaCommandLine& aCommandLine,TThreadId& aThreadId,TRequestStatus* aRequestStatusForRendezvous);
-	//
+	IMPORT_C TInt StartApp(const CApaCommandLine& aCommandLine, TThreadId& aThreadId);
+	IMPORT_C TInt StartApp(const CApaCommandLine& aCommandLine, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous);
+	
+	IMPORT_C TInt StartDocument(const TDesC& aDocFileName, TThreadId& aThreadId, TLaunchType aUnused = ELaunchNewApp);
+	IMPORT_C TInt StartDocument(const TDesC& aDocFileName, const TDataType& aDataType, TThreadId& aThreadId, TLaunchType aUnused = ELaunchNewApp);
+	IMPORT_C TInt StartDocument(const TDesC& aDocFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType aUnused = ELaunchNewApp);
+	IMPORT_C TInt StartDocument(RFile& aDocFile, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous = NULL);
+	IMPORT_C TInt StartDocument(RFile& aDocFile, const TDataType& aDataType, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous = NULL);
+	IMPORT_C TInt StartDocument(RFile& aDocFile, TUid aAppUid, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous = NULL);
+	IMPORT_C TInt CreateDocument(const TDesC& aDocFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType aUnused = ELaunchNewApp);
+public: // Data MIME-type recognizion
+	// Minimum accepted confidence by which a data may be considered recognized
+	IMPORT_C TInt SetAcceptedConfidence(TInt aConfidence);
+	IMPORT_C TInt GetAcceptedConfidence(TInt& aConfidence) const;
+	// Get a complete list of all known (recognizable) MIME types
+	IMPORT_C TInt GetSupportedDataTypesL(CDataTypeArray& aDataTypes) const;
+	// Recognize data
+	IMPORT_C TInt RecognizeData(const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const;
 	IMPORT_C TInt RecognizeData(const TDesC& aName, const TDesC8& aBuffer, TDataRecognitionResult& aDataType) const;
 	IMPORT_C TInt RecognizeData(const RFile& aFile, TDataRecognitionResult& aDataType) const;
 	IMPORT_C TInt RecognizeSpecificData(const TDesC& aName, const TDesC8& aBuffer, const TDataType& aDataType, TBool& aResult) const;
 	IMPORT_C TInt RecognizeSpecificData(const RFile& aFile, const TDataType& aDataType, TBool& aResult) const;
-	//
+	// Recognize files
+	IMPORT_C TInt RecognizeFilesL(const TDesC& aPath, CDataRecognitionResultArray& aResult) const;
+	IMPORT_C void RecognizeFilesL(const TDesC& aPath, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus);
+	IMPORT_C TInt RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult) const;
+	IMPORT_C void RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus);
+	IMPORT_C void CancelRecognizeFiles();
+	// Get application registered as capable of handling specified MIME data type
 	IMPORT_C TInt AppForDataType(const TDataType& aDataType, TUid& aAppUid) const;
-	IMPORT_C TInt StartDocument(const TDesC& aFileName, TThreadId& aThreadId, TLaunchType aLaunchType=ELaunchNewApp);
-	IMPORT_C TInt StartDocument(RFile& aFile, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous=NULL);
-	IMPORT_C TInt StartDocument(const TDesC& aFileName, const TDataType& aDataType, TThreadId& aThreadId, TLaunchType aLaunchType=ELaunchNewApp);
-	IMPORT_C TInt StartDocument(RFile& aFile, const TDataType& aDataType, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous=NULL);
-	IMPORT_C TInt StartDocument(const TDesC& aFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType aLaunchType=ELaunchNewApp);
-	IMPORT_C TInt StartDocument(RFile& aFile, TUid aAppUid, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous=NULL);
-	IMPORT_C TInt CreateDocument(const TDesC& aFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType aLaunchType=ELaunchNewApp);
-	//
-	IMPORT_C TInt GetAppIcon(TUid aAppUid, TInt aSize, CApaMaskedBitmap& aAppBitmap) const;
-	//
 	IMPORT_C TInt AppForDocument(const TDesC& aFileName, TUid& aAppUid, TDataType& aDataType) const;
 	IMPORT_C TInt AppForDocument(const RFile& aFile, TUid& aAppUid, TDataType& aDataType) const;
-	IMPORT_C TInt IsProgram(const TDesC& aFileName, TBool& aProgram) const;
-	IMPORT_C TInt GetAcceptedConfidence(TInt& aConfidence) const;
-	IMPORT_C TInt SetAcceptedConfidence(TInt aConfidence);
-	IMPORT_C TInt GetMaxDataBufSize(TInt& aBufSize) const;
-	IMPORT_C TInt SetMaxDataBufSize(TInt aBufSize);
-	IMPORT_C TInt GetPreferredBufSize(TInt& aPreferredBufSize) const;
-	IMPORT_C TInt GetSupportedDataTypesL(CDataTypeArray& aDataTypes) const;
-	//
-	IMPORT_C TInt GetAppIconSizes(TUid aAppUid, CArrayFixFlat<TSize>& aArrayToFill) const;
-	IMPORT_C TInt GetAppIcon(TUid aAppUid, TSize aSize, CApaMaskedBitmap& aAppBitmap) const;
-	IMPORT_C TInt GetAppIcon(TUid aAppUid, RFile& aFile) const;
-	//
-	IMPORT_C TInt GetAppViews(CApaAppViewArray& aAppViews, TUid aAppUid) const;
-	IMPORT_C TInt GetAppViewIcon(TUid aAppUid, TUid aViewUid, const TSize& aSize, CApaMaskedBitmap& aViewBitmap) const;
-	IMPORT_C TInt GetAppOwnedFiles(CDesCArray& aAppOwnedFiles, TUid aAppUid) const;
-	//
-	IMPORT_C TInt NumberOfOwnDefinedIcons(TUid aAppUid, TInt& aCount) const;
-	//
-	IMPORT_C TInt GetAppIcon(TUid aAppUid, HBufC*& aFullFileName) const;
-	IMPORT_C TInt GetAppViewIcon(TUid aAppUid, TUid aViewUid, HBufC*& aFullFileName) const;
+	// Register an applicatoin as capable of handling a specified MIME data type
 	IMPORT_C TInt InsertDataMapping(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid);
 	IMPORT_C TInt InsertDataMappingIfHigher(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid, TBool& aInserted);
 	IMPORT_C TInt DeleteDataMapping(const TDataType& aDataType);
-	/**
-	@internalComponent
-	@released
-	*/
-	IMPORT_C TInt InsertDataMapping(const TDataType& aDataType, TDataTypePriority aPriority, 
-		TUid aUid, TUid aServiceUid);
-	/**
-	@internalComponent
-	@released
-	*/
-	IMPORT_C TInt DeleteDataMapping(const TDataType& aDataType, TUid aServiceUid);
-	/**
-	@internalComponent
-	@released
-	*/
-	IMPORT_C TInt GetAppByDataType(const TDataType& aDataType, TUid aServiceUid, TUid& aAppUid) const;
-
-public:
-	//
+	// Amount of data used for recognition
+	IMPORT_C TInt SetMaxDataBufSize(TInt aBufSize);
+	IMPORT_C TInt GetMaxDataBufSize(TInt& aBufSize) const;
+	IMPORT_C TInt GetPreferredBufSize(TInt& aPreferredBufSize) const;
+public: // Support for service-applications
 	IMPORT_C CApaAppServiceInfoArray* GetAppServicesLC(TUid aAppUid) const;
 	IMPORT_C CApaAppServiceInfoArray* GetServiceImplementationsLC(TUid aServiceUid) const;
 	IMPORT_C CApaAppServiceInfoArray* GetServiceImplementationsLC(TUid aServiceUid, const TDataType& aDataType) const;
@@ -231,18 +211,20 @@
 	IMPORT_C TInt AppForDataTypeAndService(const TDataType& aDataType, TUid aServiceUid, TUid& aAppUid) const;
 	IMPORT_C TInt AppForDocumentAndService(const TDesC& aFileName, TUid aServiceUid, TUid& aAppUid, TDataType& aDataType) const;
 	IMPORT_C TInt AppForDocumentAndService(const RFile& aFile, TUid aServiceUid, TUid& aAppUid, TDataType& aDataType) const;
-	IMPORT_C TInt ApplicationLanguage(TUid aAppUid, TLanguage& aLanguage) const;
-	IMPORT_C void Close(); //lint !e1511 Member hides non-virtual member
-
-	IMPORT_C void RegisterListPopulationCompleteObserver(TRequestStatus& aStatus) const;
-	IMPORT_C TInt CancelListPopulationCompleteObserver() const;
-	IMPORT_C TInt MatchesSecurityPolicy(TBool& aMatches, TUid aAppUid, const TSecurityPolicy& aSecurityPolicy) const;
-	IMPORT_C TInt RecognizeFilesL(const TDesC& aPath, CDataRecognitionResultArray& aResult) const;
-	IMPORT_C void RecognizeFilesL(const TDesC& aPath, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus);
-	IMPORT_C TInt RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult) const;
-	IMPORT_C void RecognizeFilesL(const TDesC& aPath, const TDesC8& aDataType, CDataRecognitionResultArray& aResult, TRequestStatus& aStatus);
-	IMPORT_C void CancelRecognizeFiles();
-
+public:	// for internal use only
+	IMPORT_C TInt InsertDataMapping(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid, TUid aServiceUid);
+	IMPORT_C TInt DeleteDataMapping(const TDataType& aDataType, TUid aServiceUid);
+	IMPORT_C void NotifyOnDataMappingChange(TRequestStatus& aRequestStatus);
+	IMPORT_C void CancelNotifyOnDataMappingChange();
+	IMPORT_C TInt GetAppByDataType(const TDataType& aDataType, TUid aServiceUid, TUid& aAppUid) const;
+public:	// for internal use only
+	IMPORT_C static void SetFsSessionL(RFs& aFsSession);
+	IMPORT_C static void ClearFsSession();
+	IMPORT_C static RFs* FsSession();
+	IMPORT_C void SetNotify(TBool aCompleteImmediatelyIfNoScanImpendingOrInProgress, TRequestStatus& aStatus);
+	IMPORT_C void CancelNotify();
+public: // for internal use only
+	// Support for non-native applications	
 	IMPORT_C void RegisterNonNativeApplicationTypeL(TUid aApplicationType, const TDesC& aNativeExecutable);
 	IMPORT_C void DeregisterNonNativeApplicationTypeL(TUid aApplicationType);
 	IMPORT_C void PrepareNonNativeApplicationsUpdatesL();
@@ -250,60 +232,49 @@
 	IMPORT_C void DeregisterNonNativeApplicationL(TUid aApplication);
 	IMPORT_C void CommitNonNativeApplicationsUpdatesL();
 	IMPORT_C TInt RollbackNonNativeApplicationsUpdates();
-	IMPORT_C void NotifyOnDataMappingChange(TRequestStatus& aRequestStatus);
-	IMPORT_C void CancelNotifyOnDataMappingChange();
 	IMPORT_C TInt GetAppType(TUid& aTypeUid, TUid aAppUid) const;
-	
 	IMPORT_C TInt ForceRegistration(const RPointerArray<TDesC>& aRegFiles);
-	
-public:
-	// not for public use
-	IMPORT_C static void SetFsSessionL(RFs& aFsSession);
-	IMPORT_C static void ClearFsSession();
-	IMPORT_C static RFs* FsSession();
-	IMPORT_C void SetNotify(TBool aCompleteImmediatelyIfNoScanImpendingOrInProgress, TRequestStatus& aStatus);
-	IMPORT_C void CancelNotify();
-
 private: // Reserved for future use
 	IMPORT_C virtual void RApaLsSession_Reserved1();
 	IMPORT_C virtual void RApaLsSession_Reserved2();
-
+	
 public:
 	/**
 	@publishedPartner
 	@released
 	*/
 	IMPORT_C void ForceCommitNonNativeApplicationsUpdatesL(); 
-	
+
 private:
 	void DoGetAppOwnedFilesL(CDesCArray& aArrayToFill, TUid aAppUid) const;
 	void DoGetAppViewsL(CApaAppViewArray& aArrayToFill, TUid aAppUid) const;
 	void DoGetAppIconSizesL(TUid aAppUid, CArrayFixFlat<TSize>& aArrayToFill) const;
 	TInt DoAppCount(TInt& aCount,TInt aCommand) const;
 	void FetchArrayL(MArrayFiller& aArrayFiller,TUid aAppUid, TInt aOpcode, TInt aInitialBufSize) const;
-	CBufBase* GetServiceBufferLC(TInt aOpcode, TUid aUid1, TUid aUid2=KNullUid) const;
-	TInt StartAndCreate(TInt aRqst,const TDesC& aFileName, TUid aAppUid, TThreadId& aThreadId, TLaunchType aLaunchType);
+	CBufBase* GetServiceBufferLC(TInt aOpcode, TUid aUid1, TUid aUid2 = KNullUid) const;
 	CBufBase* GetServiceBufferLC(TInt aOpcode, TUid aUid1, const TDataType& aDataType) const;
 	TInt SendReceiveWithReconnect(TInt aFunction,const TIpcArgs& aIpcArgs) const;
 	TInt TransferAndInternalizeDataL(const TDesC& aPath, const TInt aRequiredBufferSize, CDataRecognitionResultArray& aResult) const;
-	TInt GetExecutableName(TDes& aNativeExecutableName, TDes& aLogicalExecutableName, HBufC8*& aOpaqueData, TIpcArgs& aIpcArgs, TInt aOpcode) const;
-	TInt GetOpaqueData(HBufC8*& aOpaqueData, TInt aLengthOfOpaqueData) const;
+	TInt GetExecutableNameAndNewOpaqueData(TDes& aNativeExecutableName, TDes& aLogicalExecutableName, HBufC8*& aOpaqueData, TIpcArgs& aIpcArgs, TInt aOpcode) const;
+	TInt GetNewOpaqueData(HBufC8*& aOpaqueData, TInt aLengthOfOpaqueData) const;
 	TInt StartApplicationPassingFileHandle(const TDesC& aNativeExecutableName, const TDesC& aLogicalExecutableName, const TDesC8* aOpaqueData, const RFile& aFile, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous);
 	TInt StartApplicationPassingDocumentName(const TDesC& aNativeExecutableName, const TDesC& aLogicalExecutableName, const TDesC8* aOpaqueData, const TDesC& aDocumentName, TThreadId& aThreadId,TApaCommand aCommand, TRequestStatus* aRequestStatusForRendezvous);
-	void StartApplicationL(const TDesC& aNativeExecutableName, const CApaCommandLine& aCommandLine, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous);
+	void DoStartApplicationL(const TDesC& aNativeExecutableName, const CApaCommandLine& aCommandLine, TThreadId& aThreadId, TRequestStatus* aRequestStatusForRendezvous);
 	TInt DoAppForDocumentOptionallySpecifyingService(const TDesC& aFileName, TUid aServiceUid, TUid& aAppUid, TDataType& aDataType, TInt aOpcode) const;
 	TInt DoAppForDocumentOptionallySpecifyingService(const RFile& aFile, TUid aServiceUid, TUid& aAppUid, TDataType& aDataType, TInt aOpcode) const;
-	TInt GetBufferFromFile(HBufC8*& aBuffer, const TDesC& aFileName) const;
-	TInt DoStartApp(const CApaCommandLine& aCommandLine, TThreadId* aThreadId,TRequestStatus* aRequestStatusForRendezvous);
-	void DoStartAppL(const CApaCommandLine& aCommandLine, TThreadId* aThreadId,TRequestStatus* aRequestStatusForRendezvous);
-	static void GetThreadIdL(TThreadId& aThreadId, const RProcess& aProcess);
+	TInt GetNewBufferFromFile(HBufC8*& aBuffer, const TDesC& aFileName) const;
+	TInt DoStartApp(const CApaCommandLine& aCommandLine, TThreadId* aThreadId, TRequestStatus* aRequestStatusForRendezvous);
+	void DoStartAppL(const CApaCommandLine& aCommandLine, TThreadId* aThreadId, TRequestStatus* aRequestStatusForRendezvous);
+	static void GetMainThreadIdL(TThreadId& aThreadId, const RProcess& aProcess);
 	static void DeletePointerToPointerToTAny(TAny* aPointerToPointerToTAny);
 	static CBufFlat* CreateRegFilesBufferL(const RPointerArray<TDesC>& aRegFiles);
 	static void CleanupOperation(TAny* aAny);
 
 private: // data
-	CApaLsSessionExtension* iExtension; // friend!
+	friend class CApaLsSessionExtension;
+	CApaLsSessionExtension* iExtension;
 	};
 
 
-#endif
+#endif	// __APGCLI_H__
+
--- a/localisation/apparchitecture/inc/APGCTL.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APGCTL.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,8 +25,10 @@
 
 // classes defined:
 class CApaSystemControl;
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 class CApaSystemControlList;
-//
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+
 // classes referenced:
 class RFs;
 class CApaMaskedBitmap;
@@ -110,7 +112,7 @@
 	};
 
 
-
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 class CApaSystemControlList : public CBase
 /** Provides a list of all available control panel applications present on the phone. 
 This class is implemented as a linked list of CApaSystemControl. Updates the control panel application list by removing 
@@ -155,6 +157,6 @@
 @return The number of times the control panel application list has been changed. */
 	{ return iUpdateCount; }
 
-
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
 #endif
--- a/localisation/apparchitecture/inc/APGDOOR.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APGDOOR.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,87 +11,55 @@
 // Contributors:
 //
 // Description:
+// apgdoor.h
 //
 
 #ifndef __APGDOOR_H__
 #define __APGDOOR_H__
 
-#if !defined(__E32STD_H__)
 #include <e32std.h>
-#endif
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-#if !defined(__S32STD_H__)
 #include <s32std.h>
-#endif
-#if !defined(__GDI_H__)
 #include <gdi.h>
-#endif
-#if !defined(__APPARC_H__)
 #include <apparc.h>
-#endif
-#if !defined(__APADBASE_H__)
 #include <apadbase.h>
-#endif
 
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 /**
 @internalAll
 */
-#ifdef _UNICODE
-#define KUidApaDoorDocStream KUidApaDoorDocStream16
-#else
-#define KUidApaDoorDocStream KUidApaDoorDocStream8
-#endif
-
-/**
-@internalComponent
-@deprecated
-*/
-const TUid KUidApaDoorDocStream8={0x10000144};
+const TUid KUidApaDoorDocStream={0x10003A35};
 
-/**
-@internalComponent
-*/
-const TUid KUidApaDoorDocStream16={0x10003A35};
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+// classes referenced
+class CEmbeddedStore;
 
-// classes defined:
-class CApaDoor;
-class TApaPictureFactory;
-//
-// classes referenced:
-class CEmbeddedStore;
-//
-
-class CApaDoor : public CApaDoorBase
 /** A wrapper for an embedded document that can be displayed in a user interface 
 as an icon or a glass door. 
 
 @publishedAll 
 @released */
+class CApaDoor : public CApaDoorBase
 	{
 public:
 	IMPORT_C static CApaDoor* NewLC(RFs& aFs, CApaDocument& aDoc,const TSize& aDefaultIconSizeInTwips); // call to create a new door in iconic format - restoration is achieved with TApaPictureFactory
 	IMPORT_C static CApaDoor* NewL(RFs& aFs, CApaDocument& aDoc,const TSize& aDefaultIconSizeInTwips); // call to create a new door in iconic format - restoration is achieved with TApaPictureFactory
 	IMPORT_C static CApaDoor* NewL(RFs& aFs, const CStreamStore& aStore,TStreamId aStreamId,CApaProcess& aProcess); // restoring constructor called by TApaPictureFactory
-	//
+
 	IMPORT_C void SetFormatToIconL();
 	IMPORT_C void SetFormatToGlassL();
 	IMPORT_C void SetFormatToTemporaryIconL(TBool aEnabled=ETrue);
-	//
+
 	IMPORT_C CApaDocument* DocumentL(TBool aCheckPassword=EFalse); // returns a pointer to the doc, restoring it if necessary. Checks password if required.
 	inline TDesC* Caption()const;
 	IMPORT_C TUid AppUidL()const;
-	//
 	// persistence methods
 	IMPORT_C void RestoreL(const CStreamStore& aStore,TStreamId aHeadStreamId);
 	TStreamId StoreL(CStreamStore& aStore) const;
-	//
+
 	IMPORT_C ~CApaDoor();
-	//
-	// from CPicture
-	void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect,
-						MGraphicsDeviceMap* aMap)const; // draws according to current iPicFormat
+public: // from CPicture
+	void Draw(CGraphicsContext& aGc,const TPoint& aTopLeft,const TRect& aClipRect, MGraphicsDeviceMap* aMap)const; // draws according to current iPicFormat
 	void DetachFromStoreL(TDetach aDegree=EDetachFull); //lint !e1735 Virtual function has default parameter - Must use the same default as declared by CPicture
 	void GetOriginalSizeInTwips(TSize& aSize)const;
 	void SetScaleFactor(TInt aScaleFactorWidth,TInt aScaleFactorHeight);
@@ -104,9 +72,9 @@
 	CApaDoor(RFs& aFs, CApaProcess& aProcess);
 	CApaDoor(RFs& aFs, CApaDocument& aDoc,const TSize& aDefaultIconSizeInTwips);
 	void ConstructL();
-	//
+
 	void SetIconSizeInTwips(TSize aSize); // for use of factory
-	//
+
 	void StoreDocL(CPersistentStore& aStore)const;
 	void RestoreDocL(const CPersistentStore& aStore);
 	void RestoreDoorStateL(const CStreamStore& aStore,const CStreamDictionary& streamDic);
@@ -114,11 +82,11 @@
 	static void CopyStoreL(const CEmbeddedStore& aSourceStore,RWriteStream& aTargetStream);
 	void ExternalizeStateStreamL(CStreamStore& aStore,CStreamDictionary& aStreamDict)const;
 	void InternalizeStateStreamL(const CStreamStore& aStore,const CStreamDictionary& aStreamDict,TSize aDefaultIconSize);
-	//
+
 	// required so CPicture's can be swizzled
 	void ExternalizeL(RWriteStream& aStream)const;
-	// from CApaDoorBase
-	virtual TSize GlassDoorSize()const;
+private: // from CApaDoorBase
+	TSize GlassDoorSize()const;
 	TUid AppUidFromStreamL() const;
 private:
 	RFs& iFs;
@@ -128,14 +96,12 @@
 	CPicture* iPicture; // the current view of the door, either iconic or glass
 	CEmbeddedStore* iStore; // store containing the doc
 	CBufSeg* iStoreHost; // the host for the embedded store, if the door has been detached from its originating store
-	__MUTABLE TSize iIconSizeInTwips;
-	//
+	mutable TSize iIconSizeInTwips;
+private:	
 	friend class TApaPictureFactory;
 	};
 
 
-class TApaPictureFactory : public MPictureFactory
-// Recognizes KUidPictureTypeDoor and creates CApaDoor pictures
 /** A factory class for instantiating and restoring an application's door.
 
 A door factory object is constructed by the UI environment and can be accessed 
@@ -145,37 +111,34 @@
 @released 
 @see CEikonEnv::PictureFactory()
 @see CApaDoor */
+class TApaPictureFactory : public MPictureFactory
+// Recognizes KUidPictureTypeDoor and creates CApaDoor pictures
 	{
 public:
 	IMPORT_C TApaPictureFactory(CApaProcess* aAppProcess);
 	inline void SetIconSize(TSize aIconSizeInTwips);
-	//
-	// from MPictureFactory
+public:	// from MPictureFactory
 	IMPORT_C void NewPictureL(TPictureHeader& aPictureHeader,const CStreamStore& aPictureStore)const; // used to create CApaDoor's during document restore only 
 protected:
 	IMPORT_C TApaPictureFactory();
-	
 private:
 	CApaProcess* iApaProcess;
 	TSize iIconSize;
 	TInt iSpare;
 	};
 
-
 //
 // inlines
 //
 
+/** Gets the name of the application with which the embedded document is associated.
+@return A pointer to a descriptor containing the name of the application. */
 inline TDesC* CApaDoor::Caption()const 
-	/** Gets the name of the application with which the embedded document is associated.
-	
-	@return A pointer to a descriptor containing the name of the application. */
 	{ return iAppCaption; }
 
+/** Sets the size of the icon.
+@param aIconSizeInTwips The size of the icon, in twips. */
 inline void TApaPictureFactory::SetIconSize(TSize aIconSizeInTwips)
-	/** Sets the size of the icon.
-	
-	@param aIconSizeInTwips The size of the icon, in twips. */
 	{ iIconSize = aIconSizeInTwips; }
 
-#endif
+#endif	// __APGDOOR_H__
--- a/localisation/apparchitecture/inc/APGICNFL.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APGICNFL.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,6 +11,7 @@
 // Contributors:
 //
 // Description:
+// apgicnfl.h
 //
 
 #ifndef __APGICNFL_H__
@@ -27,7 +28,6 @@
 class RReadStream;
 class RWriteStream;
 
-class CApaMaskedBitmap : public CFbsBitmap
 /** An application icon.
 
 This is a bitmap and a mask, managed by the Font and Bitmap server.
@@ -38,6 +38,7 @@
 @publishedAll
 @released
 @see RApaLsSession::GetAppIcon() */
+class CApaMaskedBitmap : public CFbsBitmap
 	{
 public:
 	IMPORT_C static CApaMaskedBitmap* NewLC();
@@ -57,6 +58,7 @@
 	CFbsBitmap* iMask;
 	};
 
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 /**
 @internalComponent
 */
@@ -218,344 +220,7 @@
 	HBufC* iGroupName;
 	};
 
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-
-class CApaAppInfoFileWriter;
-
-/**
-@internalAll
-*/
-const TUid KUidInterimFormatFileForJavaMIDletInstaller={0x10208182};
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
-/**
-@internalAll
-*/
-class ForJavaMIDletInstaller
-	{
-public:
-	IMPORT_C static void CheckInterimFormatFileNotCorruptL(RFile& aInterimFormatFile);
-	IMPORT_C static void GetJavaMIDletInfoL(RFs& aFs, const TDesC& aFileName,TUint32& aJavaMIDletInfo_AmsAuthId,TUint32& aJavaMIDletInfo_MIDlet);
-	IMPORT_C static CApaAppInfoFileWriter* NewInterimFormatFileWriterLC(RFs& aFs,const TDesC& aFileName,TUid aApplicationUid,TUint32 aJavaMIDletInfo_AmsAuthId,TInt aJavaMIDletInfo_MIDlet);
-	};
-
-#endif // UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
-
-#if (((defined(SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1) || !defined(SYMBIAN_HIDE_UI_FRAMEWORKS_V1)) && !defined(SYMBIAN_REMOVE_UI_FRAMEWORKS_V1)) || defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER))
-
-#if !defined(IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER)
-// we're compiling a source file that doesn't define IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER, so give it it's default "value" of "IMPORT_C"
-#define IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER IMPORT_C
-#endif
-
-/**
-@publishedAll
-@deprecated
-*/
-#ifdef _UNICODE
-#define KUidAppInfoFile KUidAppInfoFile16
-#else
-#define KUidAppInfoFile KUidAppInfoFile8
 #endif
 
-/**
-@publishedAll
-@deprecated
-*/
-const TUid KUidAppInfoFile8={268435562};
-
-/**
-@publishedAll
-@deprecated
-*/
-const TUid KUidAppInfoFile16={0x10003A38};
-
-/**
-@internalComponent
-*/
-const TUid KUidAppInfoFileVersion2={0x101fb032};
-
-/**
-@internalComponent
-*/
-enum TAifVersion
-// The order here is important, only ever APPEND to the list
-	{
-	EAifVersionOriginal,
-	EAifVersionAddsDataType,
-	EAifVersionAddsViewData,
-	EAifVersionAddsFileOwnershipInfo
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	,EAifVersionAddsJavaMIDletInfo
-#endif
-	};
-
-class CApaAIFCaption : public CBase
-//
-// Represents a caption in an AIF during reading and writing of the file.
-/**
-@internalComponent
-*/
-	{
-public:
-	~CApaAIFCaption();
-	CApaAIFCaption();
-	void ConstructL(TLanguage aLanguage,const TDesC& aCaption);
-	static CApaAIFCaption* NewLC(TLanguage aLanguage,const TDesC& aCaption);
-	void InternalizeL(RReadStream& aStream);
-	void ExternalizeL(RWriteStream& aStream) const;
-	TLanguage Language() const;
-	TApaAppCaption Caption() const;
-public:
-	HBufC* iCaption;
-	TLanguage iLanguage;
-	};
-
-class CApaAIFViewData : public CBase
-//
-// Represents the data associated with an application view described in an AIF
-// during reading and writing of the file.
-// implementation class
-/**
-@internalComponent
-*/
-	{
-public:
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TApaAppCaption CaptionL(TLanguage aLanguage) const;
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaMaskedBitmap* IconByIndexL(TInt aIndex) const;
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TInt NumberOfIcons() const;
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TUid ViewUid() const;
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TInt ScreenMode() const;
-public:
-	~CApaAIFViewData();
-	static CApaAIFViewData* NewLC();
-	static CApaAIFViewData* NewLC(const CApaAIFViewData& aSourceData);
-	void InternalizeL(RReadStream& aStream);		
-	void ExternalizeL(RWriteStream& aStream) const;
-	void SetScreenMode(TInt aScreenMode);
-	void AddCaptionL(TLanguage aLanguage,const TDesC& aCaption);
-	void AddIconL(CApaMaskedBitmap& aIcon);
-	void AddIconIndexL(TInt aIndex);
-	void SetViewUid(TUid aUid);
-	void LoadIconsL(const TDesC& aFileName, TUint aMbmOffset);
-private:
-	CApaAIFViewData();
-	void ConstructL();
-	void ConstructL(const CApaAIFViewData& aSourceData);
-private:
-	TInt iScreenMode;
-	CArrayPtr<CApaMaskedBitmap>* iIconArray;
-	CArrayPtr<CApaAIFCaption>* iCaptionArray;
-	TUid iViewUid;
-	CArrayFixFlat<TInt>* iIconIndexArray;		// used for AIF version 2 format
-	};
-
-class CApaAppInfoFile : public CBase
-/**
-@internalComponent
-*/
-	{
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	friend class ForJavaMIDletInstaller;
-#endif
-public:
-	~CApaAppInfoFile();
-	//
-protected:
-	CApaAppInfoFile(RFs& aFs);
-	void ConstructL();
-protected:
-
-	class TCaptionHeader
-		{
-	public:
-		void InternalizeL(RReadStream& aStream);			// internalizes the header info only
-		void ExternalizeL(RWriteStream& aStream) const;		// externalizes the header info only
-	public:
-		TSwizzle<HBufC> iCaption;
-		TLanguage iLanguage;
-		};
-	class TIconHeader
-		{
-	public:
-		void InternalizeL(RReadStream& aStream);			// internalizes the header info only
-		void ExternalizeL(RWriteStream& aStream) const;		// externalizes the header info only
-	public:
-		TSwizzle<CApaMaskedBitmap> iIcon;	// Used for old AIF format Internalize
-		TInt iIconSideInPixels;
-		TSwizzle<CFbsBitmap> iIconMain;		// Used for new AIF format
-		TSwizzle<CFbsBitmap> iIconMask;		// Used for new AIF format
-		};
-	class TDataTypeHeader
-		{
-	public:
-		// header info only
-		void InternalizeL(RReadStream& aStream); 			// internalizes the header info only
-		void ExternalizeL(RWriteStream& aStream) const;		// externalizes the header info only
-	public:
-		TSwizzle<TDataType> iDataType;
-		TDataTypePriority iPriority;
-		};
-	class TViewDataHeader
-		{
-	public:
-		void InternalizeL(RReadStream& aStream);			// internalizes the header info only
-		void ExternalizeL(RWriteStream& aStream) const;		// externalizes the header info only
-	public:
-		TSwizzle<CApaAIFViewData> iViewData;
-		};
-	class TFileOwnershipInfoHeader
-		{
-	public:
-		void InternalizeL(RReadStream& aStream);			// internalizes the header info only
-		void ExternalizeL(RWriteStream& aStream) const;		// externalizes the header info only
-	public:
-		TSwizzle<HBufC> iOwnedFileName;
-		};
-protected:
-	RFs& iFs;
-	CPersistentStore* iStore;
-	CArrayFix<TCaptionHeader>* iCaptionHeaderArray;
-	CArrayFix<TIconHeader>* iIconHeaderArray;
-	CArrayFix<TDataTypeHeader>* iDataTypeHeaderArray;
-	CArrayFix<TViewDataHeader>* iViewDataHeaderArray;
-	CArrayFix<TFileOwnershipInfoHeader>* iFileOwnershipInfoHeaderArray;
-	TApaAppCapability iCapability;
-	};
-
-class CApaAppInfoFileReader : public CApaAppInfoFile
-/** Aif file reader.
-
-Aif files contain information about an application, including its icons and 
-captions.
-
-An application can get a reader for its own aif file by calling CEikApplication::OpenAppInfoFileLC(). 
-
-@publishedAll
-@deprecated */
-	{
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	friend class ForJavaMIDletInstaller;
-#endif
-public:
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static CApaAppInfoFileReader* NewLC(RFs& aFs, const TDesC& aFileName,TUid aApplicationUid=KNullUid);
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static CApaAppInfoFileReader* NewL(RFs& aFs, const TDesC& aFileName,TUid aApplicationUid=KNullUid);
-	//
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void Capability(TDes8& aInfo) const;
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TApaAppCaption CaptionL(TLanguage aLanguage);
-	
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaMaskedBitmap* CreateMaskedBitmapL(TInt aIconSideInPixels); // If there are no bitmaps in the file this method leaves with KErrNotFound
-	// Not available until ER6
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER CApaMaskedBitmap* CreateMaskedBitmapByIndexLC(TInt aIndex); // If there are no bitmaps in the file this method leaves with KErrNotFound
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER TInt NumberOfBitmaps() const;
-
-	// Not available till ER5
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void DataTypesSupportedL(CArrayFix<TDataTypeWithPriority>& aTypeList) const;
-	//
-
-	// Not available till ER6.1
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void GetViewsL(CArrayPtr<CApaAIFViewData>& aViewList) const;
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void GetOwnedFilesL(CDesCArray& aOwnedFilesList) const;
-	//	
-
-	// utility function
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static void StretchDrawL(CFbsBitmap* aSource,CFbsBitmap* aTarget,TSize aSizeInPixels);
-	//
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER ~CApaAppInfoFileReader();
-public:
-	static void GetAifFileNameL(const TDesC& aFullName,TDes& aAifName);
-private:
-	CApaAppInfoFileReader(RFs& aFs);
-	void InternalizeL(RReadStream& aStream);
-	void ConstructL(const TDesC& aFileName,TUid aUid);
-	void LoadAifFileVersionTwoL(const TDesC& aFileName, TUid aMostDerivedUid);
-	void AddIconHeadersL(const TDesC& aFileName, TInt32 aFileOffset, TInt aNumIcons);
-private:
-	HBufC* iDefaultCaption;
-	TUint8* iRomPointer;
-	TInt iMbmOffset;
-	HBufC* iAifFileName;
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	TUint32 iJavaMIDletInfo_AmsAuthId;
-	TInt iJavaMIDletInfo_MIDlet;
-#endif
-	};
-
-class CApaAppInfoFileWriter : public CApaAppInfoFile
-/**
-Aif file writer.
-
-This class writes application information, including icons and captions into the aif file.
-
-@publishedAll
-@deprecated */
-	{
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	friend class ForJavaMIDletInstaller;
-#endif
-public:
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static CApaAppInfoFileWriter* NewLC(RFs& aFs, const TDesC& aFileName,TUid aApplicationUid);
-	//
-	IMPORT_C TInt SetCapability(const TDesC8& aInfo);
-	IMPORT_C void AddCaptionL(TLanguage aLanguage,const TDesC& aCaption);
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddIconL(const TDesC& aIconFileName);
-	IMPORT_C void AddIconL(CApaMaskedBitmap& aIcon);
-	
-	// Not available till ER5
-	IMPORT_C void AddDataTypeL(const TDataTypeWithPriority& aTypePriority);
-	//
-
-	// Not available till ER6.1
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddViewL(TUid aViewUid);
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddViewL(TUid aViewUid,TInt aScreenMode);
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddViewCaptionL(TLanguage aLanguage,const TDesC& aCaption,TUid aViewUid);
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddViewIconL(CApaMaskedBitmap& aIcon,TUid aViewUid);
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void StoreViewL(TUid aViewId);
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER void AddOwnedFileL(const TDesC& aOwnedFileName);
-	//
-	
-	IMPORT_C void StoreL();
-	//
-	IMPORT_C ~CApaAppInfoFileWriter();
-private:
-	CApaAppInfoFileWriter(RFs& aFs);
-	void ExternalizeL(RWriteStream& aStream) const;
-	void ConstructL(const TDesC& aFileName,TUid aUid
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-					,TUid aMiddleUid=KUidAppInfoFile,TUint32 aJavaMIDletInfo_AmsAuthId=0,TInt aJavaMIDletInfo_MIDlet=0
-#endif
-					);
-private:
-	CStoreMap* iMap;
-#if defined(UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER)
-	TUint32 iJavaMIDletInfo_AmsAuthId;
-	TInt iJavaMIDletInfo_MIDlet;
-#endif
-	};
-
-class CApaAppCaptionFileReader : public CBase
-/**
-@internalComponent
-*/
-	{
-public:
-	CApaAppCaptionFileReader(RFs& aFs,const TDesC& iAppFileName);
-	void GetCaptionsL(TApaAppCaption& aCaption,TApaAppCaption& aShortCaption);
-private:	
-	RFs& iFs;
-	TFileName iCaptionFileName;
-	};
-
-class AppInfoFileUtils
-// Internal utilities providing helper functions for non-ROM localisation
-/**
-@internalComponent
-*/
-	{
-public: // For internal use only
-	IMPORT_C_NOT_NEEDED_FOR_JAVA_MIDLET_INSTALLER static void GetAifFileName(const RFs& aFs,TDes& aAifName);
-public:
-	static void GetAifFileNameL(const RFs& aFs,const TDesC& aFullName,TDes& aAifName);
-	};
-#endif // #if (defined(SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1) || !defined(SYMBIAN_HIDE_UI_FRAMEWORKS_V1)) && !defined(SYMBIAN_REMOVE_UI_FRAMEWORKS_V1)
-
-#endif
--- a/localisation/apparchitecture/inc/APGTASK.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APGTASK.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -22,11 +22,14 @@
 class RWsSession;
 struct TKeyEvent;
 
+//gmahe. This is used in the below enum.
 /** @internalTechnology */
 static const TInt KApaSystemEventsWithPowerMgmtCapabilityStart = 100;
+
 /** @internalTechnology */
 static const TInt KApaSystemEventsWithPowerMgmtCapabilityEnd = 199;
 
+
 /** Defines the event types that a TApaTask object can send to its window group.
 
 The events are sent by TApaTask::SendSystemEvent() and are handled by CEikAppUi::HandleSystemEventL().
--- a/localisation/apparchitecture/inc/APGWGNAM.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APGWGNAM.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/inc/APPARC.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APPARC.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,593 +16,17 @@
 #ifndef __APPARC_H__
 #define __APPARC_H__
 
-#if !defined(__E32STD_H__)
 #include <e32std.h>
-#endif
-#if !defined(__E32BASE_H__)
 #include <e32base.h>
-#endif
-#if !defined(__F32FILE_H__)
 #include <f32file.h>
-#endif
-#if !defined(__GDI_H__)
 #include <gdi.h>
-#endif
-#if !defined(__APADEF_H__)
 #include <apadef.h>
-#endif
-#if !defined(__APAID_H__)
 #include <apaid.h>
-#endif
-
-// classes defined:
-class CApaApplication;
-class CApaDocument;
-class CApaProcess;
-class MApaEmbeddedDocObserver;
-//
-// classes referenced:
-class CApaDll;
-class CApaExe;
-class RFile;
-class RReadStream;
-class RWriteStream;
-class CFileStore;
-class CPersistentStore;
-class CStreamDictionary;
-class CDictionaryStore;
-class TApaAppHolderInfo;
-class CImplementationInformation;
-class TApaApplicationFactory;
-class CApaAppHolder;
-class CApaAppServer;
-
-/** Creates an application interface object.
-
-Provides the basic roles of an application class as a factory that
-creates concrete document objects, and supplies utility functions 
-not specific to any particular instance of a document.
-
-@publishedAll
-@released
-*/
-typedef CApaApplication* (*CreateCApaApplication)();
-
-
-// CApaApplication
-
-class CApaApplication : public CBase
-// base class for applications; allows creation of documents & file stores + display of app icon and name.
-/** Defines the basic behaviour for applications.
-
-The class defines the basic twin roles of an application class as a factory 
-that creates concrete document objects, and as a supplier of utility functions 
-not specific to any particular instance of a document. For example, returning 
-an application's caption, or accessing its .ini file.
-
-The class is derived from by the UI framework and is further derived from 
-by the UI application.
-
-@publishedAll 
-@released 
-@see CEikApplication */
-	{
-public:
-	/** Completes construction of this application object.
-	
-	The function is called after an instance of a derived class has been successfully 
-	created using the ordinal 1 function of the application DLL.
-	
-	After calling this function, an application can create document objects.
-	
-	An implementation of this function is supplied by the UI framework.
-	
-	@see CEikApplication */
-	virtual void PreDocConstructL()=0; // call once before creating document
-	
-	/** Creates a document object.
-	
-	The function is called by the application process when a new document is required. 
-	The application process adds the new document to its list of documents.
-	
-	An implementation of this function is supplied by the UI framework.
-	
-	@param aProcess A pointer to the process associated with the application.
-	@return A pointer to the newly created document.
-	@see CApaProcess::AddNewDocumentL() */
-	virtual CApaDocument* CreateDocumentL(CApaProcess* aProcess)=0;
-	
-	/** Gets the application specific UID.
-	
-	The UID is used to differentiate between UI applications.
-	
-	An implementation of this function must be supplied by the UI application.
-	
-	@return The application specific UID. */
-	virtual TUid AppDllUid()const=0;
-	
-	//
-	// utility functions
-	IMPORT_C static TInt GenerateFileName(RFs& aFs,TFileName& aRootName);
-	IMPORT_C CDictionaryStore* OpenIniFileL(RFs& aFs)const;
-	
-	/** Opens the .ini file associated with the application, constructs the dictionary 
-	store object, returns a pointer to it and puts the pointer onto the cleanupstack.
-	
-	The .ini file must be created, if it does not already exist.
-	
-	An implementation of this function is supplied by the UI framework.
-	
-	@param aFs Handle to a file server session 
-	@return A pointer to the dictionary store object that represents the application's 
-	.ini file. 
-	@see CEikApplication */
-	virtual CDictionaryStore* OpenIniFileLC(RFs& aFs)const=0;
-	//
-	// enquiry functions
-	IMPORT_C virtual TFileName AppFullName()const; // returns the full path and name of the app
-	/** Returns the capabilities of the application.
-	
-	Application capability information is represented by an instance of a TApaAppCapability 
-	object wrapped in a packaged modifiable buffer descriptor.
-	
-	The function is called from a number of places within the application framework.
-	
-	An implementation of this function is supplied by the UI framework.
-	
-	@param aInfo A packaged modifiable buffer descriptor (a TPckgBuf), encapsulating 
-	a TApaAppCapability object. 
-	@see CEikApplication
-	@see TApaAppCapability
-	@see TPckgBuf */
-	virtual void Capability(TDes8& aInfo)const=0;
-	//
-	// accessor function
-	IMPORT_C TFileName DllName()const;
-	
-	IMPORT_C ~CApaApplication();
 
-	// formerly a reserved virtual, Reserved_1()
-	IMPORT_C virtual void NewAppServerL(CApaAppServer*& aAppServer);
-protected:
-	IMPORT_C CApaApplication();
-	
-	IMPORT_C virtual void CApaApplication_Reserved1();
-	IMPORT_C virtual void CApaApplication_Reserved2();
-
-private:
-	CApaAppHolder* iAppHolder;  // the CApaAppHolder that owns me
-	TUid iDtorKey;	//	TInt iSpare;
-	friend class CApaAppHolder;
-	friend class CApaProcess;
-	friend class TApaApplicationFactory; // so that it can access iDtorKey
-	
-private:
-	TInt iCApaApplication_Reserved1;
-	};
-
-class CApaDocument : public CBase
-// base class for documents; allows insertion of glass doors.
-/** Defines basic behaviour for documents.
-
-This is the base class for all documents. A document contains the data associated 
-with the application's content.
-
-The class is derived from by the UI framework and is further derived from 
-by the UI application.
+// The content of this file has been split into:
+#include <apaapp.h>
+#include <apadoc.h>
+#include <apaproc.h>
 
-@publishedAll 
-@released
-@see CEikDocument */
-	{
-public:
-	class TCapability
-	/** CApaDocument capabilities.*/
-		{
-	public:
-		IMPORT_C TCapability();
-		//
-		inline TBool CanDrawGlass()const;
-		inline TBool CanPrint()const;
-		inline void SetCanDrawGlass();
-		inline void SetCanPrint();
-		//
-	private:
-		enum {
-			ECanDrawGlass	=0x01,
-			ECanPrint		=0x02
-			};
-	private:
-		TUint iCapability;
-		TInt TCapability_Reserved1;
-		};
-	//
-public:
-	// document instantiation functions
-	/** Initialises a new, empty, document with a default setup.
-	
-	This can be the main document or an embedded document. The function is called 
-	by the UI framework when it creates a default document file.
-	
-	An implementation of this function must be supplied by the UI application.
-	
-	If initialisation fails, the document must be left in the same state as it 
-	was before the function was called. */
-	virtual void NewDocumentL()=0; // builds a new embedded or main document without loading from a store (may create the content from eg code or a template file).
-	
-	/** Creates and fully initialises a new filestore and stores the document into it, 
-	replacing any existing file of the same name.
-	
-	The function should put the pointer to the filestore object onto the cleanup 
-	stack.
-	
-	An implementation of this function is supplied by the UI framework.
-	
-	@param aFs Handle to a file server session. 
-	@param aFileName The full path name of the file to be created. 
-	@return A pointer to the newly constructed file store. 
-	@see CEikDocument */
-	virtual CFileStore* CreateFileStoreLC(RFs& aFs,const TDesC& aFileName)=0; // creates a file for a document and stores itself to that store (store should be put on cleanup stack).
-	//
-	// interaction functions
-	IMPORT_C virtual CPicture* GlassPictureL(); // Does nothing by default, override to return handle to glass picture.
-	
-	/** Starts an editing session on an embedded document.
-	
-	The function should cause the application's UI to be created and the document 
-	to be fully restored for editing.
-	
-	An implementation of this function is supplied by the UI framework.
-	
-	@param aContainer This document's observer.
-	@param aReadOnly True, the document should be opened in read-only mode and 
-	should not persist any changes made to the content. False, the document can 
-	be opened in read/write mode; this is the default. 
-	@see CEikDocument */
-	virtual void EditL(MApaEmbeddedDocObserver* aContainer,TBool aReadOnly=EFalse)=0; // Edit the document in the context of the container's environment. If aContainer is null, edit as the main document
-	
-	/** Prints the document without a need for it to be open for editing.
-	
-	Typically, this is called from a shell or a file manager type application 
-	that wants to print the document without opening it fully.
-	
-	An empty implementation of this function is supplied by the UI framework.
-	
-	The UI application can provide its own implementation.
-	
-	@param aSourceStore A reference to the store containing the document. 
-	@see CEikDocument */
-	virtual void PrintL(const CStreamStore& aSourceStore)=0; // default print parameters, assume print context supplied by environment
-	//
-	// persistence functions
-
-	/** Stores the document to the current file, commits the changes, and marks the 
-	document status as unchanged.
-	
-	Typically, the function is called by the application when it implements a 
-	"Save" type menu option in its User Interface.
-	
-	An implementation of this function is supplied by the UI framework. This is 
-	adequate for direct file store applications. Applications using a permanent 
-	file store model, need to provide their own implementation.
-	
-	If the function leaves, an implementation should ensure that any changes made 
-	to the file are rolled back, leaving the file in the state it was in before 
-	the function was called.
-	
-	@see CEikDocument */
-	virtual void SaveL()=0; // save the doc to the file in the custody of iAppProcess. This fn should be called by any "Save" menu option. store->Commit() should be called within it.	
-	/** Stores the document's content and state to the specified store, recording the 
-	identity of any headstreams created in the specified stream dictionary.
-	
-	The store must be fully constructed before this function is called.
-	
-	An empty implementation of this function is supplied by the UI framework. 
-	UI applications that need to persist any data must provide their own implementation.
-	
-	If the function leaves, an implementation should ensure that the store and 
-	the stream dictionary are returned to the state they were in before the function 
-	was called.
-	
-	@param aStore The store into which document data is to be stored. 
-	@param aStreamDic The stream dictionary into which stream IDs and associated 
-	UIDs are to be recorded. 
-	@see CEikDocument */
-	virtual void StoreL(CStreamStore& aStore,CStreamDictionary& aStreamDic) const=0; // store to aStore, lodging the headstream in aStreamDic
 	
-	/** Restores the document's content and state from data persisted in the specified 
-	store.
-	
-	An empty implementation of this function is supplied by the UI framework. 
-	UI applications that need to restore data must provide their own implementation.
-	
-	If the function leaves, an implementation should ensure that the store and 
-	the stream dictionary are returned to the state they were in before the function 
-	was called.
-	
-	@param aStore The store from which document data is to be restored. 
-	@param aStreamDic The stream dictionary containing stream IDs and associated 
-	UIDs. 
-	@see CEikDocument */
-	virtual void RestoreL(const CStreamStore& aStore,const CStreamDictionary& aStreamDic)=0; // restore from aStore using aStreamDic
-	
-	/** Restores the document to the extent that it does not need the store
-	further.
-
-	A document only keeps a pointer to a store if it implements deferred
-	loading. This also tells the document that any store pointer that it
-	might have is just about to become invalid.
-	
-	An empty implementation of this function is supplied by the UI framework. 
-	UI applications that support deferred loading or embedding should provide an
-	implementation.
-	
-	If a document supports embedding, then it should
-	propagate the DetachFromStoreL() call on to all embedded objects that
-	it contains.
-	
-	If the function leaves, the operation should be aborted
-	because the document has not successfully detached from the store.
-	Continuing with the operation may leave the document in an unsafe
-	state or cause user data to be lost.
-
-	@param aDegree The degree of detachment required. */
-	virtual void DetachFromStoreL(CPicture::TDetach /*aDegree*/=CPicture::EDetachFull) {} // supply an implementation if you support deferred loading or embedding
-
-	IMPORT_C virtual void ExternalizeL(RWriteStream& aStream)const;
-	//
-	// enquiry functions
-	
-	/** Tests whether the document is empty.
-	
-	The UI framework provides a default implementation which always returns a 
-	true value.
-	
-	The UI application can provide its own implementation. Typically, any application 
-	that has editable content should supply an implementation that acts according 
-	to the state of that content. Applications without associated document data 
-	need not supply an implementation.
-	
-	@return True if the document is empty, false otherwise. 
-	@see CEikDocument */
-	virtual TBool IsEmpty()const=0; // return ETrue if the document is empty
-	IMPORT_C virtual void ValidatePasswordL()const; // return EFalse if there *is* a password *and* the user doesn't get it right, ETrue otherwise (ie they get it right or there isn't one). Returns ETrue by default
-	
-	IMPORT_C virtual TCapability Capability()const; // returns "cant do anything" by default
-	inline CApaApplication* Application()const;
-	inline CApaProcess* Process()const;
-	
-	/** Tests whether the document has changed since it was last persisted.
-	
-	An implementation of this function is supplied by the UI framework and need 
-	not be changed by the UI application.
-	
-	@return True, if the document has changed since the last time that it was 
-	persisted, false, otherwise.
-	@see CEikDocument */
-	virtual TBool HasChanged()const =0;
-	//
-	IMPORT_C virtual ~CApaDocument();
-protected:
-	IMPORT_C CApaDocument();
-	IMPORT_C CApaDocument(CApaApplication& aApp,CApaProcess& aProcess);
-private:
-	IMPORT_C virtual void OpenFileL(CFileStore*& aFileStore, RFile& aFile); // was previously Reserved_1
-	// Reserved virtual functions...
-	IMPORT_C virtual void Reserved_2();
-protected:
-	MApaEmbeddedDocObserver* iContainer; // null unless this is an embedded object currently being edited
-private:
-	CApaApplication* iApplication; // the doc's associated application
-	CApaProcess* iApaProcess;
-	TInt iSpare;
-	};
-
-
-
-class TApaApplicationFactory
-/** Encapsulates the functionality of creating an application, whether it be via a factory function
-or an ECOM plugin. Instances of this class can usually be created implicitly when required as
-function parameters - just specify the function pointer, ECOM plugin UID or CImplementationInformation
-reference.
-
-@publishedAll
-@released
-@see CApaProcess
-@see EikStart */
-	{
-public:
-	typedef CApaApplication* (*TFunction)();
-public:
-	IMPORT_C TApaApplicationFactory();
-	IMPORT_C TApaApplicationFactory(TFunction aFunction);
-	IMPORT_C TApaApplicationFactory(const CImplementationInformation& aEmbeddedApplicationInformation);
-	IMPORT_C TApaApplicationFactory(TUid aEmbeddedApplicationUid);
-	CApaApplication* CreateApplicationL() const;
-	HBufC* AppFileNameL() const;
-	TUid AppFileUid() const;
-private:
-	enum TType
-		{
-		ETypeFunction,							// if iType is this, iData is a TFunction
-		ETypeEmbeddedApplicationInformation,	// if iType is this, iData is an ECOM CImplementationInformation
-		ETypeEmbeddedApplicationUid				// if iType is this, iData is an ECOM implementation TUid
-		};
-private:
-	static CApaApplication* CreateEmbeddedApplicationL(TUid aUid);
-	static HBufC* EmbeddedApplicationDisplayNameLC(TUid aUid);
-	static HBufC* FullAppFileNameL(const TDesC& aAppName);
-	static void CleanupImplementationArray(TAny* aImplementationArray);
-private:
-	TType iType;
-	TUint iData;
-	mutable CApaApplication* iApplication; // used to be iSpare1
-	TInt iSpare2;
-	};
-
-class CApaParentProcessMonitor;
-
-class CApaProcess : public CBase
-/** Maintains a list of documents and all of the potentially shared resources used 
-by documents.
-
-This includes the application DLLs. The class also supplies utility functions 
-that provide the basic structure for persisted document files.
-
-The class deals with the loading of application DLLs and manages the creation 
-and destruction of application (CApaApplication) objects and document (CApaDocument) 
-objects.
-
-The class is derived from by the UI framework and further derivation by the 
-UI application is not necessary unless it needs to add extra utility functions 
-for the use of applications.
-
-@publishedAll
-@released
-@see CApaApplication
-@see CApaDocument */
-	{
-public:
-	IMPORT_C static CApaProcess* NewL(const RFs& aFs);
-	IMPORT_C void ResetL();
-	//
-	// static utility functions
-	IMPORT_C static CStreamDictionary* ReadRootStreamLC(RFs& aFs,CFileStore*& aStore,const TDesC& aDocFullFileName,TUint aFileMode); // opens aDocFileName as aStore and returns the stream dictionary contained in its root stream on the cleanup stack
-	IMPORT_C static CStreamDictionary* ReadRootStreamLC(CFileStore*& aStore, const RFile& aFile);
-	IMPORT_C static void WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const CApaApplication& aApp);
-	IMPORT_C static void WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId);
-	IMPORT_C static TApaAppIdentifier ReadAppIdentifierL(const CStreamStore& aStore,const CStreamDictionary& aStreamDic);
-	IMPORT_C static void WriteAppIdentifierL(CStreamStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId);
-	//
-	// document management
-	IMPORT_C CApaDocument* AddNewDocumentL(TApaApplicationFactory aApplicationFactory);
-	IMPORT_C CApaDocument* OpenNewDocumentL(CFileStore*& aStore,CStreamDictionary*& aStreamDic,const TDesC& aDocFullFileName,TUint aFileMode); // Open a file and restore the contained document
-	IMPORT_C void DestroyDocument(CApaDocument* aDoc); // Removes a doc (identified by the object) from the list and destroys it. Also removes the app and closes the AppDll if appropriate.
-	//
-	// setter functions
-	IMPORT_C void SetMainDocument(CApaDocument* aDocument);
-	IMPORT_C void SetMainDocFileName(const TDesC& aMainDocFileName); // panics if the descriptor is too long
-	IMPORT_C void SetMainDocFileNameL(const TDesC& aMainDocFileName);
-	//
-	// accessor functions
-	IMPORT_C TPtrC MainDocFileName()const;
-	inline RFs& FsSession()const;
-	inline CApaDocument* MainDocument()const;
-	//
-	IMPORT_C ~CApaProcess();
-protected:
-	IMPORT_C CApaProcess();
-	IMPORT_C CApaProcess(const RFs& aFs);
-	IMPORT_C void ConstructL();
-	IMPORT_C void ConstructL(TProcessId aParentProcessId);
-
-	IMPORT_C virtual void CApaProcess_Reserved1();
-	IMPORT_C virtual void CApaProcess_Reserved2();
-public:
-	static TInt IdleRemoveApplications(TAny* aThis);
-	void RemoveMarkedApplications();
-private:
-	CApaDll* AddAppDllL(const TDesC& aDllFullPath);
-	CApaExe* AddAppExeL(TApaApplicationFactory aApplicationFactory);
-	void RemoveApp(CApaAppHolder* aAppHolder);
-	CApaDocument* CreateDocL(CApaApplication* aApp);
-	CApaAppHolder* FindAppInListL(const TDesC& aAppFileName,TUid aUid)const; // returns NULL if not in list
-	void DeleteAllDocs();
-	void MarkApplicationForRemoval(const CApaApplication* aApp);
-	static void DoReadRootStreamL(CStreamDictionary& aStreamDictionary, const CFileStore& aStore);
-private:
-	CArrayFixFlat<TApaAppHolderInfo>* iAppList; // array of apps in use
-	CArrayFixFlat<CApaDocument*>* iDocList; // array of documents (1 main + n embedded)
-	CApaDocument* iMainDoc;
-	HBufC* iMainDocFileName;
-	RFs iFsSession; // file server session for doc store
-	CIdle* iApplicationRemover;
-	CApaParentProcessMonitor* iMonitor;
-	TInt iCApaProcess_Reserved1;
-	};
-
-
-class MApaEmbeddedDocObserver
-/** An interface class for handling the completion of the editing of an embedded 
-document.
-
-@publishedAll 
-@released
-@see CApaDocument::EditL() */
-	{
-public:
-	/** Defines the state of the embedded document on completion of editing. */
-	enum TExitMode {
-		/** Changes to the embedded document must be saved. */
-		EKeepChanges,
-		/** Reverts back to the saved version of the embedded document, i.e. reloads the 
-		whole document. */
-		ERevertToSaved,
-		/** No changes have been made to the embedded document. */
-		ENoChanges,
-		/** The embedded document is empty. */
-		EEmpty
-		};
-public:
-	/** Implements the required behaviour when the editing of an embedded document completes.
-	
-	@param aMode Indicates the state of the document. */
-	virtual void NotifyExit(TExitMode aMode)=0; // called on completion of editing of an embedded document
-protected:
-	IMPORT_C MApaEmbeddedDocObserver();
-private:
-	IMPORT_C virtual void MApaEmbeddedDocObserver_Reserved1();
-	IMPORT_C virtual void MApaEmbeddedDocObserver_Reserved2();
-private:
-	TInt iMApaEmbeddedDocObserver_Reserved1;
-	};
-
-
-//// inlines ////
-inline CApaApplication* CApaDocument::Application()const
-/** Returns a pointer to the application that created the document.
-
-@return A pointer to the document's associated application. */
-	{ return iApplication; }
-
-inline CApaProcess* CApaDocument::Process()const
-/** Returns a pointer to the application process associated with this document.
-
-@return A pointer to the application process associated with this document. */
-	{ return iApaProcess; }
-
-inline TBool CApaDocument::TCapability::CanDrawGlass()const
-/** Tests whether the document supports being embedded as a glass door.
-
-@return True if embedding as a glass door is supported; false otherwise. */
-	{ return iCapability&ECanDrawGlass; }
-
-inline TBool CApaDocument::TCapability::CanPrint()const
-/** Tests whether the document supports being printed without using the full application 
-UI.
-
-@return True, if printing is supported; false, otherwise. */
-	{ return iCapability&ECanPrint; }
-
-inline void CApaDocument::TCapability::SetCanDrawGlass()
-/** Sets the document as being capable of being embedded as a glass door. */
-	{ iCapability = iCapability|ECanDrawGlass; }
-
-inline void CApaDocument::TCapability::SetCanPrint()
-/** Sets the document as being capable of being printed without using the full application 
-UI. */
-	{ iCapability = iCapability|ECanPrint; }
-
-inline RFs& CApaProcess::FsSession()const
-/** Returns a handle to the file server session used by this application process.
-
-@return The file server session. */
-	{ return (RFs&)iFsSession; } //lint !e1536 Exposing low access member - Kept for backward BC
-
-inline CApaDocument* CApaProcess::MainDocument()const
-/** Returns a pointer to the main document.
-
-@return A pointer to the main document. */
-	{ return iMainDoc; }
-	
-#endif
+#endif	// __APPARC_H__
--- a/localisation/apparchitecture/inc/APRuleBased.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APRuleBased.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/inc/APSSCAN.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/APSSCAN.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -22,6 +22,9 @@
 #include <f32file.h>
 #endif
 
+//This class is not moved as part of PREQ2478,as the derived class is a published Partner.
+//Also this class doesn't expose any specific functionality..
+
 class MApaFsChangeObserver
 /** An interface for notifying a file system observer when
 a change has been made to the file system.
@@ -75,6 +78,7 @@
 	RPointerArray<CApaFsNotifier> iNotifiers;
 	};
 
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 #if !defined(__WINC__)
 class REComSession;
 /** 
@@ -109,6 +113,6 @@
 	};
 
 #endif
-
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
 #endif
--- a/localisation/apparchitecture/inc/APSSERV.H	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#if !defined(__APSSERV_H__)
-#define __APSSERV_H__
-
-#if !defined(__E32BASE_H__)
-#include <e32base.h>
-#endif
-#if !defined(__F32FILE_H__)
-#include <f32file.h>
-#endif
-#if !defined(__APMFNDR_H__)
-#include <apmfndr.h>
-#endif
-#if !defined(__APRULEBASED_H__)
-#include <aprulebased.h>
-#endif
-#if !defined(__W32STD_H__)
-#include <w32std.h>
-#endif
-
-
-#include <apgaplst.h>
-
-// classes defined
-class CApaAppListServer;
-class CCustomAppInfoData;
-//
-// classes referenced
-class CApaCommandLine;
-class CApaAppList;
-class CApaAppData;
-class CApaFileRecognizer;
-class CApaAppRegFinder;
-class CApaScanningFileRecognizer;
-class CApaFsMonitor;
-class CTypeStoreManager;
-class MApaAppStarter;
-class CApaEComMonitor;
-class CBaBackupSessionWrapper;
-class CApsRecognitionCache;
-class CRecognitionResult;
-class CApaAppUnInstallMonitor;
-class CApaIconCaptionOverrides;
-class CApaIconCaptionCenrepObserver;
-//
-
-// server name
-
-/**
-KAppListServerName 
-@internalAll
-*/
-_LIT(KAppListServerName,"!AppListServer");
-
-class CApaAppListServer : public CPolicyServer, public MApaAppListObserver, public MBackupOperationObserver
-/**
-CApaAppListServer 
-@internalAll 
-*/
-	{
-public:
-	inline static CApaAppListServer* NewL(MApaAppStarter& aAppStarter) {return NewL(&aAppStarter);}
-	IMPORT_C static CApaAppListServer* NewL(MApaAppStarter* aAppStarter);
-	IMPORT_C static CApaAppListServer* Self();
-	inline CApaAppList& AppList();
-	CApaFileRecognizer* FileRecognizer();
-	inline CApaDataRecognizer* DataRecognizer();
-	inline CApaCommandLine* AppCmdLine();
-	inline void SetAppCmdLine(CApaCommandLine* aAppCmdLine);
-	inline CApaScanningRuleBasedPlugIns* RuleBasedPlugIns();
-	inline RWsSession& WsSession();
-	void RegisterNonNativeApplicationTypeL(TUid aApplicationType, const TDesC& aNativeExecutable);
-	void DeregisterNonNativeApplicationTypeL(TUid aApplicationType);
-	TPtrC NativeExecutableL(TUid aNonNativeApplicationType) const;
-	inline const CApaFsMonitor& AppFsMonitor() const {return *iAppFsMonitor;}
-	void UpdateApps();
-	IMPORT_C TCallBack RescanCallBack();
-	CRecognitionResult* RecognizeDataAsCRecognitionResultL(RFile& aFile, TInt aPreferredBufSize);
-	TDataRecognitionResult RecognizeDataL(const TDesC& aName, const TDesC8& aBuffer);
-	TDataRecognitionResult RecognizeDataL(RFile& aFile, TInt aPreferredBufSize);
-	TBool RecognizeDataL(const TDesC& aName, const TDesC8& aBuffer, const TDataType& aDataType);
-	TBool RecognizeDataL(RFile& aFile, TInt aPreferredBufSize, const TDataType& aDataType);
-	TInt DataRecognizerPreferredBufSizeL();
-	void DataTypeL(CDataTypeArray& aArray);
-
-	
-	void GetAppByDataType(const TDataType& aDataType, TUid& aUid) const;
-	void GetAppByDataType(const TDataType& aDataType, TUid aServiceUid, TUid& aUid) const;
-	TBool InsertAndStoreIfHigherL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid);
-	void InsertAndStoreDataMappingL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid, TUid aServiceUid);
-	void DeleteAndStoreDataMappingL(const TDataType& aDataType, TUid aServiceUid);
-
-    IMPORT_C void HandleStartUninstallEvent();
-	IMPORT_C void HandleEndUninstallEventL();
-#ifdef _DEBUG
-	void FlushRecognitionCache();
-	void SetLoadRecognizersOnDemandL(TBool aLoadRecognizersOnDemand);
-	void PerformOutstandingRecognizerUnloading();
-#endif //_DEBUG
-public: // from MApaAppListObserver
-	void NotifyUpdate(TInt aReason);
-	void InitialListPopulationComplete();
-    // from MBackupOperationObserver
-	void HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes);
-	//
-	IMPORT_C ~CApaAppListServer();
-	TBool NonNativeRecovery() const;
-	void SetNonNativeRecovery(TBool aValue);
-	void AddCustomAppInfoInListL(CCustomAppInfoData* aCustomAppInfo);
-	TBool LoadMbmIconsOnDemand() const;
-	void UpdateAppListByShortCaptionL();
-private:
-	CApaAppListServer(TInt aPriority);
-	void ConstructL(MApaAppStarter* aAppStarter);
-	virtual CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const;
-	static TInt AppFsNotifyWithForcedRegistrationsResetCallBack(TAny* aPtr);
-	static TInt AppFsNotifyCallBack(TAny* aPtr);
-	static TInt PlugInNotifyCallBack(TAny* aPtr);
-	static TInt TypeStoreNotifyCallback(TAny* aPtr);
-	void UpdatePlugIns();
-	void UpdateTypeStore();
-	void DoUpdateTypeStoreL();
-	void InternalizeNonNativeApplicationTypeArrayL();
-	void ExternalizeNonNativeApplicationTypeArrayL(TInt aIndexToIgnore=-1) const;
-	static void DeleteLastNonNativeApplicationType(TAny* aThis);
-	void NotifyScanComplete();
-	void DeleteCustomAppInfoList();
-	void UpdateAppListByIconCaptionOverridesL();
-	void LoadRecognizersLC();
-	void LoadRecognizersL();
-	static void RecognizerCleanup(TAny* aAny);
-	TInt UnloadRecognizers();
-	static TInt DoUnloadRecognizersCallback(TAny* aAny);
-	TInt DoUnloadRecognizers();
-	TBool CachedRecognitionResult(const TParseBase& aParser, TDataRecognitionResult& aResult) const;
-	CRecognitionResult* CachedRecognitionResult(const RFile& aFile, const TParseBase& aParser) const;
-	void CacheRecognitionResultL(const TParseBase& aParser, const TDataRecognitionResult& aResult);
-	void CacheRecognitionResultL(const RFile& aFile, const TParseBase& aParser, const TDataRecognitionResult& aResult);
-	void ConstructPathsToMonitorL();
-private:
-	enum
-		{
-		EOwnsFileRecognizer=0x01,
-		EOwnsAppList=0x02
-		};
-	struct SNonNativeApplicationType
-		{
-		TUid iTypeUid;
-		HBufC* iNativeExecutable;
-		};
-private:
-	RFs iFs;
-	TInt iRecognizerUsageCount;
-	CApaAppList* iAppList;
-	CApaScanningFileRecognizer* iScanningFileRecognizer;
-	CPeriodic* iRecognizerUnloadTimer;
-	CApaScanningDataRecognizer* iDataRecognizer;
-	CApaFsMonitor* iAppFsMonitor;
-	CApaFsMonitor* iTypeStoreMonitor;
-	CTypeStoreManager* iTypeStoreManager;
-	TTime iTypeStoreModified;
-	CBaBackupSessionWrapper* iBaBackupSessionWrapper;
-	CApaEComMonitor* iRecEcomMonitor;
-	CApaCommandLine* iAppCmdLine;
-	CApsRecognitionCache* iRecognitionCache;
-	CApaScanningRuleBasedPlugIns* iRuleBasedPlugIns;
-	RWsSession iWsSession;
-	RArray<SNonNativeApplicationType> iNonNativeApplicationTypeArray;
-	/**
-	This is ETrue if there was a power failure during the non-native applications list
-	update. It means that there is a list fo updated apps that needs to be rolled back.
-	*/
-	TBool iNonNativeRecovery;
-	RPointerArray<CCustomAppInfoData> iCustomAppList;
-	TBool iLoadRecognizersOnDemand;
-	CApaAppUnInstallMonitor* iAppUnInstallMonitor;
-	TBool iLoadMbmIconsOnDemand;
-	RBuf iNonNativeApplicationTypeRegistry;
-	CApaIconCaptionOverrides* iIconCaptionOverrides;
-	CApaIconCaptionCenrepObserver* iIconCaptionObserver;
-	};
-
-/**
-The CCustomAppInfoData class encapsulate the attributes of customised application information
-which will be used to modify short caption dynamically.
-
-@internalComponent
-*/
-class CCustomAppInfoData: public CBase
-	{
-public:
-	static CCustomAppInfoData* NewL(TUid aAppUid, TLanguage aLanguage, const TDesC& aShortCaption);
-	~CCustomAppInfoData();
-	inline TUid Uid() const;
-	inline TLanguage Language() const;
-	inline HBufC* ShortCaption() const;
-private:
-	CCustomAppInfoData(TUid aAppUid, TLanguage aLanguage);
-	void ConstructL(const TDesC& aShortCaption);
-private:
-	TUid iUid;
-	TLanguage iLanguage;
-	HBufC* iShortCaption;
-	};
-
-class TApaAppViewIconSizeData
-/**
-The TApaAppViewIconSizeData class encapsulates the attributes that specify how to identify an icon for a particular
-application and view in a certain size.
-
-@internalComponent
-*/
-	{
-public:
-	inline TApaAppViewIconSizeData();
-	inline TApaAppViewIconSizeData(TUid aAppUid,TUid aViewUid, const TSize& aSize);
-public:
-	TUid iAppUid;
-	TUid iViewUid;
-	TSize iSize;
-	};
-
-typedef TPckgBuf<TApaAppViewIconSizeData> TApaAppViewIconSizeDataBuf;
-
-//
-// inlines
-//
-
-inline TApaAppViewIconSizeData::TApaAppViewIconSizeData()
-	: iAppUid(KNullUid), iViewUid(KNullUid), iSize(TSize(0,0))
-	{}
-
-inline TApaAppViewIconSizeData::TApaAppViewIconSizeData(TUid aAppUid,TUid aViewUid, const TSize& aSize)
-	: iAppUid(aAppUid), iViewUid(aViewUid), iSize(aSize)
-	{}
-
-inline CApaAppList& CApaAppListServer::AppList()
-	{ return *iAppList; }
-
-inline CApaDataRecognizer* CApaAppListServer::DataRecognizer()
-	{ return iDataRecognizer; }
-
-/**
-@internalComponent */
-inline CApaCommandLine* CApaAppListServer::AppCmdLine()
-	{ return iAppCmdLine;}
-
-/**
-@internalComponent */	
-inline void CApaAppListServer::SetAppCmdLine(CApaCommandLine* aAppCmdLine)
-	{ iAppCmdLine=aAppCmdLine; }
-
-inline CApaScanningRuleBasedPlugIns* CApaAppListServer::RuleBasedPlugIns()
-	{ return iRuleBasedPlugIns; }
-
-inline RWsSession& CApaAppListServer::WsSession()
-		{ return iWsSession; } //lint !e1536 Exposing low access member
-
-inline TUid CCustomAppInfoData::Uid() const
-	{ return iUid; }
-	
-inline TLanguage CCustomAppInfoData::Language() const
-	{ return iLanguage; }
-	
-inline HBufC* CCustomAppInfoData::ShortCaption() const
-	{ return iShortCaption; }
-	
-#endif
--- a/localisation/apparchitecture/inc/ApLaunchChecker.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/ApLaunchChecker.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -48,7 +48,7 @@
 for instance closing some low priority applications.
 
 @publishedPartner
-@prototype
+@released
 @see TApaTaskList
 @see TUid */
 	{
@@ -82,3 +82,4 @@
 	};
 	
 #endif
+
--- a/localisation/apparchitecture/inc/ApSidChecker.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/ApSidChecker.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,6 +11,7 @@
 // Contributors:
 //
 // Description:
+// apsidchecker.h
 //
 
 #ifndef __APSIDCHECKER_H__
@@ -20,61 +21,56 @@
 #include <e32hashtab.h>
 class TDriveUnit;
 
-class CAppSidChecker : public CBase
 /** Sid checker.
 
 This is a plugin interface for checking whether a Sid should be
 included in apparc server's list of registered applications.
 
-
 An instance of the CAppSidChecker is used to verify that an application
 may be included in application list.
 There should be one implementation of this
 interface for each application type (native, java midlet, ...)
 
-
-@internalAll */
+@publishedPartner */
+class CAppSidChecker : public CBase
 	{
 public:
 	// Wraps ECom object instantiation
-	static CAppSidChecker* CheckerForAppType(const TUid &aAppTypeUid);
+	static CAppSidChecker* CheckerForAppType(TUid aAppTypeUid);
 	IMPORT_C virtual ~CAppSidChecker();
-
 public:
 	IMPORT_C virtual TBool AppRegisteredAt(const TUid& aSid, TDriveUnit aDrive) = 0;
 	IMPORT_C virtual void SetRescanCallBackL(const TCallBack &aCallback);
-
-private:
+private: // Reserved. Do not override!
 	IMPORT_C virtual void reserved1();
 	IMPORT_C virtual void reserved2();
 	IMPORT_C virtual void reserved3();
-
 private:
 	/** ECOM identifier */
 	TUid iDtor_ID_Key;
-
-	TAny* iReserved1;
-	TAny* iReserved2;
-	TAny* iReserved3;
+	TInt iSpare[3];
 	};
 
-NONSHARABLE_CLASS(RSidCheckerMap) : public RHashMap<TUint,CAppSidChecker*>
-/** Sid checker map
-
-This Maps application type uids to Instances of the CAppSidChecker interface,
-loading them if neccessary.
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 
-@internalComponent */
-	{
-public:	
-	RSidCheckerMap( TCallBack aRescanCallBack );
-	
-	CAppSidChecker& FindSidCheckerL(TUid aAppType);
-	void Close(); //lint !e1511 Member hides non-virtual member
+/** Sid checker map
+ 
+ This Maps application type uids to Instances of the CAppSidChecker interface,
+ loading them if neccessary.
+ 
+ @internalComponent */
+ NONSHARABLE_CLASS(RSidCheckerMap) : public RHashMap<TUint,CAppSidChecker*>
+ 	{
+ public:	
+ 	RSidCheckerMap( TCallBack aRescanCallBack );
+ 	
+ 	CAppSidChecker& FindSidCheckerL(TUid aAppType);
+ 	void Close(); //lint !e1511 Member hides non-virtual member
+ private:
+ 	TCallBack iRescanCallBack;
+ 	};
 
-private:
-	TCallBack iRescanCallBack;
-	};
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
+#endif	// __APSIDCHECKER_H__
 
-#endif
--- a/localisation/apparchitecture/inc/ApaServerApp.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/ApaServerApp.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,21 +11,15 @@
 // Contributors:
 //
 // Description:
+// apaserverapp.h
 //
 
-#ifndef APASERVERAPP_H
-#define APASERVERAPP_H
+#ifndef APASERVERAPP_H__
+#define APASERVERAPP_H__
 
-#include <e32base.h>
+#include <e32base.h>	// class RSessionBase
 
 
-//
-// Server application client support
-//
-
-
-
-class RApaAppServiceBase : public RSessionBase
 /** Server app connection and lifetime monitoring functionality.
 
 This is the base class for all server application service client
@@ -40,9 +34,9 @@
 @publishedPartner
 @released
 @see REikAppServiceBase */
+class RApaAppServiceBase : public RSessionBase
 	{
 public:
-
 	/** Constants defining the base IPC command ids usable by the system GUI and services. */
 	enum TApaAppServiceBaseCmdConstants
 		{
@@ -51,7 +45,6 @@
 		/** Service specific command IDs must start from this base. */
 		KServiceCmdBase = 0x200
 		};
-
 public:
 	IMPORT_C void ConnectExistingAppL(const RApaAppServiceBase& aClient);
 	IMPORT_C void ConnectExistingAppL(const RApaAppServiceBase& aClient, const TSecurityPolicy& aSecurityPolicy);
@@ -64,10 +57,8 @@
 	IMPORT_C void CancelNotifyServerExit() const;
 	
 	IMPORT_C TPtrC ServerName() const;
-
 protected:
 	IMPORT_C RApaAppServiceBase();
-
 private:
 	IMPORT_C virtual void RApaAppServiceBase_Reserved1();
 	IMPORT_C virtual void RApaAppServiceBase_Reserved2();
@@ -77,14 +68,11 @@
 	the UID for the service that they implement.
 	@return The UID of the service implemented by the derived class.*/
 	virtual TUid ServiceUid() const = 0;
-
 private:
 	void ConnectL();
 	void ConnectL(const TSecurityPolicy& aSecurityPolicy);
-
 private:
 	IMPORT_C virtual void ExtensionInterface(TUid aInterfaceId, TAny*& aImplementaion);
-	
 private:
 	HBufC* iServerName;		// owned
 	TInt iApaReserved1;
@@ -92,13 +80,13 @@
 	};
 
 
-class MApaServerAppExitObserver
 /** Interface for a class that wants to receive exit notification from
 a server application.
 
 @publishedPartner
 @released
 @see CApaServerAppExitMonitor*/
+class MApaServerAppExitObserver
 	{
 public:
 	/** Receives server exit notification.
@@ -118,7 +106,6 @@
 	};
 
 
-class CApaServerAppExitMonitor : public CActive
 /** Helper class that monitors the lifetime of a server app
 through a connected RApaAppServiceBase and reports server app exits
 to a MApaServerAppExitObserver derived class.
@@ -127,20 +114,18 @@
 @released
 @see RApaAppServiceBase
 @see MApaServerAppExitObserver */
+NONSHARABLE_CLASS(CApaServerAppExitMonitor) : public CActive
 	{
 public:
 	IMPORT_C static CApaServerAppExitMonitor* NewL(RApaAppServiceBase& aClient, MApaServerAppExitObserver& aObserver, TInt aPriority);
 	IMPORT_C static CApaServerAppExitMonitor* NewLC(RApaAppServiceBase& aClient, MApaServerAppExitObserver& aObserver, TInt aPriority);
 	IMPORT_C ~CApaServerAppExitMonitor();
-
 private:
 	CApaServerAppExitMonitor(RApaAppServiceBase& aClient, MApaServerAppExitObserver& aObserver, TInt aPriority);
-
 private:	// from CActive
 	void RunL();
 	void DoCancel();
 	TInt RunError(TInt aError);
-
 private:
 	RApaAppServiceBase& iClient;
 	MApaServerAppExitObserver& iObserver;
@@ -150,7 +135,7 @@
 //
 // Server application server support
 //
-
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 /** Panic codes that the server application framework can generate.
 @internalComponent */
 enum TApaAppServerPanic
@@ -162,9 +147,8 @@
 	/** The client has tried to connect an already connected session. */
 	EApaAppServerPanicClientAlreadyConnected
 	};
-
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
-class CApaAppServiceBase : public CSession2
 /** Base class for all service implementations.
 Provides the basic IPC and security framework that server applications
 can use to receive messages from their clients.
@@ -179,39 +163,35 @@
 @released
 @see CApaAppServer
 @see CPolicyServer */
+class CApaAppServiceBase : public CSession2
 	{
 public:
 	IMPORT_C CApaAppServiceBase();
 	IMPORT_C ~CApaAppServiceBase();
 
 	IMPORT_C virtual CPolicyServer::TCustomResult SecurityCheckL(const RMessage2& aMsg, TInt& aAction, TSecurityInfo& aMissing);
-
 public: // internal
 	void SendAppServerExitNotification(TInt aExitReason);
-
 protected: // from CSession2
 	IMPORT_C void CreateL();
 	IMPORT_C void ServiceL(const RMessage2& aMessage);
 	IMPORT_C void ServiceError(const RMessage2& aMessage,TInt aError);
 	IMPORT_C virtual TInt CountResources();
 	IMPORT_C virtual void Disconnect(const RMessage2& aMessage);
-
 private: // Server exit notification handlers
 	void NotifyServerExit(const RMessage2& aMessage);
 	void CancelNotifyServerExit(const RMessage2& aMessage) const;
-
 private:
 	IMPORT_C virtual void ExtensionInterface(TUid aInterfaceId, TAny*& aImplementaion);
 	IMPORT_C virtual void CApaAppServiceBase_Reserved1();
 	IMPORT_C virtual void CApaAppServiceBase_Reserved2();
-	
 private:
 	RMessagePtr2 iNotifyExitMsg;
 	TInt iExitReason;
 	TInt iApaReserved2;
 	};
 
-class CApaAppServer : public CPolicyServer
+
 /** Base class for all server application's servers.
 Server applications must derive from this class to implement their
 servers. These must be instantiated in an override of
@@ -223,40 +203,33 @@
 @released
 @see CEikAppServer
 @see CPolicyServer */
+class CApaAppServer : public CPolicyServer
 	{
 public:
 	IMPORT_C ~CApaAppServer();
 	IMPORT_C virtual void ConstructL(const TDesC& aFixedServerName);
-	
 	IMPORT_C void NotifyServerExit(TInt aReason);
-	
 	IMPORT_C virtual CApaAppServiceBase* CreateServiceL(TUid aServiceType) const;
 	IMPORT_C virtual TCustomResult CreateServiceSecurityCheckL(TUid aServiceType, const RMessage2& aMsg, TInt& aAction, TSecurityInfo& aMissing);
-
 protected:
 	IMPORT_C CApaAppServer();
-	
-	// From CPolicyServer
+protected:	// from CPolicyServer
 	IMPORT_C TCustomResult CustomSecurityCheckL(const RMessage2& aMsg, TInt& aAction, TSecurityInfo& aMissing);
-	// From CServer2
+protected:	// from CServer2
 	IMPORT_C virtual void DoConnect(const RMessage2& aMessage);
-	
-private:
+private: // from CServer2
 	IMPORT_C CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
-	
 private:
 	TUid ConnectMessageServiceUid(const RMessage2& aMsg) const;
-	
 private:
 	IMPORT_C virtual void ExtensionInterface(TUid aInterfaceId, TAny*& aImplementaion);
 	// Extensions
 	IMPORT_C virtual void CApaAppServer_Reserved1();
 	IMPORT_C virtual void CApaAppServer_Reserved2();
-	
 private:
 	TInt iApaReserved1;
 	TInt iApaReserved2;
 	};
 
 
-#endif
+#endif	// APASERVERAPP_H__
--- a/localisation/apparchitecture/inc/Apcaptionfile.rh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/Apcaptionfile.rh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,9 +16,6 @@
 // 
 //
 
-
-
-
 /**
  @internalComponent
 */
--- a/localisation/apparchitecture/inc/AppInfo.rh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/AppInfo.rh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,9 +25,9 @@
 */
 #define KMaxFileNameLength 256
 
-//////////////////////////////////////////////////////////////////
+//
 // DEFINITIONS FOR THE NON-LOCALISABLE REGISTRATION RESOURCE FILE
-//////////////////////////////////////////////////////////////////
+//
 
 /**
 @publishedAll
@@ -130,13 +130,39 @@
 @publishedAll
 @released
 */
+
+/* This enum is used to specify the priority at which an application can handle a particular MIME type.
+   The application with the highest priority will be considered as the default application 
+   for that particular MIME type.
+   Default association of MIME types with applications can be overridden by user settings,
+   except for applications handling data types with EDataTypePrioritySystem.
+*/
 enum
 	{
-	EDataTypePrioritySystem = 0xFFF9,
-	EDataTypePriorityHigh = 10000,
-	EDataTypePriorityNormal = 0,
-	EDataTypePriorityLow = -10000,
-	EDataTypePriorityLastResort = -20000
+	
+	EDataTypePrioritySystem = 0xFFF9, 		// This is a special priority that overrides any user settings. 
+						    		// Applications must have EWriteDeviceData capability to use this priority. 
+						 		// If not they will be downgraded to EDataTypePriorityNormal
+	
+
+	EDataTypePriorityTrustedHigh = 0xC000, 	// Trusted applications may use this priority value to ensure that their MIME type
+								// associations cannot be overridden by self signed (untrusted) applications 
+
+
+	EDataTypePriorityHigh = 10000,		// An application at EDataTypePriorityHigh will be given higher preference for a  
+								// particular data type, than applications with EDataTypePriorityNormal
+
+
+	EDataTypePriorityNormal = 0,			// An application at EDataTypePriorityNormal will be given higher preference for a  
+								// particular data type, than applications with EDataTypePriorityLow.
+	
+	
+	EDataTypePriorityLow = -10000,		// This priority means that the data type is a secondary type for that application. 
+								// For example, "text/plain" files for a web browser	
+
+
+	EDataTypePriorityLastResort = -20000	// This priority means that the data type is a last resort for that application
+								 
 	};
 
 /**
@@ -170,9 +196,9 @@
 	}
 
 
-/////////////////////////////////////////////////
+//
 // DEFINITIONS FOR THE LOCALISABLE RESOURCE FILE
-/////////////////////////////////////////////////
+//
 
 /**
 @publishedAll
@@ -229,3 +255,4 @@
 	}
 
 #endif
+
--- a/localisation/apparchitecture/inc/ServiceRegistry.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/ServiceRegistry.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -50,4 +50,4 @@
 	RApaLsSession iApaLsSession;
 	};
 
-#endif
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/inc/apaapp.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,183 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The main startup of the AppArc server
+// 
+// apaapp.h
+//
+
+#ifndef __APAAPP_H__
+#define __APAAPP_H__
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#if !defined(__APAID_PARTNER_H__)
+#include "apaidpartner.h"
+#endif
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <e32std.h>
+#include <e32base.h>
+#include <apadef.h>
+#include <apaid.h>
+
+class CApaApplication;
+class CApaDocument;
+class CApaProcess;
+class CDictionaryStore;
+class CImplementationInformation;
+class CApaAppServer;
+
+
+/** Defines the basic behaviour for applications.
+
+The class defines the basic twin roles of an application class as a factory 
+that creates concrete document objects, and as a supplier of utility functions 
+not specific to any particular instance of a document. For example, returning 
+an application's caption, or accessing its .ini file.
+
+The class is derived from by the UI framework and is further derived from 
+by the UI application.
+
+@publishedAll 
+@released 
+@see CEikApplication */
+class CApaApplication : public CBase
+// base class for applications; allows creation of documents & file stores + display of app icon and name.
+	{
+public:
+	/** Completes construction of this application object.
+	
+	The function is called after an instance of a derived class has been successfully 
+	created using the ordinal 1 function of the application DLL.
+	
+	After calling this function, an application can create document objects.
+	
+	An implementation of this function is supplied by the UI framework.
+	
+	@see CEikApplication */
+	virtual void PreDocConstructL() = 0; // call once before creating document
+	
+	/** Creates a document object.
+	
+	The function is called by the application process when a new document is required. 
+	The application process adds the new document to its list of documents.
+	
+	An implementation of this function is supplied by the UI framework.
+	
+	@param aProcess A pointer to the process associated with the application.
+	@return A pointer to the newly created document.
+	@see CApaProcess::AddNewDocumentL() */
+	virtual CApaDocument* CreateDocumentL(CApaProcess* aProcess) = 0;
+	
+	/** Gets the application specific UID.
+	
+	The UID is used to differentiate between UI applications.
+	
+	An implementation of this function must be supplied by the UI application.
+	
+	@return The application specific UID. */
+	virtual TUid AppDllUid() const = 0;
+public: // utility functions
+	IMPORT_C static TInt GenerateFileName(RFs& aFs, TFileName& aRootName);
+	IMPORT_C CDictionaryStore* OpenIniFileL(RFs& aFs) const;
+	
+	/** Opens the .ini file associated with the application, constructs the dictionary 
+	store object, returns a pointer to it and puts the pointer onto the cleanupstack.
+	
+	The .ini file must be created, if it does not already exist.
+	
+	An implementation of this function is supplied by the UI framework.
+	
+	@param aFs Handle to a file server session 
+	@return A pointer to the dictionary store object that represents the application's .ini file. 
+	@see CEikApplication */
+	virtual CDictionaryStore* OpenIniFileLC(RFs& aFs) const = 0;
+public: // enquiry functions
+	IMPORT_C virtual TFileName AppFullName() const; // returns the full path and name of the app
+	/** Returns the capabilities of the application.
+	
+	Application capability information is represented by an instance of a TApaAppCapability 
+	object wrapped in a packaged modifiable buffer descriptor.
+	
+	The function is called from a number of places within the application framework.
+	
+	An implementation of this function is supplied by the UI framework.
+	
+	@param aInfo A packaged modifiable buffer descriptor (a TPckgBuf), encapsulating 
+	a TApaAppCapability object. 
+	@see CEikApplication
+	@see TApaAppCapability
+	@see TPckgBuf */
+	virtual void Capability(TDes8& aInfo) const = 0;
+public:	// accessor function
+	IMPORT_C TFileName DllName() const;
+	IMPORT_C ~CApaApplication();
+	IMPORT_C virtual void NewAppServerL(CApaAppServer*& aAppServer);
+protected:
+	IMPORT_C CApaApplication();
+public: // internal use only
+	void SetAppFileNameRef(const RBuf& aFileName);
+private:
+	IMPORT_C virtual void CApaApplication_Reserved1();
+	IMPORT_C virtual void CApaApplication_Reserved2();
+private:
+	const RBuf* iAppFileNameRef;  // not owned
+	TUid iEComDtorKey;
+//	friend class CApaProcess;
+	friend class TApaApplicationFactory; // so that it can access iDtorKey
+private:
+	TInt iCApaApplication_Reserved1;
+	};
+
+
+/** Encapsulates the functionality of creating an application, whether it be via a factory function
+or an ECOM plugin. Instances of this class can usually be created implicitly when required as
+function parameters - just specify the function pointer, ECOM plugin UID or CImplementationInformation
+reference.
+
+@publishedAll
+@released
+@see CApaProcess
+@see EikStart */
+class TApaApplicationFactory
+	{
+public:
+	typedef CApaApplication* (*TFunction)();
+public:
+	IMPORT_C TApaApplicationFactory();
+	IMPORT_C TApaApplicationFactory(TFunction aFunction);
+	IMPORT_C TApaApplicationFactory(const CImplementationInformation& aEmbeddedApplicationInformation);
+	IMPORT_C TApaApplicationFactory(TUid aEmbeddedApplicationUid);
+	CApaApplication* CreateApplicationL() const;
+	HBufC* AppFileNameL() const;
+	TUid AppFileUid() const;
+private:
+	enum TType
+		{
+		ETypeFunction,							// if iType is this, iData is a TFunction
+		ETypeEmbeddedApplicationInformation,	// if iType is this, iData is an ECOM CImplementationInformation
+		ETypeEmbeddedApplicationUid				// if iType is this, iData is an ECOM implementation TUid
+		};
+private:
+	static CApaApplication* CreateEmbeddedApplicationL(TUid aUid);
+	static HBufC* EmbeddedApplicationDisplayNameLC(TUid aUid);
+	static HBufC* FullAppFileNameL(const TDesC& aAppName);
+	static void CleanupImplementationArray(TAny* aImplementationArray);
+private:
+	TType iType;
+	TUint iData;
+	mutable CApaApplication* iApplication; // used to be iSpare1
+	TInt iSpare2;
+	};
+
+	
+#endif	// __APAAPP_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/inc/apadoc.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,319 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The main startup of the AppArc server
+// 
+// apadoc.h
+//
+
+#ifndef __APADOC_H__
+#define __APADOC_H__
+
+#include <e32std.h>
+#include <e32base.h>
+#include <gdi.h>	// class CPicture::TDetach
+
+class CApaApplication;
+class CApaProcess;
+class MApaEmbeddedDocObserver;
+class RFile;
+class RWriteStream;
+class CFileStore;
+class CStreamDictionary;
+class RFs;
+class CPicture;
+class CStreamStore;
+
+/** Defines basic behaviour for documents.
+
+This is the base class for all documents. A document contains the data associated 
+with the application's content.
+
+The class is derived from by the UI framework and is further derived from 
+by the UI application.
+
+@publishedAll 
+@released
+@see CEikDocument */
+class CApaDocument : public CBase
+// base class for documents; allows insertion of glass doors.
+	{
+public:
+	class TCapability
+	/** CApaDocument capabilities.*/
+		{
+	public:
+		IMPORT_C TCapability();
+		inline TBool CanDrawGlass()const;
+		inline TBool CanPrint()const;
+		inline void SetCanDrawGlass();
+		inline void SetCanPrint();
+	private:
+		enum {
+			ECanDrawGlass	=0x01,
+			ECanPrint		=0x02
+			};
+	private:
+		TUint iCapability;
+		TInt TCapability_Reserved1;
+		};
+public:
+	// document instantiation functions
+
+	/** Initialises a new, empty, document with a default setup.
+	
+	This can be the main document or an embedded document. The function is called 
+	by the UI framework when it creates a default document file.
+	
+	An implementation of this function must be supplied by the UI application.
+	
+	If initialisation fails, the document must be left in the same state as it 
+	was before the function was called. */
+	virtual void NewDocumentL()=0; // builds a new embedded or main document without loading from a store (may create the content from eg code or a template file).
+	
+	/** Creates and fully initialises a new filestore and stores the document into it, 
+	replacing any existing file of the same name.
+	
+	The function should put the pointer to the filestore object onto the cleanup 
+	stack.
+	
+	An implementation of this function is supplied by the UI framework.
+	
+	@param aFs Handle to a file server session. 
+	@param aFileName The full path name of the file to be created. 
+	@return A pointer to the newly constructed file store. 
+	@see CEikDocument */
+	virtual CFileStore* CreateFileStoreLC(RFs& aFs,const TDesC& aFileName)=0; // creates a file for a document and stores itself to that store (store should be put on cleanup stack).
+	
+	// interaction functions
+	IMPORT_C virtual CPicture* GlassPictureL(); // Does nothing by default, override to return handle to glass picture.
+	
+	/** Starts an editing session on an embedded document.
+	
+	The function should cause the application's UI to be created and the document 
+	to be fully restored for editing.
+	
+	An implementation of this function is supplied by the UI framework.
+	
+	@param aContainer This document's observer.
+	@param aReadOnly True, the document should be opened in read-only mode and 
+	should not persist any changes made to the content. False, the document can 
+	be opened in read/write mode; this is the default. 
+	@see CEikDocument */
+	virtual void EditL(MApaEmbeddedDocObserver* aContainer,TBool aReadOnly=EFalse)=0; // Edit the document in the context of the container's environment. If aContainer is null, edit as the main document
+	
+	/** Prints the document without a need for it to be open for editing.
+	
+	Typically, this is called from a shell or a file manager type application 
+	that wants to print the document without opening it fully.
+	
+	An empty implementation of this function is supplied by the UI framework.
+	
+	The UI application can provide its own implementation.
+	
+	@param aSourceStore A reference to the store containing the document. 
+	@see CEikDocument */
+	virtual void PrintL(const CStreamStore& aSourceStore) = 0; // default print parameters, assume print context supplied by environment
+	//
+	// persistence functions
+
+	/** Stores the document to the current file, commits the changes, and marks the 
+	document status as unchanged.
+	
+	Typically, the function is called by the application when it implements a 
+	"Save" type menu option in its User Interface.
+	
+	An implementation of this function is supplied by the UI framework. This is 
+	adequate for direct file store applications. Applications using a permanent 
+	file store model, need to provide their own implementation.
+	
+	If the function leaves, an implementation should ensure that any changes made 
+	to the file are rolled back, leaving the file in the state it was in before 
+	the function was called.
+	
+	@see CEikDocument */
+	virtual void SaveL() = 0; // save the doc to the file in the custody of iAppProcess. This fn should be called by any "Save" menu option. store->Commit() should be called within it.	
+	/** Stores the document's content and state to the specified store, recording the 
+	identity of any headstreams created in the specified stream dictionary.
+	
+	The store must be fully constructed before this function is called.
+	
+	An empty implementation of this function is supplied by the UI framework. 
+	UI applications that need to persist any data must provide their own implementation.
+	
+	If the function leaves, an implementation should ensure that the store and 
+	the stream dictionary are returned to the state they were in before the function 
+	was called.
+	
+	@param aStore The store into which document data is to be stored. 
+	@param aStreamDic The stream dictionary into which stream IDs and associated 
+	UIDs are to be recorded. 
+	@see CEikDocument */
+	virtual void StoreL(CStreamStore& aStore,CStreamDictionary& aStreamDic) const = 0; // store to aStore, lodging the headstream in aStreamDic
+	
+	/** Restores the document's content and state from data persisted in the specified 
+	store.
+	
+	An empty implementation of this function is supplied by the UI framework. 
+	UI applications that need to restore data must provide their own implementation.
+	
+	If the function leaves, an implementation should ensure that the store and 
+	the stream dictionary are returned to the state they were in before the function 
+	was called.
+	
+	@param aStore The store from which document data is to be restored. 
+	@param aStreamDic The stream dictionary containing stream IDs and associated 
+	UIDs. 
+	@see CEikDocument */
+	virtual void RestoreL(const CStreamStore& aStore, const CStreamDictionary& aStreamDic) = 0; // restore from aStore using aStreamDic
+	
+	/** Restores the document to the extent that it does not need the store
+	further.
+
+	A document only keeps a pointer to a store if it implements deferred
+	loading. This also tells the document that any store pointer that it
+	might have is just about to become invalid.
+	
+	An empty implementation of this function is supplied by the UI framework. 
+	UI applications that support deferred loading or embedding should provide an
+	implementation.
+	
+	If a document supports embedding, then it should
+	propagate the DetachFromStoreL() call on to all embedded objects that
+	it contains.
+	
+	If the function leaves, the operation should be aborted
+	because the document has not successfully detached from the store.
+	Continuing with the operation may leave the document in an unsafe
+	state or cause user data to be lost.
+
+	@param aDegree The degree of detachment required. */
+	virtual void DetachFromStoreL(CPicture::TDetach /*aDegree*/=CPicture::EDetachFull) {} // supply an implementation if you support deferred loading or embedding
+
+	IMPORT_C virtual void ExternalizeL(RWriteStream& aStream) const;
+	//
+	// enquiry functions
+	
+	/** Tests whether the document is empty.
+	
+	The UI framework provides a default implementation which always returns a 
+	true value.
+	
+	The UI application can provide its own implementation. Typically, any application 
+	that has editable content should supply an implementation that acts according 
+	to the state of that content. Applications without associated document data 
+	need not supply an implementation.
+	
+	@return True if the document is empty, false otherwise. 
+	@see CEikDocument */
+	virtual TBool IsEmpty() const = 0; // return ETrue if the document is empty
+	IMPORT_C virtual void ValidatePasswordL() const; // return EFalse if there *is* a password *and* the user doesn't get it right, ETrue otherwise (ie they get it right or there isn't one). Returns ETrue by default
+	
+	IMPORT_C virtual TCapability Capability() const; // returns "cant do anything" by default
+	inline CApaApplication* Application() const;
+	inline CApaProcess* Process() const;
+	
+	/** Tests whether the document has changed since it was last persisted.
+	
+	An implementation of this function is supplied by the UI framework and need 
+	not be changed by the UI application.
+	
+	@return True, if the document has changed since the last time that it was 
+	persisted, false, otherwise.
+	@see CEikDocument */
+	virtual TBool HasChanged()const = 0;
+	//
+	IMPORT_C virtual ~CApaDocument();
+protected:
+	IMPORT_C CApaDocument();
+	IMPORT_C CApaDocument(CApaApplication& aApp,CApaProcess& aProcess);
+private:
+	IMPORT_C virtual void OpenFileL(CFileStore*& aFileStore, RFile& aFile); // was previously Reserved_1
+	// Reserved virtual functions...
+	IMPORT_C virtual void Reserved_2();
+protected:
+	MApaEmbeddedDocObserver* iContainer; // null unless this is an embedded object currently being edited
+private:
+	CApaApplication* iApplication; // the doc's associated application
+	CApaProcess* iApaProcess;
+	TInt iSpare;
+	};
+
+
+/** An interface class for handling the completion of the editing of an embedded 
+document.
+
+@publishedAll 
+@released
+@see CApaDocument::EditL() */
+class MApaEmbeddedDocObserver
+	{
+public:
+	/** Defines the state of the embedded document on completion of editing. */
+	enum TExitMode {
+		/** Changes to the embedded document must be saved. */
+		EKeepChanges,
+		/** Reverts back to the saved version of the embedded document, i.e. reloads the 
+		whole document. */
+		ERevertToSaved,
+		/** No changes have been made to the embedded document. */
+		ENoChanges,
+		/** The embedded document is empty. */
+		EEmpty
+		};
+public:
+	/** Implements the required behaviour when the editing of an embedded document completes.
+	
+	@param aMode Indicates the state of the document. */
+	virtual void NotifyExit(TExitMode aMode)=0; // called on completion of editing of an embedded document
+protected:
+	IMPORT_C MApaEmbeddedDocObserver();
+private:
+	IMPORT_C virtual void MApaEmbeddedDocObserver_Reserved1();
+	IMPORT_C virtual void MApaEmbeddedDocObserver_Reserved2();
+private:
+	TInt iMApaEmbeddedDocObserver_Reserved1;
+	};
+
+
+// inlines //
+
+/** Returns a pointer to the application that created the document.
+@return A pointer to the document's associated application. */
+inline CApaApplication* CApaDocument::Application() const
+	{ return iApplication; }
+
+/** Returns a pointer to the application process associated with this document.
+@return A pointer to the application process associated with this document. */
+inline CApaProcess* CApaDocument::Process()const
+	{ return iApaProcess; }
+
+/** Tests whether the document supports being embedded as a glass door.
+@return True if embedding as a glass door is supported; false otherwise. */
+inline TBool CApaDocument::TCapability::CanDrawGlass()const
+	{ return iCapability&ECanDrawGlass; }
+
+/** Tests whether the document supports being printed without using the full application UI.
+@return True, if printing is supported; false, otherwise. */
+inline TBool CApaDocument::TCapability::CanPrint()const
+	{ return iCapability&ECanPrint; }
+
+/** Sets the document as being capable of being embedded as a glass door. */
+inline void CApaDocument::TCapability::SetCanDrawGlass()
+	{ iCapability = iCapability|ECanDrawGlass; }
+
+/** Sets the document as being capable of being printed without using the full application UI. */
+inline void CApaDocument::TCapability::SetCanPrint()
+	{ iCapability = iCapability|ECanPrint; }
+	
+#endif	// __APADOC_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/inc/apaidpartner.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,102 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __APAID_PARTNER_H__
+#define __APAID_PARTNER_H__
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+#if !defined(__APADEF_H__)
+#include <apadef.h>
+#endif
+
+#include "apmstd.h"
+
+// classes referenced:
+class RReadStream;
+class RWriteStream;
+
+/**
+@internalTechnology
+@released 
+*/
+IMPORT_C TPtrC NameApaServServerThread();
+
+
+/** 
+The uid for the Open service.
+
+@publishedPartner
+@released
+*/
+const TUid KOpenServiceUid = { 0x10208DCA };
+
+/** Application service information.
+
+Encapsulates a service UID and associated opaque data.
+
+An instance of this class provides information about
+a specific implementation of the service identified by
+the encapsulated service UID.
+
+@publishedPartner
+@released
+*/
+class TApaAppServiceInfo
+	{
+public:
+	IMPORT_C TApaAppServiceInfo();
+	IMPORT_C TApaAppServiceInfo(TUid aUid, CArrayFixFlat<TDataTypeWithPriority>* aDataTypes, HBufC8* aOpaqueData);
+	IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+	IMPORT_C void InternalizeL(RReadStream& aStream);
+	IMPORT_C void Release();
+	IMPORT_C CArrayFixFlat<TDataTypeWithPriority>& DataTypes();
+	IMPORT_C TUid Uid() const;
+	IMPORT_C const CArrayFixFlat<TDataTypeWithPriority>& DataTypes() const;
+	IMPORT_C const TDesC8& OpaqueData() const;
+private:
+	TUid iUid;
+	CArrayFixFlat<TDataTypeWithPriority>* iDataTypes;
+	HBufC8* iOpaqueData;
+	TInt iTApaAppServiceInfo;
+	};
+
+/** Application service information array.
+
+Owns an array of TApaAppServiceInfo objects.
+
+@see TApaAppServiceInfo
+@publishedPartner
+@released
+*/
+class CApaAppServiceInfoArray : public CBase
+	{
+protected:
+	IMPORT_C CApaAppServiceInfoArray();
+public:
+	/** Provides access to the encapsulated array of
+	TApaAppServiceInfo objects.
+
+	@return A generic array of TApaAppServiceInfo objects. */
+	virtual TArray<TApaAppServiceInfo> Array()=0;
+private:
+	IMPORT_C virtual void CApaAppServiceInfoArray_Reserved1();
+	IMPORT_C virtual void CApaAppServiceInfoArray_Reserved2();
+private:
+	TInt iCApaAppServiceInfoArray_Reserved1;
+	};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/inc/apainternal.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,158 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __APA_INTERNAL_H__
+#define __APA_INTERNAL_H__
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+#if !defined(__F32FILE_H__)
+#include <f32file.h>
+#endif
+
+// classes referenced
+class MApaAppStarter;
+
+/** @internalComponent
+*/
+IMPORT_C TUint MinApplicationStackSize();
+
+// comand line tokens
+
+
+/**
+@internalComponent
+*/
+const TInt KApaMaxCommandLine=0x100;	
+
+/**
+@internalComponent
+*/
+typedef TBuf<KApaMaxCommandLine> TApaCommandLine;
+
+/**
+@internalComponent
+*/
+const TInt KApaMaxAppFileName=0x10;	// Length of App's filename without path or extension (not it's caption)
+
+/**
+@internalComponent
+*/
+typedef TBuf<KApaMaxAppFileName> TApaAppFileName;
+
+/**
+@internalAll
+*/
+const TUid KUidApaDoorDocStream={0x10003A35};
+
+
+/**
+@internalComponent
+@deprecated
+*/
+//const TUid KUidApaDoorDocStream8={0x10000144};
+
+/**
+@internalComponent
+*/
+//const TUid KUidApaDoorDocStream16={0x10003A35};
+
+//gmahe from APASVST.H 
+/**
+@internalTechnology
+@released
+*/
+IMPORT_C TPtrC NameApaServStartSemaphore();
+
+/**
+@internalTechnology
+@released
+*/
+IMPORT_C TInt StartupApaServer(MApaAppStarter& aAppStarter);
+
+/**
+@internalTechnology
+@released
+*/
+IMPORT_C TInt ApaServThreadStart(TAny* aUnused = NULL);
+
+
+//gmahe..from ApaServerApp.h
+
+/** Panic codes that the server application framework can generate.
+@internalComponent */
+enum TApaAppServerPanic
+	{
+	/** The IPC message ID used by the client is not recognised. */
+	EApaAppServerPanicIllegalFunction,
+	/** The client already has an active notification of server exit. */
+	EApaAppServerPanicNotifyExitActive,
+	/** The client has tried to connect an already connected session. */
+	EApaAppServerPanicClientAlreadyConnected
+	};
+
+#if 0
+class MApaFsChangeObserver
+/** An interface for notifying a file system observer when
+a change has been made to the file system.
+This interface is intended for use only by CApaFsMonitor.
+
+@internalComponent
+*/
+	{
+public:
+	virtual void FsChanged()=0;
+	};
+#endif
+
+#if !defined(__WINC__)
+
+class REComSession;
+
+/** 
+CApaEComMonitor
+
+A low priority (EPriorityIdle) active object which monitors changes 
+in the Ecom plugin.
+
+@see REComSession::NotifyOnChange()
+
+@internalAll 
+*/ 
+
+class CApaEComMonitor : public CActive
+	{
+public:
+	 ~CApaEComMonitor();
+	 static CApaEComMonitor* NewL(TCallBack aCallBack);
+	 void Start();
+private:
+	CApaEComMonitor(TCallBack aCallBack);
+	void ConstructL ();
+	static TInt TimerCallBack(TAny* aObject);
+	void DoStart();
+	void DoCancel();
+	void RunL();
+private:
+	TCallBack iCallBack;
+	CPeriodic* iEComTimer;
+	REComSession* iEComSession;
+	TBool iEComHasChanged;
+	};
+#endif //__WINC_
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/inc/apaproc.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,127 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The main startup of the AppArc server
+// 
+// apaproc.h
+//
+
+#ifndef __APAPROC_H__
+#define __APAPROC_H__
+
+#include <e32std.h>
+#include <e32base.h>
+#include <f32file.h>	// class RFs
+#include <apadef.h>
+#include <apaid.h>
+
+class CApaApplication;
+class CApaDocument;
+class RApaApplication;
+class RFile;
+class CFileStore;
+class CPersistentStore;
+class CStreamDictionary;
+class TApaApplicationFactory;
+class CStreamStore;
+
+class CApaParentProcessMonitor;
+
+/** Maintains a list of documents and all of the potentially shared resources used 
+by documents.
+
+This includes the application DLLs. The class also supplies utility functions 
+that provide the basic structure for persisted document files.
+
+The class deals with the loading of application DLLs and manages the creation 
+and destruction of application (CApaApplication) objects and document (CApaDocument) 
+objects.
+
+The class is derived from by the UI framework and further derivation by the 
+UI application is not necessary unless it needs to add extra utility functions 
+for the use of applications.
+
+@publishedAll
+@released
+@see CApaApplication
+@see CApaDocument */
+class CApaProcess : public CBase
+	{
+public:
+	IMPORT_C static CApaProcess* NewL(const RFs& aFs);
+	IMPORT_C void ResetL();
+	// static utility functions
+	IMPORT_C static CStreamDictionary* ReadRootStreamLC(RFs& aFs,CFileStore*& aStore, const TDesC& aDocFullFileName, TUint aFileMode); // opens aDocFileName as aStore and returns the stream dictionary contained in its root stream on the cleanup stack
+	IMPORT_C static CStreamDictionary* ReadRootStreamLC(CFileStore*& aStore, const RFile& aFile);
+	IMPORT_C static void WriteRootStreamL(CPersistentStore& aStore, CStreamDictionary& aStreamDic, const CApaApplication& aApp);
+	IMPORT_C static void WriteRootStreamL(CPersistentStore& aStore, CStreamDictionary& aStreamDic, const TApaAppIdentifier& aAppId);
+	IMPORT_C static TApaAppIdentifier ReadAppIdentifierL(const CStreamStore& aStore, const CStreamDictionary& aStreamDic);
+	IMPORT_C static void WriteAppIdentifierL(CStreamStore& aStore, CStreamDictionary& aStreamDic, const TApaAppIdentifier& aAppId);
+	// document management
+	IMPORT_C CApaDocument* AddNewDocumentL(TApaApplicationFactory aApplicationFactory);
+	IMPORT_C CApaDocument* OpenNewDocumentL(CFileStore*& aStore, CStreamDictionary*& aStreamDic, const TDesC& aDocFullFileName, TUint aFileMode); // Open a file and restore the contained document
+	IMPORT_C void DestroyDocument(CApaDocument* aDoc); // Removes a doc (identified by the object) from the list and destroys it. Also removes the app and closes the AppDll if appropriate.
+	// setter functions
+	IMPORT_C void SetMainDocument(CApaDocument* aDocument);
+	IMPORT_C void SetMainDocFileName(const TDesC& aMainDocFileName); // panics if the descriptor is too long
+	IMPORT_C void SetMainDocFileNameL(const TDesC& aMainDocFileName);
+	// accessor functions
+	IMPORT_C TPtrC MainDocFileName() const;
+	inline RFs& FsSession() const;
+	inline CApaDocument* MainDocument() const;
+
+	IMPORT_C ~CApaProcess();
+protected:
+	IMPORT_C CApaProcess();
+	IMPORT_C CApaProcess(const RFs& aFs);
+	IMPORT_C void ConstructL();
+	IMPORT_C void ConstructL(TProcessId aParentProcessId);
+
+	IMPORT_C virtual void CApaProcess_Reserved1();
+	IMPORT_C virtual void CApaProcess_Reserved2();
+private:
+	RApaApplication* AddAppL(TApaApplicationFactory aApplicationFactory);
+	void RemoveApp(RApaApplication* aApp);
+	CApaDocument* CreateDocL(CApaApplication* aApp);
+	RApaApplication* FindAppInListL(const TDesC& aAppFileName,TUid aUid) const; // returns NULL if not in list
+	static void DoReadRootStreamL(CStreamDictionary& aStreamDictionary, const CFileStore& aStore);
+	void DeleteAllDocs();
+	void MarkApplicationForAsyncRemoval(const CApaApplication* aApp);
+	static TInt IdleRemoveApplications(TAny* aApaProcess);
+	void RemoveMarkedApplications();
+private:
+	CArrayPtrFlat<RApaApplication>* iAppList; // array of apps in use
+	CArrayPtrFlat<CApaDocument>* iDocList; // array of documents (1 main + n embedded)
+	CApaDocument* iMainDoc;
+	HBufC* iMainDocFileName;
+	RFs iFsSession; // file server session for doc store
+	CIdle* iAsyncAppRemover;
+	CApaParentProcessMonitor* iMonitor;
+	TInt iCApaProcess_Reserved1;
+	};
+
+
+
+// inlines //
+
+/** Returns a handle to the file server session used by this application process.
+@return The file server session. */
+inline RFs& CApaProcess::FsSession()const
+	{ return (RFs&)iFsSession; } //lint !e1536 Exposing low access member - Kept for backward BC
+
+/** Returns a pointer to the main document.
+@return A pointer to the main document. */
+inline CApaDocument* CApaProcess::MainDocument()const
+	{ return iMainDoc; }
+	
+#endif	// __APAPROC_H__
--- a/localisation/apparchitecture/inc/apfmimecontentpolicy.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/apfmimecontentpolicy.h	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 * Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/inc/apgctllist.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,79 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __APGCTL_LIST_H__
+#define __APGCTL_LIST_H__
+
+#if !defined(__E32STD_H__)
+#include <e32std.h>
+#endif
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+// classes defined:
+class CApaSystemControlList;
+
+//
+// classes referenced:
+class CApaSystemControl;
+class RFs;
+//
+
+class CApaSystemControlList : public CBase
+   /** Provides a list of all available control panel applications present on the phone. 
+   This class is implemented as a linked list of CApaSystemControl. Updates the control panel application list by removing 
+   control panels that no longer exist, adding new control panels found to the control panel application list and replacing 
+   a control panel if found in an earlier drive.
+   
+   @see CApaSystemControl
+   @publishedPartner
+   @released
+   */
+   	{
+   public:
+   	IMPORT_C static CApaSystemControlList* NewL(RFs& aFs);
+   	IMPORT_C ~CApaSystemControlList();
+   	
+   	IMPORT_C TInt Count()const;
+   	IMPORT_C TInt Index(TUid aType)const;
+   	IMPORT_C CApaSystemControl* Control(TInt aIndex)const;
+   	IMPORT_C CApaSystemControl* Control(TUid aType)const;
+   	
+   	IMPORT_C void UpdateL();
+   	inline TInt UpdateCount()const;
+   private:
+   	CApaSystemControlList(RFs& aFs);
+   	CApaSystemControl* PreviousControl(const CApaSystemControl* aControl) const;
+   private:
+   	TInt iUpdateCount;
+   	RFs& iFs;
+   	CApaSystemControl* iControl;
+   	};
+   
+   
+   //
+   // inlines
+   //
+   
+   
+   inline TInt CApaSystemControlList::UpdateCount()const
+   /** Gets the number of times the control panel application list has been 
+   updated (by calling UpdateL()). It returns 1 for a newly created list.
+   
+   @return The number of times the control panel application list has been changed. */
+   	{ return iUpdateCount; }
+   
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/inc/apgicnflpartner.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,188 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __APGICNFL_PARTNER_H__
+#define __APGICNFL_PARTNER_H__
+
+#include <apadef.h>
+#include <apaid.h>
+/*
+#include <bitdev.h>
+#include <apmstd.h>
+#include <badesca.h>
+*/
+
+   class CApaResourceFileWriterBase : public CBase
+   	{
+   protected:
+   	class RBufferSink;
+   	class MDataSink
+   		{
+   	public:
+   		void WriteBufferL(const TDesC8& aBuffer);
+   		void WriteCompressedUnicodeRunL(TInt aNumberOfBytesWhenUncompressed, const TDesC8& aTextAsCompressedUnicode);
+   		void WriteInCompressedUnicodeFormatL(TInt aNumberOfBytesWhenUncompressed, const TDesC8& aData, TBool aInCompressedUnicodeRun);
+   		TInt NumberOfBytesWhenUncompressed() const;
+   		inline TBool CompressedUnicodeFormat() const {return (iBufferSinkForCompressedUnicodeFormat!=NULL);}
+   	protected:
+   		MDataSink(RBufferSink* aBufferSinkForCompressedUnicodeFormat);
+   		void FlushL(TBool aFinalFlush);
+   		void Reset(TInt& aNumberOfBytesWhenUncompressed);
+   	private:
+   		void WriteRunLengthL(TInt aRunLength);
+   	private:
+   		enum
+   			{
+   			EFlag_InCompressedUnicodeRun	=0x00000001
+   			};
+   	private:
+   		// new virtual functions
+   		virtual void DoWriteBufferL(const TDesC8& aBuffer)=0;
+   	private:
+   		TInt iNumberOfBytesWhenUncompressed;
+   		TUint iFlags;
+   		RBufferSink* iBufferSinkForCompressedUnicodeFormat; // does not own what it points to
+   		};
+   	class RBufferSink : public MDataSink
+   		{
+   	public:
+   		RBufferSink(RBufferSink* aBufferSinkForCompressedUnicodeFormat);
+   		void ConstructLC();
+   		void Close();
+   		void FlushAndGetAndResetL(TInt& aNumberOfBytesWhenUncompressed, RBuf8& aBuffer);
+   	private:
+   		// from MDataSink
+   		virtual void DoWriteBufferL(const TDesC8& aBuffer);
+   	private:
+   		RBuf8 iBuffer;
+   		};
+   protected:
+   	CApaResourceFileWriterBase();
+   	void DoGenerateFileContentsL(RBuf8& aBuffer, TUid aUid2, TUid aUid3) const;
+   	void WriteUidTypeL(MDataSink& aDataSink, TUid aUid2, TUid aUid3) const;
+   	void WriteTextL(MDataSink& aDataSink, const TDesC& aText) const;
+   	void WriteText8L(MDataSink& aDataSink, const TDesC8& aText8) const;
+   	void WriteUint8L(MDataSink& aDataSink, TUint aUint8) const;
+   	void WriteLittleEndianUint16L(MDataSink& aDataSink, TUint aUint16) const;
+   	void WriteLittleEndianUint32L(MDataSink& aDataSink, TUint aUint32) const;
+   	void WriteBufferL(MDataSink& aDataSink, const TDesC8& aBuffer) const;
+   private:
+   	static HBufC8* AsCompressedUnicodeLC(const TDesC& aUncompressedUnicode);
+   	void MainResourceInCompiledFormatLC(TInt& aMainResourceSizeInBytesWhenUncompressed, RBuf8& aBuffer, TBool aCompressedUnicodeFormat) const;
+   private:
+   	// new virtual functions
+   	virtual void MainResourceInCompiledFormatL(MDataSink& aDataSink) const=0;
+   	virtual const TDesC8* SecondResourceL(TBool& aSecondResourceInCompressedUnicodeFormat) const=0;
+   	};
+
+/**
+   Used to support the registration of non-native applications.
+   
+   The task of this class is to generate the resource files expected by the Apparc server. Applications 
+   that register other applications can use functions of this class to customise the generated resource files.
+   
+   @publishedPartner
+   @released
+   */
+   class CApaRegistrationResourceFileWriter : public CApaResourceFileWriterBase
+   	{
+   public:
+   	IMPORT_C static CApaRegistrationResourceFileWriter* NewL(TUid aAppUid, const TDesC& aAppFile, TUint aAttributes);
+   	IMPORT_C virtual ~CApaRegistrationResourceFileWriter();
+   	TUid AppUid() const;
+   	void GenerateFileContentsL(RBuf8& aBuffer) const;
+   	void SetLocalisableResourceFileL(const TDesC& aLocalisableResourceFile);
+   	IMPORT_C void SetAppIsHiddenL(TBool aAppIsHidden);
+   	IMPORT_C void SetEmbeddabilityL(TApaAppCapability::TEmbeddability aEmbeddability);
+   	IMPORT_C void SetSupportsNewFileL(TBool aSupportsNewFile);
+   	IMPORT_C void SetLaunchInBackgroundL(TBool aLaunchInBackground);
+   	IMPORT_C void SetGroupNameL(const TDesC& aGroupName);
+   	IMPORT_C void SetDefaultScreenNumberL(TInt aDefaultScreenNumber);
+   	IMPORT_C void SetOpaqueDataL(const TDesC8& aOpaqueData);
+   	IMPORT_C void AddDataTypeL(TInt aPriority, const TDesC8& aType);
+   	IMPORT_C void AddFileOwnershipInfoL(const TDesC& aFileName);
+   // Not needing to be supported for the foreseeable future:
+   //	IMPORT_C void AddServiceInfoL(TUid aServiceUid, const TDesC8* aOpaqueData);
+   //	IMPORT_C void AddServiceInfoDataTypeL(TUid aServiceUid, TInt aPriority, const TDesC8& aType);
+   private:
+   	struct SDataType // DATATYPE
+   		{
+   		TInt iPriority;
+   		HBufC8* iType;
+   		};
+   	struct SFileOwnershipInfo // FILE_OWNERSHIP_INFO
+   		{
+   		HBufC* iFileName;
+   		};
+   private:
+   	CApaRegistrationResourceFileWriter(TUid aAppUid, TUint aAttributes);
+   	void ConstructL(const TDesC& aAppFile);
+   	void WriteDataTypeL(MDataSink& aDataSink, const SDataType& aDataType) const;
+   	void WriteFileOwnershipInfoL(MDataSink& aDataSink, const SFileOwnershipInfo& aFileOwnershipInfo) const;
+   	// from CApaResourceFileWriterBase
+   	virtual void MainResourceInCompiledFormatL(MDataSink& aDataSink) const;
+   	virtual const TDesC8* SecondResourceL(TBool& aSecondResourceInCompressedUnicodeFormat) const;
+   private:
+   	TUid iAppUid;
+   	HBufC* iAppFile;
+   	TUint iAttributes;
+   	HBufC* iLocalisableResourceFile;
+   	TBool iAppIsHidden;
+   	TApaAppCapability::TEmbeddability iEmbeddability;
+   	TBool iSupportsNewFile;
+   	TBool iLaunchInBackground;
+   	HBufC* iGroupName;
+   	TInt iDefaultScreenNumber;
+   	HBufC8* iOpaqueData;
+   	RArray<SDataType> iDataTypeList;
+   	RArray<SFileOwnershipInfo> iFileOwnershipList;
+   	};
+
+/**
+   @internalAll
+   */
+   class CApaLocalisableResourceFileWriter : public CApaResourceFileWriterBase
+   	{
+   public:
+   	IMPORT_C static CApaLocalisableResourceFileWriter* NewL(const TDesC& aShortCaption, const TDesC& aCaption, TInt aNumberOfIcons, const TDesC& aGroupName);
+   	IMPORT_C virtual ~CApaLocalisableResourceFileWriter();
+   	void GenerateFileContentsL(RBuf8& aBuffer) const;
+   	void SetIconFileL(const TDesC& aIconFile);
+   // Not needing to be supported for the foreseeable future:
+   //	IMPORT_C void AddViewDataL(TUid aViewUid, TInt aScreenMode, const TDesC& aCaption, TInt aNumberOfIcons, const TDesC& aIconFile);
+   private:
+   	struct SCaptionAndIconInfo // CAPTION_AND_ICON_INFO
+   		{
+   		HBufC* iCaption;
+   		TInt iNumberOfIcons;
+   		HBufC* iIconFile;
+   		};
+   private:
+   	CApaLocalisableResourceFileWriter(TInt aNumberOfIcons);
+   	void ConstructL(const TDesC& aShortCaption, const TDesC& aCaption, const TDesC& aGroupName);
+   	void WriteCaptionAndIconInfoL(MDataSink& aDataSink, const SCaptionAndIconInfo& aCaptionAndIcon) const;
+   	// from CApaResourceFileWriterBase
+   	virtual void MainResourceInCompiledFormatL(MDataSink& aDataSink) const;
+   	virtual const TDesC8* SecondResourceL(TBool& aSecondResourceInCompressedUnicodeFormat) const;
+   private:
+   	HBufC* iShortCaption;
+   	SCaptionAndIconInfo iCaptionAndIcon;
+   	HBufC* iGroupName;
+   	};
+
+
+
+#endif
+
--- a/localisation/apparchitecture/inc/apgnotif.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/inc/apgnotif.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -21,7 +21,7 @@
 
 class MApaAppListServObserver
 /**
-MApaAppListServObserver
+MApaAppListServObserver is interface to get application list change notifications.
 
 @publishedPartner
 @released
@@ -44,9 +44,45 @@
 
 
 class CApaAppListNotifier : public CActive
-/** An application list change notifier. 
-
-It provides notification whenever an application is added or deleted.
+/** 
+ * CApaAppListNotifier is an active object which notifies the client when an application list is changed.
+ * Provides notification when applications are added, deleted or if the localisable data of an application
+ * is modified.
+ * 
+ * Clients can create instance of this class using NewL function which takes MApaAppListServObserver
+ * observer as one of the parameters. When application list is changed, CApaAppListNotifier will call 
+ * HandleAppListEvent function of the provided observer. 
+ * 
+ * 
+ * Example:
+ * 
+ * //Implementation of observer interface
+ * class CAppListChangeObserver:public CBase, public MApaAppListServObserver
+ * {
+ * public:
+ *     void HandleAppListEvent(TInt aEvent);    
+ *     CApaAppListNotifier* iNotifier;    
+ * };
+ * 
+ * //This function is called by CApaAppListNotifier when an application list is changed 
+ * void CAppListChangeObserver::HandleAppListEvent(TInt aEvent)
+ * {
+ *     //Handle application list change event
+ *     ...
+ * }
+ * 
+ * 
+ * TInt E32Main()
+ * {
+ * ....
+ * 
+ * CAppListChangeObserver* obs=new(ELeave) CAppListChangeObserver();
+ * CApaAppListNotifier *notif=CApaAppListNotifier::NewL(obs, CActive::EPriorityStandard);
+ * 
+ * ....
+ * }
+ * 
+ * 
 
 @publishedPartner
 @released */
@@ -57,6 +93,7 @@
 private: // from CActive
 	void DoCancel();
 	void RunL();
+    TInt RunError(TInt aError);	
 private:
 	CApaAppListNotifier(MApaAppListServObserver& aObserver, TPriority aPriority);
 	void ConstructL();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/inc/apsidcheckermap.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,44 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// apsidchecker.h
+//
+
+#ifndef __APSIDCHECKERMAP_H__
+#define __APSIDCHECKERMAP_H__
+
+#include <e32base.h>
+#include <e32hashtab.h>
+
+class CAppSidChecker;
+
+/** Sid checker map
+
+This Maps application type uids to Instances of the CAppSidChecker interface,
+loading them if neccessary.
+
+@internalComponent */
+NONSHARABLE_CLASS(RSidCheckerMap) : public RHashMap<TUint,CAppSidChecker*>
+	{
+public:	
+	RSidCheckerMap( TCallBack aRescanCallBack );
+	
+	CAppSidChecker& FindSidCheckerL(TUid aAppType);
+	void Close(); //lint !e1511 Member hides non-virtual member
+private:
+	TCallBack iRescanCallBack;
+	};
+
+
+#endif	// __APSIDCHECKERMAP_H__
+
Binary file localisation/apparchitecture/tdata/102081ce_reg.rsc has changed
Binary file localisation/apparchitecture/tdata/102081cf_reg.rsc has changed
--- a/localisation/apparchitecture/tdata/1028583d.txt	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-cenrep
-Version 1
-
-[defaultmeta]
-0
-
-[Platsec]
-cap_rd=alwayspass  
-cap_wr=WriteDeviceData
-
-
-[Main]
-
-# EFDemoApp
-# app UID (??FFFFFF)
-0x00FFFFFF int 0x2001B674
-# English (language 0001)
-0x00000001 string "CRTC UK"
-0x00010001 string "CRTstCap UK"
-0x00020001 int 2
-0x00030001 string "z:\\resource\\apps\\ticoncapoverride.mbm"
-# French (language 0002)
-0x00000002 string "CRTC FR"
-0x00010002 string "CRTstCap FR"
-0x00020002 int 2
-0x00030002 string "z:\\resource\\apps\\svg_icon.svg"
Binary file localisation/apparchitecture/tdata/AAA_reg.Rsc has changed
--- a/localisation/apparchitecture/tdata/CONTACT.NNA3	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-BEGIN:VCARD
-VERSION:2.1
-REV:20010827T134249Z
-UID;ENCODING=QUOTED-PRINTABLE:01c00f98091b8820-00e06a35e115bc80-7
-N;ENCODING=QUOTED-PRINTABLE:Jones;Tom;;King=20of=20Cool;
-ADR;WORK;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:;;PO=C2=A0BOX=209214;London;;;
-ORG;ENCODING=QUOTED-PRINTABLE:Gut=20Records=20=20inc.;
-TITLE:Singer
-TEL;WORK;VOICE;ENCODING=QUOTED-PRINTABLE:66335=20=20209
-EMAIL;INTERNET;WORK;ENCODING=QUOTED-PRINTABLE:tom.jones@anonymous.com
-URL;WORK;ENCODING=QUOTED-PRINTABLE:www.tomjonesistheman.com
-LOGO;ENCODING=BASE64:
-    /9j/4AAQSkZJRgABAQAAjQDlAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEj
-    JR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARES
-    EhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj
-    Y2NjY2NjY2NjY2NjY2P/wAARCADlAI0DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA
-    AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
-    MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6
-    Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ
-    mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx
-    8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
-    AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
-    YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
-    anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE
-    xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp
-    BDEyktFGAPYU4wxFl/dqQOwXFKBzg9Pen5Cndk8d8/0ry0292dVhDBGu0BAOc9OK
-    eUUEcDHfNIBnJUnPr14//VTkXIyDjnByO1aJsLIcFjJ+6vQdPXFPXYqcBT7kU0FU
-    +bfnjByPWnKfXjH+ev6VUWQ0S4XA4wQeT+HWgqMgbR06dPWgk7ecg+uOlCgb85GM
-    DGK1WhAo5UcnHqT1pQcYAHHpRx1wWI4/WkyMggfkaEIUcnp0PPH1qKWZIo2YsBj1
-    NE0gRSx4AHU8fnXmfiPxDcX99Lb2jsIgxUbT19+KTbbtEaS3Zu3vjiGKZ40G4A4y
-    B1rKk8czM2BFhc9zn/P/ANesyy0lWO6T943fJ4FXn021CfNAOuDWDnSi7O7OqOHq
-    SV1ZHQ6P4rhvIwJHxJ/c/wA/hXTxyLKgKAjI7149fWj2bedA52Z6eldl4R1z7RH5
-    M7kyZ4J75rVe770XoYyi0+WWjOzBJJPQ4zTeeRjnPc96QMDk8A44IFR3Myw7C3G9
-    go/EGtXoZorjC7dwGcc4NLgDA4wfSoi3Xnoev4U8EZHzfXua89M3uSYyDwcE54pd
-    2So5x0H/ANamhuenIxx607IwCMEfStUDHkrnC9OnTrUife46dST/APrpiEYOTgbc
-    A05WU55x7/0rSL11M5Ej9Buz68n8/wDPvQvyglRgk9uaTeWADd+tLyzcH8D3rQgc
-    AMcY+tBYYx+YpqgqcADikcBRnbnA7dKp2FYxfFd8LHR5HdN4kG3H1z/jXnekWJn3
-    TMcHovFdH47vBJLBYRly+dzZ7Z4xio7JUs7EHbnjAJXP+e1c05uENN2dNCmpS12R
-    EkUsMi4VScYJUcH60+e4VVK4y3oRxRCjvIZHyGxgAdqmt0ZwBnc4yD/n8K5G9bs9
-    C1jLuvnXDxhcjkDkVi6dP9kvVffgK3X15rf1COOOBio5HBGM571zEaGW4VV5LMBx
-    XoYazi+x5+J0ku57TYyG4tY5SAGZQeOxNY3jS4+y6bay7tuLpT+jVsWEZjtIkYEF
-    UA59cCuf8fo8ujWyc5N2gx/wF6uK91Iwd7m0GCnaAM4pFxjlgPpTUJwAQRzgc56U
-    oIGWrzzUdlhnP5YpythcnqOQKiJBwe3XNPUcEkZYHpmqi2FyQccnA5qRZATgH2/z
-    +lQbmOzAyOmMdaljPQlcZHXH+f8AIrSMgZMCPlIXI7YqQkqpBJ6dR2qNSCvGSP59
-    +aepOe2c9j9a6IbGTHY+U9c8/nUTkkMuRjPNSA4HBx9f51CzFsgdQOh/xpzsKO55
-    3rEgu/FsgZW+QgAN7VbuLgQRLwGG4cHvWVe3bXfiW5maPaRlcEehxWmwjuMZJ46V
-    y19JRud+GXussQ6nvhImCNGTtK7QCB/n+VSQqqbnRuMtgnnNUp7WPYqpw3uKsIyw
-    WuwcADk+oFYyaN+W2xkaoxYMgBJbI6dKo+G9Pe91qKP5lEZ3Mw4xitgzxRpLcyjp
-    8qHuD3Na/g3T5IxJqM3JuP4e4Gf/AK1dVGTjFqxyYlJzuzrlO1doPGfYdqyfEFk1
-    /DYpuYBLoOWHGAFatVcgDgY9uOeP8aa4HykqccZHtgVtze7ZI5ktdSiuMAAYJ7Yo
-    ++wyo47U0vkrtyQR/SmliTGQOPzFcBbFVwTgjaABxjoakDbQCSOTUa5Gcrz7d6eO
-    QBn8aLiW5KM8gH3pyMq8MBz78VRu7qK0hMkrYHseT7VlSardycKFiUe2Tn+VVz21
-    NYxlPY6hZADwAvHHPSneaD3B4xgn61yY1C8AP77Of9kf4Uialejgykc9lFUsR0RT
-    w0tzrTNwcnIz6e3+fzqKe4RYjkqo9SQKo6i7x6QJEYiQhcsOOtc0Yp7l9sszy5Od
-    uetXVqOD5SKVHnV0VNRti2qzzIVcOcjbzkVPbMqgEjJ9D1/z3/8A1VZaH5thKksR
-    +NRy2+2RlfBORnPeuV1Obc7qcIwVkNkkVSS2QCeBjuPSs7Ur4xRPzkE8AD9KtPak
-    vngLnt6Vny6bc6jeRWsKEjfhmHStaMYuWpFeTjC6F8L6LNq9158jgQxOCQf4j6AV
-    6eiiMBRjHt/npxWdomlW+kWhgt8tk5JY5J/zzWiuBjnAz37Cuty5nc861lYcWA5A
-    4IPHrQW+fBz6dOv+frTQBjI4HuOCaFKZGMDnqfT/ABouFjNXaCR3PGTmoclJDtJw
-    oOT6/wCeaaxAL4cdcY/r/OkK5KqrBwckdsD+hzXCtTSxKJBuIYLhsDIByf8AOake
-    QKhK4JCnP61VBUo2QMgEfT6VUv7grBsyNz8fXP8AhT6jUW2VJ5muZ954RSdgP86l
-    gT5WJUY96gj+QjHAHHFPaRzkZ6+neob6ndGPKrIimYRhjgkDiqvzyyn5mUHIzjGK
-    tMpJyf1qxpVg9xfKB/qlO5iR70U43dupUpKMbs3dRiI0Py9udiLn9K5oOynKHqOm
-    eorrdwnMsRwFZSBzXHSRskxQcFCQR6cV0YnWSkjnwjummW7aaNmbeMsSMEjpSo5a
-    Vl4AduTVGVmj2lcnn5qLe7XzSxwDjAzXLyu10dLj1Ljx7pti4IzjirGn6gmmTNFN
-    GfLZs7x2J9faqEd2iuDgnnninTSRzgZxknHTNVBuLuyZ07qz2OxW4jeMGMqVJyGB
-    60/OBweMYA61lSNHpum2+1C3AGM/ias299HdqDG2QB0PBH4V2c3K+Vnnct9VsWyd
-    oJPTsM04EAHBBPtTFwVH8sZzVdpmFxEgACsjHpzkbf8AE09twMwsCCc5bnGBj8TQ
-    xdABu6enbP8AWmH7xGBnPajJB59emO9ciNbBKQOcjHBzmsjzGkkaQkkAYAJ4z3q3
-    e3JWF1QfM3yg8cds1RhVSigZxjHHGab0VzWlHUnVSTgDPeluf3U8ceMZUk9+at2k
-    IC72APGR7VWmSW51dYoRnC49h65qFFvRG19SxZWzXRMakDd1YjpW0FhtIvIhAweW
-    bOM/j+VRx7bKAQRnLnhiOpNMJLKDjOO4PH/1v511xjyK3U4qk3N+QbSJM+Z1/i2+
-    9R6jYreBrm2A83+NR/F71IvJXnA5GRxUkIdCzDHJJyCf8mj4laRKlKLujmnQAHI2
-    noeKrpArEkepzxXWXa2tyAZ1wxx+8TrVR9GjP+qukP8AvCsXRkvh1OuGJjb3tDAE
-    Gcg5AHSrVhZvPcpEDlc5PsO5rWTQ1GPNuVxnog5P41chMFonl2yjJ+8xOSaqFJ3v
-    PYKmJurRKniVwsVsAMgseR26CsOGSWBxJC+18dP8fzra1+MPpsMoGRG+CfrWHC2V
-    weuKWIfv3HhreyN3TtXE7eRcYWQ9Dnr7fWpdbkeKBJoG2yLJgH2wa5+ZOAwI3LyD
-    6VqXFwbjR4XYYbeAQT7Gs1UvEUqaU00tB0jEnIXIH8I9PamjALHfn2NNJYt8pHHG
-    Ce9QXEuz7nBHQqRyR600rmaRn3sxluVT+8Ov14FWLONsxqwGe4/z7VSt2ae6d85H
-    IB9ga3LWIquT1PoadTR2NYP3bkrsFDE545pdMcIJplX94eBx+lVbqTACYHqauWUf
-    l2oJO3dk/U9qqirO5lV0hr1H7vlLbiWbqP8AP1NWFzgdBg5GOmKrllEp4wAcHI49
-    /wDPtRG5OCX6nHU5roszmepZUEhskjoOQPrSg7hyM+uDnH1qu12ATk/L07fhUX2j
-    5cHJJ4OBnNCjYViZ3DnkA9gueeOn86l3/Lsz94YwQeveqXmb5SxbIAwOfzxUiknC
-    cNjrjnH+faiwyYL8riPCgrzikZhG/B5B+UnOP8/59akZtqkhSoJzkdf1prDcWUq2
-    48j/AD/9ela4kx6xC7sZocZ3KSAT/nmuVjBSXbnI/wA4rrLJWinwcbe3TmuU1FfK
-    v2i4VmfB/Osq0bpHZhZK8l0JHOEY+gNTQsRo8a9hMeQeD96qlxIAhAqxMNmiWsYU
-    jfKAWPbg8Y/E/lWEY6G8+l+5PK+2Ncbgc55P+cVm387YKdWbjPt61dmJQkAhs9+v
-    SsyFklvS4Bxn5f8AGto6amD10LljD5aKDnJ5Oa1wwKfezjviqUTKFbP3uNp70Cdl
-    jKjj3rPWWppKOlkU9VvjCUYANlhhSeuK6XcGt4pAQoYA4xxyK4i/cz3WQcIox65r
-    tLLL6db7lU5QFsdOldUIKMDjrSvIVguMbcZzyRjuMVGVVuoAHoO1TLGSdxwQc546
-    /hTWVeNq9G6c8gUX0IVh72qbcgfN0PfmqksKqxGBnuKuRKCD8xOMD5efao54icnb
-    kjrnnPPr3ouwVtmU0UknPTPFOwygnHyjvU0asDkKGxn8f8f8+tPY5Unp1yM4OPTN
-    Fx2tsENxu4Jx+WB/nmjci9RnI4BUenWo1jVSHXAJ79M04orZyPm9PXj0xT0YtiW1
-    JSVDjjd7GufulFzqU92Sdm47R61rX5Wzt9qH95L8qn09TWfx5OM8DkDNYV5WVkdO
-    Hjd85k3JxIR2robyJRpUIwcJID9TgisG7ULcoeACQf1rob10+wpGeobcMHr6/lkV
-    lJ+6jab99GLeS7UbOFO3AC8VHYRhYg5wWbnp0qvqLZdI1JGTkjHStCBNiYIGe5He
-    tJu0LdyaSvJsk6cCmXMgSAAHDHjk96eKrSDzbsLkfIM/5/Kopq5pN2RG0AO4dFJA
-    4X8q6myAFhCMDaFH0rBZSEzjAyec9a37RUW1ij3FgEHIzg10x1TOCr0Bxg8noWHP
-    UimHKsAqknqO+akyWw2M98ep6/yAqNcg7SeMA9cVTRKYqy44Xg4zkZ6/nTZ5C5Jw
-    O3vil2gfIemck4P8u1Qv+8wDt4Oc4xSSRRNG6hCpJB9c9KV1XaF+U59Bmo0UZPKg
-    Y/yKNgDYBJzz9fpT66iJNvl4KjgjjPf/ABqSKTbEzOVCj5vQAd6bEgwoIGSOOORV
-    bWLh7XTppIjh+EDbQcfnTSJeuhmXV8l7euyY2R/IpBznvn9Km2loix7jkkj61haY
-    xWRlOMZ6Ae1bm7fCeBwB/hXHU+NnowVoKxl32N656Yrac+baBlA2gYyT0/zisLUn
-    AIH0H61sRktpwOCB154PWl9lCn8SMG5ObxV4yE+bHrzWsjB1BxWPcjOpNjONvBIx
-    WuoCJkgDjmtKi0SJo7MczBQSTVaGQHfJnG4k1XknaaTYBzkjjsMf/rqbZhVj4245
-    Hr/n+tNLl3Ccr7BczYQjcN54zmtjS751tUWVdxAxkDBFZUUMdyzIwwF4J9K04A0Y
-    yBuHTK9RXdh6Xu3Z5mKq2fKjVWSKVciTaWOetMaM/dVgR6A+9V0C7AQevoeKlWIF
-    sjPA6k9a0lRizGGIb0sKFbLxkHA6fnUJLmUj5iwwcmrfPTJ61E21XHLAngBRWXsG
-    upuq6HBchQ3DKQBzwef8/lTdrFgM+mP8/hUkcoQjccqT360NcwgHcjAUvZSTuJVo
-    skCjaCQfpWB4nYyTwxBiFAywFak2oxxqWQM2B3rEurhr2RpWGw5wB7AVlVTgtTWj
-    aUrmTbtsmGenbnrWsJgV2qeccgGs6cD7RxwQOcVIpwM7uOuM9a5Zrm1PTpJOJFfK
-    dwzJnJySK2d+bJcZ64+tc7ev88ZGT8+M55rZlDpp6lgQAwPJ5PBzTnF8qI0dQzo/
-    3uoynI7Lu7/55q9dy7ICvRiv5D3qnaHGoygkA56flVy9iMkRKjJxj9a0klzK5nBv
-    kbRVsoQ2XPJ7CrknyBvm7YGahs32oVfjBxjHSpkYS3KockDlvp2pqPPOxE2oQuXN
-    OgCxbZT+8Y56etaCxMhxyVPrTY4/k2OAVzwfepUBBIcs4x1P+FeskoqyPCc+eV+4
-    LCquWwQT1IqQRnPB4oGSOpGacOue9JlRSF5A7GmbDvDgfNjGA3FSUdeaVirkDBmb
-    JTPTPtSOeMFPmPOO9TnOe9M2q3JGfqKAu+hm3CSOjZjA44GazAv2bMROWH4VvXEf
-    mNgKfwNYd1DI146qpJZcYHPNcuJinC514RuM+Uzt58+Qt94e34VG0/GSCQO9SXOn
-    3lqztJCQGGeKhhjKwbSecYrltHc9KMnsilPceYykZPOQPStW61NbjbGvKRqCSO1Y
-    ToRPs6EH8q1YLYpbGRj8zkgAdMVtUhFJMxUm52RasLRrq8kKDCseCB1P/wCquoTT
-    44tgZgTxuz2qhoE1vbx/MVEhJ3ZOK0mtw8pnjnVkYfdNck5Ns1s46Mw9etWs5hJG
-    u1W4z0zTtMhUx+Y5+ZxkmrWrT+fZeWUDdAW9MVLZwAWqKRgKMcDvmu3Bxv7zODGV
-    HGPIXAp/hIxz9CalUHrQq07HGDXcedGPUQIM5wM+velHH/66OAe/NAzUmlwNJuIX
-    JHPoKdRRYEyISE9EP50pMp+6oH1NPxSHJJAxSHqV287JLFOOfYUWiIIhKsYMrNhS
-    R/n1p8gJUqeMjGcVTjnaO4ZZZdgRcIFXrnjNcuKT5EdOEac2XWt553ZbhQUIxkkZ
-    H4VyOsQizuWUEqMZPoDXSNdIANt3Ifqlc9rSC5uUQSSMMbmc9h3rgpazsek01Ftm
-    baW8t1Or7cK7fKR1wK2dVtUstMRhhWLgE/gauaFZZQSsMM4wueSq0eJ0W4tIo1JV
-    BICxHYbTmuhzUp26GK91eZli4kg3BQCM5xirkWsxKAstspPdlYg1HPHkAtyqg5B6
-    1ntHnhep5wayilI6JPQ0oZRqGogxqVgUcrnAzXQxRgDqQP0rN0a0WCDB5cnca1kG
-    OnSvVpwUIJI8OtP2tS72FVcUp/PFFLVkWsrCH6UdM0c1VvbnyoiVGTjODSK1ZZVw
-    3SlqrYzCWJWxgkcj0NWvShO4bC03H/1qWlPSgHuRuAVOeg54rm9VuHh1SPYxwQQw
-    zgEZrpWODz+dctrQ3aiiRjc7dAB15rGqrxsb0NJpkov2vGEcMU7MOWJIwtNjga5n
-    8o87sNIfYZwBWtatDa6YViVd+dpJ4JOBmo7VRFC0r/ec5PGMDNee0obHoqbmrPYn
-    aRba3OFGR6dfwrNaSTUHW2eIoN25j2I9KGle8vvLUhVXk/4VciiETPcMPl+6PpkV
-    OqZVls9zOuZFKsvODx6VXs1827AI+VOSPepLtyYyxB+uBU2lxYgLDndzXVhoXldn
-    Piqtqb8zagG1R3HSrCdBx+OKrR5LbskMR/n+lWE6ZxgV6DZ49NXY/PNJ+H40hYAH
-    GTUU0wVSDjBz1FSbaIdPII1yec1izSGWXYOVzzzyTU91OzIcDBJ4wKgjUrGzEZY9
-    OOnvXNiavKuVbnThaXPLnexb0sbBMemW4x9K0+3T86y9Oyyuc8s2Rg/TtWkh4Gev
-    vWtP4Fcio/fdh4/WjoaAMdKWtDG5FIcH2HJOaxfkW9nu8R74+FPfJH9OTW5IcKxO
-    AMVzMn7yX7OdwO8yEnv0A/lWNVpR1NqKcpaGpCxuVzIqqBjjH4/zqDVJ/LTCHB7A
-    0+GXy1Ib6j3rM1Qz3EpEcbMB8xIxXnJOUj1LcmrH2ziAq4PzN0PXqP8A9VX726J0
-    tSCN4fGPr/k1maWvn3CtJuVk+UrjqPeresRs9uRbxEgSZwFxxg/pTatNIlTTV2T3
-    eh3cyYRUB+v+fWrcem3EUUaBRkccNWwpwrfxE9KkBy4wQPQ1pTquCtE56kVU+Izo
-    7aZcFwc5xjNTG2lOMbSccZNXSwJAydo9eKXdkg9wPXFbfWJGSw0Ck9nMMkKAT/eJ
-    qBtJu5DuUx4zx8xyK10OWwMdOuacCSvQAfyqlWkyXQijC/sG5LBi0OM8HcfTr0pZ
-    NCupI2DNHvPQ5P8AhXRcgdRwfr/n/P0pOrDr0+lZSpqbvI2jUcI8sTAttEvIVz5s
-    OT7tz39Kux6dOBy6Z9MmtQdB3PXjpRznv9e1bqbSsYuKbuZ39nzZxlPzNJ9gl/vJ
-    j8f8K0chTzz3HFZGsa7a6bG4mcbv7vU0nVaBUkwmsX8tl8yIcEfePp9KxTpM6zPK
-    bm3JZsY3HoO3SuWn8QaleXLmBm2k8AdBVZ31ZiWZpG7n5qznzzVpNI2prkd4ps7t
-    dFuJEyk0BP8AvH/CmDw7qJTmeAHocMxyPyrmNI8T3FniC4xgfxEc/wCea9D0+/iv
-    oQySbx0JFRGHK7SLlUlNGHbeF7qGaVnkgBblSHbt+FWLnRL2YERywrz8xy2en0ro
-    RxkEHpnr0NNIAOGzg1o6acrszUnawP/Z
-
-
-NOTE;ENCODING=QUOTED-PRINTABLE:In=20his=20native=20Wales,=20he=20is=20known=20as=20"Jones=20the=20Voice".=20Today,=20he=20is=20one=20of=20the=20enduring=20p=
-ersonalities=20in=20the=20music=20entertainment=20buisness,=20His=20unique=20vocal=20power,=20ability=
-,=20and=20charismatica=20persona=20make=20him=20one=20of=20the=20most=20respected,=20admired=20and=20loved=20perf=
-ormers=20in=20modern=20music.
-END:VCARD
--- a/localisation/apparchitecture/tdata/Corrupted_reg.RSC	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// Note: Standard test header to avoid Copyright tool complaining of missing copyright...
-// 
-//
-
-
-
-/**
- @file
- @test
- @internalComponent - Internal Symbian test code 
-*/
-
-kJ!€º<©ÁÚ$ Õ  	        beytfyugjcert    
--- a/localisation/apparchitecture/tdata/FileWithUnknownMimeType.UnrecognisableExtention	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-xyz
\ No newline at end of file
Binary file localisation/apparchitecture/tdata/GIF.NNA1 has changed
--- a/localisation/apparchitecture/tdata/HTML.NNA2	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML><HEAD>
-<META http-equiv=Content-Type content="text/html; charset=windows-1252">
-<META content="MSHTML 6.00.2800.1515" name=GENERATOR></HEAD>
-<BODY>09:48:45:769 <PRE>09:48:45:769 *** TestExecute Started 16/09/2005 09:48:45:769 ***
-09:48:45:789 z:\apparctest\apparctest_t_nonnativeapps.script PRINT Run NonNativeApps Apparc test
-09:48:45:789 INFO -  104 ScriptEngine.cpp 1077  Run NonNativeApps Apparc test
-
-09:48:45:794 z:\apparctest\apparctest_t_nonnativeapps.script LOAD_SUITE ApparcTestServer
-09:48:46:165 z:\apparctest\apparctest_t_nonnativeapps.script RUN_TEST_STEP 100 ApparcTestServer T_NonNativeApps
-09:48:46:180 INFO -  112 T_NonNativeAppsStep.cpp 393 Test NonNativeApps starting....
-
-09:48:46:185 INFO -  112 T_NonNativeAppsStep.cpp 124 Testing AppForDocumentL()...
-09:48:46:185 INFO -  112 T_NonNativeAppsStep.cpp 132 ..using following file: 'GIF.NNA'
-09:48:46:190 ERROR -  112 T_NonNativeAppsStep.cpp 414 ERROR: Test Failed
-09:48:46:190 INFO -  112 T_NonNativeAppsStep.cpp 415 TestAppForDocumentL completes with ret=-12.
-
-09:48:46:190 INFO -  112 T_NonNativeAppsStep.cpp 182 Testing AppForDocumentAndServiceL()...
-09:48:46:190 INFO -  112 T_NonNativeAppsStep.cpp 190 ..using following file: 'GIF.NNA'
-09:48:46:190 INFO -  112 T_NonNativeAppsStep.cpp 421 TestAppForDocumentAndServiceL completes with ret=-12.
-
-09:48:46:195 INFO -  112 T_NonNativeAppsStep.cpp 221 Testing RecognizingL()...
-09:48:46:195 INFO -  112 T_NonNativeAppsStep.cpp 229 ..using following file: 'GIF.NNA'
-09:48:46:195 INFO -  112 T_NonNativeAppsStep.cpp 427 TestRecognizingL completes with ret=-12.
-
-09:48:46:195 INFO -  112 T_NonNativeAppsStep.cpp 285 Testing StartDocumentL()...
-09:48:46:200 INFO -  112 T_NonNativeAppsStep.cpp 293 ..using following file: 'GIF.NNA'
-09:48:46:200 INFO -  112 T_NonNativeAppsStep.cpp 433 TestStartDocumentL completes with ret=-12.
-
-09:48:46:200 INFO -  112 T_NonNativeAppsStep.cpp 438 Test completed!
-09:48:46:205 <FONT color=#ff0000 size=2>z:\apparctest\apparctest_t_nonnativeapps.script Line = 5 Command = RUN_TEST_STEP 100 ApparcTestServer T_NonNativeApps ***Result = FAIL </FONT>
-09:48:46:215 <FONT color=#00afff size=2>SUMMARY:</FONT>
-09:48:46:215 <FONT color=#00af00 size=2>PASS = 0</FONT>
-09:48:46:215 <FONT color=#ff0000 size=2>FAIL = 1</FONT>
-09:48:46:223 <FONT color=#0000ff size=2>ABORT = 0</FONT>
-09:48:46:238 <FONT color=#0000ff size=2>PANIC = 0</FONT>
-09:48:46:238 <FONT color=#0000ff size=2>INCONCLUSIVE = 0</FONT>
-09:48:46:238 <FONT color=#0000ff size=2>UNKNOWN = 0</FONT>
-09:48:46:238 <FONT color=#0000ff size=2>UNEXECUTED = 0</FONT>
-09:48:46:238 <FONT color=#0000ff size=2>COMMENTED OUT RUN COMMAND'S = 0</FONT>
-09:48:46:238 </PRE></BODY></HTML>
Binary file localisation/apparchitecture/tdata/TSTAPPU.DOC has changed
--- a/localisation/apparchitecture/tdata/TXT.NNA4	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-This is a text file, used in T_NonNativeApps test in apparc.
-End of file.
Binary file localisation/apparchitecture/tdata/UpdatedAppsList.bin has changed
Binary file localisation/apparchitecture/tdata/mimecontentpolicy/fl_goo.dm has changed
Binary file localisation/apparchitecture/tdata/mimecontentpolicy/gif_wallpaper.gif has changed
Binary file localisation/apparchitecture/tdata/mimecontentpolicy/jpeg_wes.dm has changed
Binary file localisation/apparchitecture/tdata/mimecontentpolicy/propelli.jpg has changed
Binary file localisation/apparchitecture/tdata/mimecontentpolicy/sd_goo.dcf has changed
Binary file localisation/apparchitecture/tdata/mimecontentpolicy/type-r.jpg has changed
--- a/localisation/apparchitecture/tdata/one_byte.txt	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-1
\ No newline at end of file
Binary file localisation/apparchitecture/tdata/recmime_1.rsc has changed
Binary file localisation/apparchitecture/tdata/recmime_armv5.dll has changed
Binary file localisation/apparchitecture/tdata/recmime_winscw.dll has changed
Binary file localisation/apparchitecture/tdata/recupgrade.rsc has changed
Binary file localisation/apparchitecture/tdata/recupgrade_armv5_rel.dll has changed
--- a/localisation/apparchitecture/tdata/sdk.txt	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<html>
-<title>EPOC32 C++ SDK</title>
-<body>
-<table><tr valign=top>
-<td width=20%>
-<center><a href="http://www.software.psion.com/EPOCWorld"><img src="../group/epocworldlogo.gif" border=0></a></center>
-<ul>
-<li><b><a href="../release/rn-toc.html">Release notes</a></b></li>
-<li><b><a href="../getstart/gs-toc.html">Getting started</a></b></li>
-</body>
-</html>
Binary file localisation/apparchitecture/tdata/testupdregappuninstallation_reg.rsc has changed
Binary file localisation/apparchitecture/tdatasrc/Thumbs.db has changed
--- a/localisation/apparchitecture/tef/10000180.rss	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// App-framework notifier plug-in resource file.
-// N.B. Testcode.
-// 
-//
-
-
-
-/**
- @file 10000180.rss
- @internalComponent - Internal Symbian test code
-*/
-
-#include <RegistryInfo.rh>
-
-RESOURCE REGISTRY_INFO r_registry
-	{
-	dll_uid = 0x10000180; //should match name of this file
-	interfaces =
-		{
-		INTERFACE_INFO
-			{
-			interface_uid = 0x101F7D86;  // need to create this uid in the uid database
-			implementations =
-				{
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = 0x101DC568; //Unique number
-					version_no = 1;
-					display_name = "TDoNothingFileRecognizer";
-					default_data = "";        // Notify Interface
-					opaque_data = "";
-					}
-				};
-			}
-		};
-	}
--- a/localisation/apparchitecture/tef/10000181.rss	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// App-framework notifier plug-in resource file.
-// N.B. Testcode.
-// 
-//
-
-
-
-/**
- @file 10000181.rss
- @internalComponent - Internal Symbian test code
-*/
-
-#include <RegistryInfo.rh>
-
-RESOURCE REGISTRY_INFO r_registry
-	{
-	dll_uid = 0x10000181; //should match name of this file
-	interfaces =
-		{
-		INTERFACE_INFO
-			{
-			interface_uid = 0x101F7D86;  // need to create this uid in the uid database
-			implementations =
-				{
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = 0x101F7D8C;
-					version_no = 1;
-					display_name = "TTestEcomFileRec";
-					default_data = "";        // Notify Interface
-					opaque_data = "";
-					}
-				};
-			}
-		};
-	}
--- a/localisation/apparchitecture/tef/10000182.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/10000182.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,14 +16,12 @@
 // 
 //
 
-
-
 /**
  @file 10000182.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO r_registry
 	{
--- a/localisation/apparchitecture/tef/10004c4e.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/10004c4e.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,14 +16,12 @@
 // 
 //
 
-
-
 /**
  @file 10004c4e.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO r_registry
 	{
--- a/localisation/apparchitecture/tef/10004c5B.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/10004c5B.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,14 +15,12 @@
 // 
 //
 
-
-
 /**
  @file 10004c5b.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO
 	{
--- a/localisation/apparchitecture/tef/10004c5C.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/10004c5C.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,14 +15,12 @@
 // 
 //
 
-
-
 /**
  @file 10004c5c.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO
 	{
--- a/localisation/apparchitecture/tef/10004c5D.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/10004c5D.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,14 +15,12 @@
 // 
 //
 
-
-
 /**
  @file 10004c5d.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO
 	{
--- a/localisation/apparchitecture/tef/10004c5E.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/10004c5E.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,14 +15,12 @@
 // 
 //
 
-
-
 /**
  @file 10004c5e.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO
 	{
--- a/localisation/apparchitecture/tef/10004c66.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/10004c66.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,14 +15,12 @@
 // 
 //
 
-
-
 /**
  @file 10004c66.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO
 	{
--- a/localisation/apparchitecture/tef/102032A5.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/102032A5.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,14 +15,12 @@
 // 
 //
 
-
-
 /**
  @file 102032A5.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO r_registry
 	{
--- a/localisation/apparchitecture/tef/1020d465.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/1020d465.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,14 +13,12 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-#include "RegistryInfo.rh"
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO theInfo
 {
@@ -51,4 +49,4 @@
             };
         }
     };
-}
+}
\ No newline at end of file
--- a/localisation/apparchitecture/tef/102722ba.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/102722ba.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,7 +15,7 @@
 // 
 //
 
-#include "RegistryInfo.rh"
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO theInfo
 {
@@ -46,4 +46,4 @@
             };
         }
     };
-}
+}
\ No newline at end of file
--- a/localisation/apparchitecture/tef/A0000B70.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/A0000B70.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,14 +13,12 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-#include "RegistryInfo.rh"
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO theInfo
 {
@@ -43,4 +41,4 @@
             };
         }
     };
-}
+}
\ No newline at end of file
--- a/localisation/apparchitecture/tef/AppInfo_NoLocalisableGroupName.rh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/AppInfo_NoLocalisableGroupName.rh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,7 +16,7 @@
 #if !defined __APPINFO_NOLOCALISABLEGROUPNAME_RH__
 #define __APPINFO_NOLOCALISABLEGROUPNAME_RH__
 
-#include <APPINFO.RH>
+#include <appinfo.rh>
 
 STRUCT LOCALISABLE_APP_INFO__NO_GROUP_NAME
 	{
@@ -30,3 +30,4 @@
 	}
 
 #endif
+
--- a/localisation/apparchitecture/tef/App_CTRL.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/App_CTRL.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -20,3 +20,4 @@
 	EExampleItem1,
 	EExampleItem2
 	};
+
--- a/localisation/apparchitecture/tef/App_CTRL.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/App_CTRL.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file app_ctrl.rss
  @internalComponent - Internal Symbian test code
@@ -23,8 +21,8 @@
 
 NAME HEWO
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 
 #include "App_CTRL.hrh"
 
--- a/localisation/apparchitecture/tef/App_CTRL2.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/App_CTRL2.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -20,3 +20,4 @@
 	EExampleItem1,
 	EExampleItem2
 	};
+
--- a/localisation/apparchitecture/tef/App_CTRL2.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/App_CTRL2.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file App_CTRL2.rss
  @internalComponent - Internal Symbian test code
@@ -22,8 +20,8 @@
 
 NAME HEWO
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 
 #include "App_CTRL2.hrh"
 
--- a/localisation/apparchitecture/tef/App_CTRL2_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/App_CTRL2_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file App_CTRL2_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/App_CTRL_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/App_CTRL_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file App_CTRL_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/App_ctrl_loc.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/App_ctrl_loc.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file App_ctrl_loc.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/ChildI.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildI.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -26,3 +24,4 @@
 	EExampleItem1,
 	EExampleItem2
 	};
+
--- a/localisation/apparchitecture/tef/ChildI.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildI.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,38 +13,36 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
-
-TARGET        	ChildI.exe
+TARGET        	childi.exe
 TARGETTYPE    	exe
 UID           	0x100039CE 0x10207f84
 VENDORID  	0x70000001
 SOURCEPATH    	.
 SOURCE        	ChildI_Main.cpp
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
-START RESOURCE	ChildI.RSS
+START RESOURCE	ChildI.rss
 HEADER
-TARGETPATH	/Resource/Apps
+TARGETPATH	/resource/apps
 end
 
 START RESOURCE	ChildI_reg.rss
 TARGETPATH	/private/10003a3f/apps
 END
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/ChildI.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildI.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -22,8 +20,8 @@
 
 NAME HEWO
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 #include <appinfo.rh>
 
 #include "ChildI.hrh"
--- a/localisation/apparchitecture/tef/ChildII.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildII.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -27,3 +25,4 @@
 	EExampleItem1,
 	EExampleItem2
 	};
+
--- a/localisation/apparchitecture/tef/ChildII.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildII.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,38 +13,36 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
-
-TARGET        	ChildII.exe
+TARGET        	childii.exe
 TARGETTYPE    	exe
 UID           	0x100039CE 0x10207f85
 VENDORID 	0x70000001
 SOURCEPATH    	.
 SOURCE        	ChildII_Main.cpp
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
-START RESOURCE	ChildII.RSS
+START RESOURCE	ChildII.rss
 HEADER
-TARGETPATH	/Resource/Apps
+TARGETPATH	/resource/apps
 end
 
 START RESOURCE	ChildII_reg.rss
 TARGETPATH	/private/10003a3f/apps
 END
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/ChildII.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildII.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -22,8 +20,8 @@
 
 NAME HEWO
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 #include <appinfo.rh>
 
 #include "ChildII.hrh"
--- a/localisation/apparchitecture/tef/ChildIII.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildIII.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/ChildIII.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildIII.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,39 +13,37 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
-
-TARGET        	ChildIII.exe
+TARGET        	childiii.exe
 TARGETTYPE    	exe
 UID           	0x100039CE 0x10207f86
 VENDORID 	0x70000001
 SOURCEPATH    	.
 SOURCE        	ChildIII_Main.cpp
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
-START RESOURCE	ChildIII.RSS
+START RESOURCE	ChildIII.rss
 HEADER
-TARGETPATH	/Resource/Apps
+TARGETPATH	/resource/apps
 end
 
 START RESOURCE	ChildIII_reg.rss
 TARGETPATH	/private/10003a3f/apps
 END
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY		EFSRV.LIB
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY		efsrv.lib
+LIBRARY       	eikcore.lib 
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/ChildIII.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildIII.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -23,8 +21,8 @@
 
 NAME HEWO
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 #include <appinfo.rh>
 
 #include "ChildIII.hrh"
--- a/localisation/apparchitecture/tef/ChildIII_Main.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildIII_Main.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -28,12 +26,12 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 #include <f32file.h>
 
-#include <ChildIII.rsg>
+#include <childiii.rsg>
 #include "ChildIII.hrh"
 
 
@@ -42,11 +40,11 @@
 _LIT8(KTPass, "PASS");
 _LIT8(KTFail, "FAIL");
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleAppView : public CCoeControl
     {
@@ -144,11 +142,11 @@
 	gc.DiscardFont();
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleAppUi : public CEikAppUi
     {
@@ -263,11 +261,11 @@
 		}
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -299,11 +297,11 @@
     return new(ELeave) CExampleAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
--- a/localisation/apparchitecture/tef/ChildIII_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildIII_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
 #include <appinfo.rh>
-#include <ChildIII.rsg>
+#include <childiii.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 UID3 0x10207f86 // application UID
--- a/localisation/apparchitecture/tef/ChildII_Main.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildII_Main.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -28,19 +26,19 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <eikstart.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
-#include <ChildII.rsg>
+#include <childii.rsg>
 #include "ChildII.hrh"
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -139,11 +137,11 @@
 	gc.DiscardFont();
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -218,11 +216,11 @@
 		}
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -254,11 +252,11 @@
     return new(ELeave) CExampleAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
--- a/localisation/apparchitecture/tef/ChildII_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildII_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
 #include <appinfo.rh>
-#include <ChildII.rsg>
+#include <childii.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 UID3 0x10207f85 // application UID
--- a/localisation/apparchitecture/tef/ChildI_Main.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildI_Main.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -28,20 +26,20 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <eikstart.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 //#include <apparctestserver.h>
 
-#include <ChildI.rsg>
+#include <childi.rsg>
 #include "ChildI.hrh"
 //#include "T_ProcStep.h"
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -143,11 +141,11 @@
 	gc.DiscardFont();
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -223,11 +221,11 @@
 		}
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleDocument : public CEikDocument
 	{
@@ -259,11 +257,11 @@
     return new(ELeave) CExampleAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 //             The entry point for the application code. It creates
 //             an instance of the CApaApplication derived
--- a/localisation/apparchitecture/tef/ChildI_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ChildI_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
 #include <appinfo.rh>
-#include <ChildI.rsg>
+#include <childi.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 UID3 0x10207f84 // application UID
--- a/localisation/apparchitecture/tef/CustomiseDefaultIconApp_loc.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/CustomiseDefaultIconApp_loc.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file CustomiseDefaultIconApp_loc.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/CustomiseDefaultIconApp_reg.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/CustomiseDefaultIconApp_reg.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file CustomiseDefaultIconApp_reg.rss
  @internalComponent - Internal Symbian test code
 */
 
 #include <appinfo.rh>
-#include <CustomiseDefaultIconApp_loc.rsg>
+#include <customisedefaulticonapp_loc.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 UID3 0x10208181 // UID of the application this registration file represents
--- a/localisation/apparchitecture/tef/M_CTRL.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/M_CTRL.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -20,3 +20,4 @@
 	EExampleItem1,
 	EExampleItem2
 	};
+
--- a/localisation/apparchitecture/tef/M_CTRL.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/M_CTRL.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file M_Ctrl.rss
  @internalComponent - Internal Symbian test code
@@ -22,8 +20,8 @@
 
 NAME MCTL
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 
 #include "M_CTRL.hrh"
 
--- a/localisation/apparchitecture/tef/M_CTRL_V2.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/M_CTRL_V2.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -33,15 +31,15 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <apgcli.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 //#include "appfwk_test_AppUi.h"
 
-#include <M_CTRL.rsg>
+#include <m_ctrl.rsg>
 #include "M_CTRL.hrh"
-#include <EIKDLL.H>
+#include <eikdll.h>
 #include <eikstart.h>
 
 
@@ -51,11 +49,11 @@
 //_LIT(KGlobalSemaphore, "GlobalSemaphore");
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -113,11 +111,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -194,11 +192,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -222,11 +220,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -262,3 +260,4 @@
 	return EikStart::RunApplication(NewApplication);
 	}
 	
+
--- a/localisation/apparchitecture/tef/M_CTRL_loc.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/M_CTRL_loc.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file M_Ctrl_loc.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/M_CTRL_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/M_CTRL_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file M_Ctrl_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/ParentProcess.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ParentProcess.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -26,3 +24,4 @@
 	EExampleItem1,
 	EExampleItem2
 	};
+
--- a/localisation/apparchitecture/tef/ParentProcess.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ParentProcess.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,38 +13,36 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
-
-TARGET        	ParentProcess.exe	
+TARGET        	parentprocess.exe	
 TARGETTYPE   	exe
 UID           	0x100039CE 0x10207f87
 VENDORID 	0x70000001
 SOURCEPATH    	.
 SOURCE        	ParentProcess_Main.cpp
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
-START RESOURCE	ParentProcess.RSS
+START RESOURCE	ParentProcess.rss
 HEADER
-TARGETPATH	/Resource/Apps
+TARGETPATH	/resource/apps
 end
 
 START RESOURCE	ParentProcess_reg.rss
 TARGETPATH	/private/10003a3f/apps
 END
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/ParentProcess.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ParentProcess.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -22,8 +20,8 @@
 
 NAME HEWO
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 #include <appinfo.rh>
 
 #include "ParentProcess.hrh"
@@ -69,3 +67,4 @@
 RESOURCE TBUF r_example_text_Item0 { buf="Item 0"; }
 RESOURCE TBUF r_example_text_Item1 { buf="Item 1"; }
 RESOURCE TBUF r_example_text_Item2 { buf="Item 2"; }
+
--- a/localisation/apparchitecture/tef/ParentProcess_Main.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ParentProcess_Main.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -28,19 +26,19 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <eikstart.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
-#include <ParentProcess.rsg>
+#include <parentprocess.rsg>
 #include "ParentProcess.hrh"
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //										
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleAppView : public CCoeControl
     {
@@ -141,11 +139,11 @@
 	gc.DiscardFont();
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleAppUi : public CEikAppUi
     {
@@ -221,11 +219,11 @@
 		}
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleDocument : public CEikDocument
 	{
@@ -258,11 +256,11 @@
     return new(ELeave) CExampleAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -307,3 +305,4 @@
 	{
 	return EikStart::RunApplication(NewApplication);
 	}
+
--- a/localisation/apparchitecture/tef/ParentProcess_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ParentProcess_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
 #include <appinfo.rh>
-#include <ParentProcess.rsg>
+#include <parentprocess.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 UID3 0x10207f87 // application UID
--- a/localisation/apparchitecture/tef/SimpleApparcTestApp.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/SimpleApparcTestApp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -20,8 +20,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -36,21 +34,21 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
-#include <SimpleApparcTestApp.rsg>
+#include <simpleapparctestapp.rsg>
 #include "SimpleApparcTestApp.hrh"
 
 #include <eikstart.h>
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -108,11 +106,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -183,11 +181,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -211,11 +209,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -252,3 +250,4 @@
 	return EikStart::RunApplication(NewApplication);
 	}
 	
+
--- a/localisation/apparchitecture/tef/SimpleApparcTestApp.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/SimpleApparcTestApp.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -20,3 +20,4 @@
 	EExampleItem1,
 	EExampleItem2
 	};
+
--- a/localisation/apparchitecture/tef/SimpleApparcTestApp.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/SimpleApparcTestApp.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,12 +15,10 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
-target		SimpleApparcTestApp.EXE
+target		simpleapparctestapp.exe
 TARGETTYPE 	exe
 	
-targetpath	/SYS/BIN
+targetpath	/sys/bin
 UID           	0x100039CE 0x12008ACE
 VENDORID 	0x70000001
 CAPABILITY 	All -Tcb
@@ -30,10 +28,10 @@
 SOURCE		SimpleApparcTestApp.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
 // Application exe specific resource which is localised to the application
 RESOURCE	SimpleApparcTestApp.rss
@@ -44,14 +42,16 @@
 
 
 // Application exe registration resource file
-START RESOURCE	SimpleApparcTestApp_reg.rss
+START RESOURCE	SimpleApparcTestApp_Reg.RSS
 TARGETPATH	/private/10003a3f/apps
 lang		sc
 END
 
  
-LIBRARY       	APPARC.LIB  
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB
-LIBRARY       	EUSER.LIB 
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib  
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib
+LIBRARY       	euser.lib 
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/SimpleApparcTestApp.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/SimpleApparcTestApp.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -23,8 +21,8 @@
 
 NAME HEWO
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 
 #include "SimpleApparcTestApp.hrh"
 
--- a/localisation/apparchitecture/tef/SimpleApparcTestApp_Reg.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/SimpleApparcTestApp_Reg.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TAppEmbedUids.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbedUids.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -30,3 +28,4 @@
 const TUid KUidAppEmbeddableUiNotStandAlone	= { 0x10004c4B };
 
 #endif
+
--- a/localisation/apparchitecture/tef/TAppEmbeddable.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddable.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,8 +17,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -31,21 +29,21 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
-#include <ecom.h>
-#include <implementationproxy.h>
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
 
 #include "TAppEmbedUids.h"
 
 _LIT(KExampleText, "This test application defines KAppEmbeddable in it's AIF file");
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -103,11 +101,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -145,11 +143,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -173,11 +171,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -229,3 +227,4 @@
 	aTableCount=sizeof(ImplementationTable)/sizeof(ImplementationTable[0]);
 	return ImplementationTable;
 	}
+
--- a/localisation/apparchitecture/tef/TAppEmbeddableOnly.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableOnly.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,8 +17,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -32,21 +30,21 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
-#include <ecom.h>
-#include <implementationproxy.h>
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
 
 #include "TAppEmbedUids.h"
 
 _LIT(KExampleText, "This test application defines KAppEmbeddableOnly in it's AIF file");
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -104,11 +102,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -145,11 +143,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -173,11 +171,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -229,3 +227,4 @@
 	aTableCount=sizeof(ImplementationTable)/sizeof(ImplementationTable[0]);
 	return ImplementationTable;
 	}
+
--- a/localisation/apparchitecture/tef/TAppEmbeddableOnly_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableOnly_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TAppEmbeddableOnly_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TAppEmbeddableOnly_v2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableOnly_v2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,9 +15,8 @@
 // 
 //
 
-#include <platform_paths.hrh>
 
-TARGET        	TAppEmbeddableOnly.dll
+TARGET        	tappembeddableonly.dll
 TARGETTYPE    	PLUGIN
 TARGETPATH	/sys/bin
 UID           	0x10009d8d 0x10004c5C
@@ -29,11 +28,11 @@
 SOURCE        	TAppEmbeddableOnly.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
-SYSTEMINCLUDE 	/epoc32/include/Ecom
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
+//SYSTEMINCLUDE 	/epoc32/include/ecom
 
 //reg added for Datacaging
 START RESOURCE	TAppEmbeddableOnly_reg.rss
@@ -41,13 +40,15 @@
 END
 
 START RESOURCE 	10004c5C.rss
-TARGET 		TAppEmbeddableOnly.rsc
+TARGET 		tappembeddableonly.rsc
 END
 
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	ECOM.LIB
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	ecom.lib
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TAppEmbeddableUiNotStandAlone.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableUiNotStandAlone.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,8 +17,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -31,21 +29,21 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
 #include "TAppEmbedUids.h"
 
-#include <ecom.h>
-#include <implementationproxy.h>
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
 
 _LIT(KExampleText, "This test application defines KAppEmbeddableUiNotStandAlone in it's AIF file");
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -103,11 +101,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -144,11 +142,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -172,11 +170,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -228,3 +226,4 @@
 	aTableCount=sizeof(ImplementationTable)/sizeof(ImplementationTable[0]);
 	return ImplementationTable;
 	}
+
--- a/localisation/apparchitecture/tef/TAppEmbeddableUiNotStandAlone_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableUiNotStandAlone_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TAppEmbeddableUiNotStandAlone_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TAppEmbeddableUiNotStandAlone_v2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableUiNotStandAlone_v2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,9 +15,8 @@
 // 
 //
 
-#include <platform_paths.hrh>
 
-TARGET        	TAppEmbeddableUiNotStandAlone.dll
+TARGET        	tappembeddableuinotstandalone.dll
 TARGETPATH	/sys/bin
 TARGETTYPE    	PLUGIN
 UID           	0x10009d8d 0x10004c5E
@@ -29,11 +28,11 @@
 SOURCE        	TAppEmbeddableUiNotStandAlone.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
-SYSTEMINCLUDE 	/epoc32/include/Ecom
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
+//SYSTEMINCLUDE 	/epoc32/include/ecom
 
 //reg added for Datacaging
 START RESOURCE	TAppEmbeddableUiNotStandAlone_reg.rss
@@ -41,12 +40,14 @@
 END
 
 START RESOURCE 	10004c5E.rss
-TARGET 		TAppEmbeddableUiNotStandAlone.rsc
+TARGET 		tappembeddableuinotstandalone.rsc
 END
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	ECOM.LIB
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	ecom.lib
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandAlone.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandAlone.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,8 +17,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -31,21 +29,21 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
 #include "TAppEmbedUids.h"
 
-#include <ecom.h>
-#include <implementationproxy.h>
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
 
 _LIT(KExampleText, "This test application defines KAppEmbeddableUiOrStandAlone in it's AIF file");
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -103,11 +101,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -144,11 +142,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -172,11 +170,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -228,3 +226,4 @@
 	aTableCount=sizeof(ImplementationTable)/sizeof(ImplementationTable[0]);
 	return ImplementationTable;
 	}
+
--- a/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandAlone_embedded.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandAlone_embedded.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,9 +15,8 @@
 // 
 //
 
-#include <platform_paths.hrh>
 
-TARGET        	TAppEmbeddableUiOrStandAlone_embedded.dll
+TARGET        	tappembeddableuiorstandalone_embedded.dll
 TARGETTYPE    	PLUGIN
 TARGETPATH	/sys/bin
 UID 		0x10009d8d 0x10004c5D
@@ -29,20 +28,22 @@
 SOURCE        	TAppEmbeddableUiOrStandAlone.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
-SYSTEMINCLUDE 	/epoc32/include/Ecom
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
+//SYSTEMINCLUDE 	/epoc32/include/ecom
 
 START RESOURCE 	10004c5D.rss
-TARGET 		TAppEmbeddableUiOrStandAlone_embedded.rsc
+TARGET 		tappembeddableuiorstandalone_embedded.rsc
 END
 
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	ECOM.LIB
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	ecom.lib
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandAlone_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandAlone_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TAppEmbeddableUiOrStandAlone_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandalone_standalone.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandalone_standalone.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
--- a/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandalone_standalone.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddableUiOrStandalone_standalone.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,7 +17,7 @@
 
 
 
- TARGET        	TAppEmbeddableUiOrStandalone.exe
+ TARGET        	tappembeddableuiorstandalone.exe
  TARGETTYPE    	exe
 
 TARGETPATH		/sys/bin
@@ -30,8 +30,10 @@
 SOURCE        	TAppEmbeddableUiOrStandalone_standalone.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview  //added this from original?
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview  //added this from original?
 
 //reg added for Datacaging
 START RESOURCE	TAppEmbeddableUiOrStandAlone_reg.rss
@@ -39,3 +41,5 @@
 END
 
 LIBRARY euser.lib apparc.lib eikcore.lib cone.lib  //added cone.lib from original?
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TAppEmbeddable_embedded.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddable_embedded.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,9 +15,7 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
-TARGET        	TAppEmbeddable_embedded.dll
+TARGET        	tappembeddable_embedded.dll
 TARGETPATH	/sys/bin
 TARGETTYPE    	PLUGIN
 UID 		0x10009d8d 0x10004c5B
@@ -29,19 +27,26 @@
 SOURCE        	TAppEmbeddable.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/Ecom
-SYSTEMINCLUDE 	/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/ecom
+//SYSTEMINCLUDE 	/epoc32/include/techview
+
 
 START RESOURCE 	10004c5B.rss
-TARGET 		TAppEmbeddable_embedded.rsc
+TARGET 		tappembeddable_embedded.rsc
 END
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	ECOM.LIB
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	ecom.lib
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
+
+
+
+
--- a/localisation/apparchitecture/tef/TAppEmbeddable_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddable_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TAppEmbeddable_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TAppEmbeddable_standalone.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddable_standalone.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -31,3 +29,4 @@
 	{
 	return EikStart::RunApplication(KTAppEmbeddableUid);
 	}
+
--- a/localisation/apparchitecture/tef/TAppEmbeddable_standalone.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppEmbeddable_standalone.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,7 +17,7 @@
 
 
 
- TARGET        	TAppEmbeddable.exe
+ TARGET        	tappembeddable.exe
  TARGETTYPE    	exe
 
 CAPABILITY 		All -Tcb //do standalone need this too?
@@ -31,8 +31,10 @@
 SOURCE        	TAppEmbeddable_standalone.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview 
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview 
 
 //reg added for Datacaging
 START RESOURCE	TAppEmbeddable_reg.rss
@@ -40,3 +42,5 @@
 END
 
 LIBRARY 		euser.lib apparc.lib eikcore.lib cone.lib  
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -20,8 +20,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -36,11 +34,11 @@
 const TUid KUidTestAppInstall = { 0x102826DD };
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the application class - CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 TUid CExampleApplication::AppDllUid() const
 	{
@@ -53,11 +51,11 @@
 	}
 	
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the appui class - CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 void CExampleAppUi::ConstructL()
     {
@@ -82,11 +80,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the view class - CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 CExampleAppView::CExampleAppView()
 	{
@@ -152,11 +150,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the document class - CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 CExampleDocument::CExampleDocument(CEikApplication& aApp)
 		: CEikDocument(aApp)
--- a/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -34,20 +32,20 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
 #include <testappinstall.rsg>
-#include "testappinstall.hrh"
+#include "TestAppInstall.hrh"
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -57,11 +55,11 @@
 	TUid AppDllUid() const;
 	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -79,11 +77,11 @@
     };
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -99,11 +97,11 @@
 	};
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -117,3 +115,4 @@
 
 
 #endif
+
--- a/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -28,3 +26,4 @@
 	EExampleItem1,
 	EExampleItem2
 	};
+
--- a/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,17 +15,13 @@
 // 
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
-
-TARGET        		TestAppInstall.exe
+TARGET        		testappinstall.exe
 TARGETTYPE    		exe
 UID           		0x100039CE 0x102826DD
 VENDORID 	  		0x70000001
@@ -34,14 +30,15 @@
 SOURCE		  TestAppInstall.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
 
-START RESOURCE	TestAppInstall.RSS
+START RESOURCE	TestAppInstall.rss
 HEADER
-TARGETPATH		/Resource/Apps
+TARGETPATH		/resource/apps
 end
 
 START RESOURCE	TestAppInstall_reg.rss
@@ -49,3 +46,5 @@
 END
 
 LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppInstall/TestAppInstall.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,8 +22,8 @@
 
 NAME TEAP
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 #include <appinfo.rh>
 
 #include "TestAppInstall.hrh"
--- a/localisation/apparchitecture/tef/TAppInstall/TestAppInstall_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppInstall/TestAppInstall_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -22,7 +20,7 @@
 */
 
 #include <appinfo.rh>
-#include <TestAppInstall.rsg>
+#include <testappinstall.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 UID3 0x102826DD // application UID
--- a/localisation/apparchitecture/tef/TAppLaunchChecker.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppLaunchChecker.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,14 +13,12 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-TARGET TAppLaunchChecker.dll
+TARGET tapplaunchchecker.dll
 CAPABILITY	All -Tcb
 TARGETTYPE PLUGIN
 VENDORID 0x70000001
@@ -29,21 +27,24 @@
 UID 0x10009D8D 0x1020d465
 
 SOURCEPATH ../tef 
-SOURCE TAppLaunchChecker.cpp
+SOURCE tAppLaunchChecker.cpp
 
 USERINCLUDE ../tef
 USERINCLUDE ../inc
-SYSTEMINCLUDE /epoc32/include
-SYSTEMINCLUDE /epoc32/include/ecom
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE /epoc32/include/ecom
 
 start resource 1020d465.rss
-target TAppLaunchChecker.rsc
+target tapplaunchchecker.rsc
 
 end
 
 LIBRARY euser.lib
-LIBRARY ECom.lib
+LIBRARY ecom.lib
 LIBRARY apfile.lib
 LIBRARY ws32.lib 
 LIBRARY apgrfx.lib
 LIBRARY apparc.lib 
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TAppLaunchChecker2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppLaunchChecker2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
 
-TARGET TAppLaunchChecker2.dll
+TARGET tapplaunchchecker2.dll
 CAPABILITY	All -Tcb
 TARGETTYPE PLUGIN
 VENDORID 0x70000001
@@ -30,20 +28,23 @@
 UID 0x10009D8D 0x102722ba
 
 SOURCEPATH ../tef 
-SOURCE TAppLaunchChecker2.cpp
+SOURCE tAppLaunchChecker2.cpp
 TARGETPATH /sys/bin
 
 USERINCLUDE ../tef
-SYSTEMINCLUDE ../inc
-SYSTEMINCLUDE /epoc32/include
-SYSTEMINCLUDE /epoc32/include/ecom
+USERINCLUDE ../inc
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE /epoc32/include/ecom
 
 start resource 102722ba.rss
-target TAppLaunchChecker2.rsc
+target tapplaunchchecker2.rsc
 end
 
 LIBRARY euser.lib
-LIBRARY ECom.lib
+LIBRARY ecom.lib
 LIBRARY ws32.lib 
 LIBRARY apgrfx.lib
 LIBRARY apfile.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TAppNotEmbeddable.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppNotEmbeddable.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,8 +17,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -31,7 +29,7 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
 #include <eikstart.h>
 
@@ -40,11 +38,11 @@
 _LIT(KExampleText, "This test application defines KAppNotEmbeddable in it's AIF file");
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -102,11 +100,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -143,11 +141,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -171,11 +169,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -215,3 +213,4 @@
 	{
 	return EikStart::RunApplication(NewApplication);
 	}
+
--- a/localisation/apparchitecture/tef/TAppNotEmbeddable_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppNotEmbeddable_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TAppNotEmbeddable_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TAppNotEmbeddable_v2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TAppNotEmbeddable_v2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,9 +15,8 @@
 // 
 //
 
-#include <platform_paths.hrh>
 
-TARGET        	TAppNotEmbeddable.exe
+TARGET        	tappnotembeddable.exe
 TARGETTYPE    	exe
 
 CAPABILITY 	All -Tcb
@@ -28,10 +27,10 @@
 SOURCE        	TAppNotEmbeddable.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
 TARGETPATH	/sys/bin
 
@@ -41,10 +40,12 @@
 END
 
 
-LIBRARY       	APPARC.LIB  
-LIBRARY       	CONE.LIB
-LIBRARY       	EIKCORE.LIB
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib  
+LIBRARY       	cone.lib
+LIBRARY       	eikcore.lib
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
 
 epocstacksize 	0x5000 
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TApparcTestApp.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TApparcTestApp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -45,22 +45,21 @@
 // Case 2: Then in B's destructor check that C is still non-null.
 // Case 3: And in C's destructor check that B is now null.
 // 
+// tapparctestapp.cpp
 //
 
-
-
 #include <coeccntx.h>
 #include <apgtask.h>
 #include <eikenv.h>
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <f32file.h>
-#include <eikon.hrh>
-#include <eikstart.h> ////TKAS added for exe-app
+#include <mw/eikon.hrh>
+#include <eikstart.h> //TKAS added for exe-app
 
-#include <TApparcTestApp.rsg>
+#include <tapparctestapp.rsg>
 
 // File which stores the test results
 _LIT(KApparcTestResultsFileName, "c:\\system\\Apparctest\\ApparcTestResultsFile.txt");
@@ -124,6 +123,8 @@
 public:
 	inline CTApparcTestNegativePrioStaticB();
 	inline static CTApparcTestNegativePrioStaticB* Self();
+	static CTApparcTestNegativePrioStaticB* NewL();
+	void ConstructL();
 	~CTApparcTestNegativePrioStaticB();
 	
 	RFile iFile;
@@ -265,11 +266,11 @@
 		iFile.Write(KTestFail);
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTApparcTestAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTApparcTestAppView : public CCoeControl
     {
 public:
@@ -323,11 +324,11 @@
 	gc.DiscardFont();
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTApparcTestAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CTApparcTestAppUi : public CEikAppUi
     {
@@ -350,7 +351,7 @@
 	iAppView = CTApparcTestAppView::NewL(ClientRect());
 	
 	// Constructs the static object for tests
-	CTApparcTestNegativePrioStaticB* testCoeStaticB = new(ELeave)CTApparcTestNegativePrioStaticB();
+	CTApparcTestNegativePrioStaticB* testCoeStaticB = CTApparcTestNegativePrioStaticB::NewL();
 	
 	CTApparcTestStatic* testCoeStatic = new (ELeave)CTApparcTestStatic(testCoeStaticB->iFile);
 	CTApparcTestNegativePrioStaticA* testCoeStaticA  = new(ELeave)CTApparcTestNegativePrioStaticA(testCoeStaticB->iFile);
@@ -429,11 +430,11 @@
 		testCoeStatic->iFile.Write(KTestFail);
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTApparcTestDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CTApparcTestDocument : public CEikDocument
 	{
@@ -456,11 +457,11 @@
     return new(ELeave) CTApparcTestAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTApparcTestApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CTApparcTestApplication : public CEikApplication
 	{
@@ -492,11 +493,6 @@
 	return EikStart::RunApplication(NewApplication);
 	}
 
-		
-
-//
-// inline functions 
-//
 
 // inline function for CTApparcTestStatic
 inline CTApparcTestStatic::CTApparcTestStatic(RFile& aFile)
@@ -524,6 +520,24 @@
 inline CTApparcTestNegativePrioStaticB::CTApparcTestNegativePrioStaticB()
 	: CCoeStatic(KUidTestStaticNegativePrioB,ENegativePriortyStaticA - 1)
 	{
+	}
+
+inline CTApparcTestNegativePrioStaticB* CTApparcTestNegativePrioStaticB::Self()
+	{
+	return STATIC_CAST(CTApparcTestNegativePrioStaticB*,CCoeEnv::Static(KUidTestStaticNegativePrioB));
+	}
+
+CTApparcTestNegativePrioStaticB* CTApparcTestNegativePrioStaticB::NewL()
+	{
+	CTApparcTestNegativePrioStaticB* self = new(ELeave)CTApparcTestNegativePrioStaticB();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	return self;
+	}
+ 
+void CTApparcTestNegativePrioStaticB::ConstructL()
+    {
 	User::LeaveIfError(iFs.Connect());
 	TInt err = iFs.MkDirAll(KApparcTestDir);
 	
@@ -532,11 +546,6 @@
 		iFile.Open(iFs,KApparcTestResultsFileName,EFileWrite | EFileShareAny);
 	}
 
-inline CTApparcTestNegativePrioStaticB* CTApparcTestNegativePrioStaticB::Self()
-	{
-	return STATIC_CAST(CTApparcTestNegativePrioStaticB*,CCoeEnv::Static(KUidTestStaticNegativePrioB));
-	}
-
 // inline functions for CTApparcTestPosPrioStaticA	
 inline CTApparcTestPosPrioStaticA::CTApparcTestPosPrioStaticA(RFile& aFile)
 	: CCoeStatic(KUidTestStaticPosPriA,EDefaultDestructionPriority),iFile(aFile)
@@ -591,3 +600,6 @@
 {
 	return STATIC_CAST(CTApparcTestPrioTwoStaticC*,CCoeEnv::Static(KUidTestStaticPriTwoC));
 }
+
+
+
--- a/localisation/apparchitecture/tef/TApparcTestApp.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TApparcTestApp.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,7 +15,7 @@
 // 
 //
 
-#include <platform_paths.hrh>
+
 
 TARGETPATH	/sys/bin
 TARGET		tapparctestapp.exe
@@ -32,26 +32,26 @@
 SOURCEPATH	.
 SOURCE		tapparctestapp.cpp
 
-USERINCLUDE	.
-
-SYSTEMINCLUDE	/epoc32/include ../inc
-SYSTEMINCLUDE 	/epoc32/include/test
-SYSTEMINCLUDE	/epoc32/include/techview
+USERINCLUDE		.
+USERINCLUDE		../../uiftestfw/inc
+USERINCLUDE		../inc
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE	/epoc32/include/techview
 
-RESOURCE	tApparctestapp.rss
+RESOURCE	tapparctestapp.rss
 
-START RESOURCE  tApparctestapp.rss
+START RESOURCE  tapparctestapp.rss
 HEADER
 TARGETPATH	/resource/apps
 END
 
-START RESOURCE	tApparctestapp_reg.rss
+START RESOURCE	tapparctestapp_reg.rss
 TARGETPATH	/private/10003a3f/import/apps
 END
 
-START RESOURCE	tApparctestapp_loc.rss
+START RESOURCE	tapparctestapp_loc.rss
 TARGETPATH	/resource/apps
 LANG		sc
 END
@@ -62,3 +62,5 @@
 LIBRARY	eikcore.lib
 LIBRARY	euser.lib
 LIBRARY	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TApparcTestApp.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TApparcTestApp.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TApparcTestApp.rss
  @internalComponent - Internal Symbian test code
@@ -23,8 +21,8 @@
 
 NAME TCON
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
--- a/localisation/apparchitecture/tef/TApparcTestApp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TApparcTestApp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TApparcTestApp_reg.rss
  @test
--- a/localisation/apparchitecture/tef/TBufferOnlyRec/10207f88.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TBufferOnlyRec/10207f88.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -14,7 +14,7 @@
 //
 
 //  INCLUDES
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 #include "TBufferOnlyRecUid.hrh"
 
 // RESOURCE DEFINITIONS
--- a/localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRec.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRec.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,7 +15,7 @@
 
 #include "TBufferOnlyRec.h"
 #include "TBufferOnlyRecUid.hrh"
-#include <ImplementationProxy.h>
+#include <ecom/implementationproxy.h>
 
 enum TMimeTypes
     {
--- a/localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRec.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRec.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRec.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRec.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,13 +15,11 @@
 // 
 //
 
-
-
 /**
  @file
 */
 
-target		TBufferOnlyRec.dll
+target		tbufferonlyrec.dll
 targettype	plugin
 
 uid		0x10009d8d 0x10207f88
@@ -30,16 +28,21 @@
 
 VENDORID 0x70000001
 
-systeminclude	/EPOC32/INCLUDE/ECOM
+systeminclude	/epoc32/include/ecom
 
 SOURCEPATH	.
-systeminclude   ../../INC
-systeminclude   /EPOC32/INCLUDE /EPOC32/INCLUDE/TEST
+userinclude   ../../inc
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 source          TBufferOnlyRec.cpp
 
-library         EUSER.LIB APMIME.LIB APPARC.LIB
+library         euser.lib apmime.lib apparc.lib
 
 START resource	10207f88.rss
-target TBufferOnlyRec.rsc
+target tbufferonlyrec.rsc
 END
+
+SMPSAFE
+
+
--- a/localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRecUid.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TBufferOnlyRec/TBufferOnlyRecUid.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
--- a/localisation/apparchitecture/tef/TCmdLineExe.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TCmdLineExe.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -27,7 +25,7 @@
 #include <e32uid.h>
 #include <e32base.h>
 #include <e32test.h>
-#include  <apacmdln.h>
+#include <apacmdln.h>
 #include "T_CmdlnStep.h"
 
 
@@ -82,3 +80,5 @@
 
 	}
 	
+
+
--- a/localisation/apparchitecture/tef/TCmdLineExe.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TCmdLineExe.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
@@ -17,23 +17,24 @@
 // TCmdLineExe.mmp
 
 
-target          TCmdLineExe.EXE
+target          tcmdlineexe.exe
 targettype      EXE
 targetpath      /system/programs\
 
 UID      0x10208180 
 VENDORID 0x70000001
 
-SOURCEPATH	../TEF		
+SOURCEPATH	../tef		
 
-userinclude     ../TEF
-systeminclude   ../INC 	
-systeminclude   /EPOC32/INCLUDE /EPOC32/INCLUDE/TEST
+userinclude     ../tef
+userinclude   ../inc
+ 	
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 source          TCmdLineExe.CPP
 
 userinclude		../../uiftestfw/inc
 
-library         EUSER.LIB APPARC.LIB EFSRV.LIB APPFWK_TEST_APPUI.LIB
+library         euser.lib apparc.lib efsrv.lib appfwk_test_appui.lib
 
-
+SMPSAFE
--- a/localisation/apparchitecture/tef/TCtrlPnlApp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TCtrlPnlApp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -36,3 +36,4 @@
 		SERVICE_INFO { uid = 0x10101010;}
 		};
 	}
+
--- a/localisation/apparchitecture/tef/TDoNothingFileRecognizer.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-
-/**
- @file
- @internalComponent - Internal Symbian test code 
-*/
-
-#include <apfrec.h>
-
-#include <ImplementationProxy.h>
-
-/**   Recognizer doing nothing for checking the defect DEF039651.
-      Change Apparc's TRecognizerName in a similar way to EMime's was in DEF037809" */
-
-class CDoNothingFileRec : public CApaFileRecognizerType
-	{
-public: // from CApaFileRecognizerType
-	static CApaFileRecognizerType* CreateRecognizerL();
-	TThreadId RunL(TApaCommand aCommand,const TDesC* aDocFileName=NULL,const TDesC8* aTailEnd=NULL) const;
-private: // from CApaFileRecognizerType
-	TRecognizedType DoRecognizeFileL(RFs& aFs,TUidType aType);
-	};
-
-TThreadId CDoNothingFileRec::RunL(TApaCommand /*aCommand*/,const TDesC* /*aDocFileName*/,const TDesC8* /*aTailEnd*/) const
-	{
-	TThreadId id(NULL);
-	return id;
-	}
-
-CApaFileRecognizerType::TRecognizedType CDoNothingFileRec::DoRecognizeFileL(RFs& /*aFs*/,TUidType /*aType*/)
-	{
-	return iRecognizedType;
-	}
-
-
-
-CApaFileRecognizerType* CDoNothingFileRec::CreateRecognizerL()
-	{
-	CDoNothingFileRec* doNothingFileRec=new (ELeave) CDoNothingFileRec();
-	return doNothingFileRec;
-	//return new (ELeave) CExampleFileRecognizer ();
-	}
-
-const TImplementationProxy ImplementationTable[] =
-{
-IMPLEMENTATION_PROXY_ENTRY(0x101DC568, CDoNothingFileRec::CreateRecognizerL)
-};
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    return ImplementationTable;
-    }
-	
-GLDEF_C TInt E32Dll(
-					)
-
-// DLL entry point
-
-	{
-	return KErrNone;
-	}
--- a/localisation/apparchitecture/tef/TDoNothingFileRecognizer_v2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// TDONOTHINGFILERECOGNIZER.MMP
-// 
-//
-
-#include <platform_paths.hrh>
-
-target          TDONOTHINGFILERECOGNIZER.DLL
-capability		All -Tcb
-targettype      PLUGIN
-UID				0x10009D8D  0x10000180
-VENDORID 		0x70000001
-
-SOURCEPATH		.
-SOURCE			TDoNothingFileRecognizer.CPP
-SYSTEMINCLUDE   /epoc32/include
-systeminclude	/epoc32/include/ecom 
-
-MW_LAYER_SYSTEMINCLUDE
-
-library         	EUSER.LIB APPARC.LIB
-
-start resource	10000180.RSS
-TARGET		TDONOTHINGFILERECOGNIZER.rsc
-end
--- a/localisation/apparchitecture/tef/TESTREC/102032A5.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TESTREC/102032A5.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,13 +15,11 @@
 // 
 //
 
-
-
 /**
  @file 102032A5.rss
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO r_registry
 	{
--- a/localisation/apparchitecture/tef/TESTREC/TESTREC.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TESTREC/TESTREC.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,14 +16,12 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
 */
 
-#include "testrec.h"
+#include "TESTREC.H"
 
 /**
   
@@ -196,3 +194,7 @@
     aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
     return ImplementationTable;
     }
+
+
+
+
--- a/localisation/apparchitecture/tef/TESTREC/TESTREC.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TESTREC/TESTREC.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -31,7 +29,7 @@
 #endif
 
 #include <apmstd.h>
-#include <ImplementationProxy.h>
+#include <implementationproxy.h>
 
 class CAppTestRecognizer : public CApaDataRecognizerType
 	{
--- a/localisation/apparchitecture/tef/TESTREC/TESTREC.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TESTREC/TESTREC.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,13 +16,11 @@
 // 
 //
 
-
-
 /**
  @file
 */
 
-target		TESTREC.DLL
+target		testrec.dll
 targettype	plugin
 
 uid		0x10009d8d 0x102032A5
@@ -30,16 +28,20 @@
 
 VENDORID 0x70000001
 
-systeminclude	/EPOC32/INCLUDE/ECOM
+systeminclude	/epoc32/include/ecom
 
 SOURCEPATH	.
-systeminclude   ../../INC
-systeminclude   /EPOC32/INCLUDE /EPOC32/INCLUDE/TEST
+userinclude   ../../inc
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 source          TESTREC.CPP
 
-library         EUSER.LIB APMIME.LIB APPARC.LIB
+library         euser.lib apmime.lib apparc.lib
 
 START resource	102032A5.rss
 target testrec.rsc
 END
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TEXE.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TEXE.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -25,6 +23,9 @@
 #include <e32base.h>
 #include <e32test.h>
 #include <apadef.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "apainternal.h"
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
 //const TInt KTexeUidValue=0x10004c6b;
 //const TUid KUidTExe={KTexeUidValue};
@@ -36,7 +37,7 @@
 	{
 	RTest test(_L("TEXE"));
 	test.Title();
-	test.Start(_L("The test dxe has been loaded."));
+	test.Start(_L(" @SYMTestCaseID API-APPFWK-APPARC-TEXE-0001 The test dxe has been loaded."));
 	test.Printf(_L("\n"));
 	test.Printf(aCommandLine);
 	test.Printf(_L("\n"));
@@ -80,7 +81,7 @@
 	//
     TApaCommandLine commandline;
 		User::CommandLine(commandline);
-    	
+
     DoThings(commandline);
 	//
     delete(cleanup);
--- a/localisation/apparchitecture/tef/TEXE_V2.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TEXE_V2.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
@@ -18,20 +18,24 @@
 // TEXE.MMP for test component TEXE (released in APPARC)
 //
 
-target          TEXE.EXE
+target          texe.exe
 targettype      EXE
 targetpath      /sys/bin\
 
 UID      0x100039CE 0x10004c6b
 VENDORID 0x70000001
 
-SOURCEPATH	../TEF		// source files
+SOURCEPATH	../tef		// source files
 
-userinclude     ../TEF
-systeminclude   ../INC 	// your public include directory should be here
-systeminclude   /EPOC32/INCLUDE
+userinclude     ../tef
+userinclude		../inc // your public include directory should be here
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+userinclude  ../inc
 
 source          TEXE.CPP
 
-library         EUSER.LIB
+library         euser.lib
 
+SMPSAFE
--- a/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -212,3 +212,4 @@
 			break;
 		}
 	}
+
--- a/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -14,9 +14,8 @@
 //
 
 #include "EndTaskTestAppExternalInterface.h"
-#include <platform_paths.hrh>
 
-TARGET			EndTaskTestApp.exe
+TARGET			endtasktestapp.exe
 TARGETTYPE		exe
 CAPABILITY  	SwEvent
 
@@ -27,9 +26,9 @@
 SOURCE        	EndTaskTestApp.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include	/epoc32/include/techview 
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview 
 
 LIBRARY     euser.lib 
 LIBRARY		apparc.lib 
@@ -52,3 +51,5 @@
 HEADER
 TARGETPATH		/resource/apps
 END
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestApp.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,7 +15,7 @@
 
 NAME AAAA
 
-#include <eikon.rh>
+#include <mw/eikon.rh>
 #include <appinfo.rh>
 
 RESOURCE RSS_SIGNATURE { }
@@ -25,3 +25,4 @@
 RESOURCE EIK_APP_INFO
 	{
 	}
+
--- a/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestAppExternalInterface.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TEndTaskTestApp/EndTaskTestAppExternalInterface.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/TEndTaskTestApp/EndTask_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TEndTaskTestApp/EndTask_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -23,4 +23,4 @@
 	{
 	// filename of application binary (minus extension)
 	app_file="EndTaskTestApp";
-	}
+	}
\ No newline at end of file
--- a/localisation/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,30 +17,32 @@
 // It is called by void CT_RApaLsSessionTestStep::TestIconLoaderAndIconArrayMemoryLeaksL() 
 // in apparctestserver
 // 
+// ticonloaderandiconarrayforleaks.cpp
 //
 
-
-
 /**
- @file
+ @file ticonloaderandiconarrayforleaks.cpp
  @test
  @internalComponent - Internal Symbian test code
 */
 
 
-#include <APGAPLST.H>
+#include <apgaplst.h>
 #include <bautils.h>
-#include <APGICNFL.H> 
-#include <APFDEF.H>
-#include "APGAIR.H"
-#include <APGICNFL.H> 
+#include "apfdef.h"
+#include "../aplist/aplappinforeader.h"
+#include <apgicnfl.h> 
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "apgicnflpartner.h"
+//#include "apgicnflinternal.h"
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "apprivate.h"
 #include <barsc2.h>
 #include <barsread2.h>
 #include <e32uid.h>
 #include "APGSTD.H"
 #include "TIconLoaderAndIconArrayForLeaks.h"
-#include "apsiconcaptionoverride.h"
+#include "../aplist/apsiconcaptionoverride.h"
 
 
 EXPORT_C void TIconLoaderAndIconArrayForLeaks::TestIconLoaderAndIconArrayL()
--- a/localisation/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -30,3 +28,4 @@
 	IMPORT_C static void TestIconLoaderAndIconArrayL();
 	IMPORT_C static void TestIconCaptionOverridesL();
 	};
+
--- a/localisation/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TIconLoaderAndIconArrayForLeaks.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -22,7 +20,7 @@
 */
 
 
-target		TIconLoaderAndIconArrayForLeaks.dll
+target		ticonloaderandiconarrayforleaks.dll
 TARGETTYPE 	DLL
 UID         0x1000008D 0x102833D0 	
 VENDORID 	0x70000001
@@ -32,39 +30,36 @@
 SOURCEPATH    	.
 SOURCE		TIconLoaderAndIconArrayForLeaks.cpp
 
-SOURCEPATH	 ../apserv
+SOURCEPATH	../aplist
 SOURCE		 apsiconcaptionoverride.cpp
-
+source      aplapplist.cpp aplapplistitem.cpp aplappinforeader.cpp
 SOURCEPATH  ../apgrfx
-#if defined SYMBIAN_APPARC_APPINFO_CACHE
-	source          	APGAPLSTV2.CPP
-#else
-	source          	APGAPLST.CPP
-#endif
-source      APGCTL.CPP APGDOOR.CPP APGICNFL.CPP APGSTD.CPP APGTASK.CPP
-source		APGWGNAM.CPP APGCLI.CPP APGPRIV.CPP
-source		apgnotif.cpp APGAIR.CPP APGAIRV2.CPP APSCLI.CPP apgconstdata.cpp
+source      APGCTL.CPP apgdoor.cpp APGICNFL.CPP APGTASK.CPP
+source		APGWGNAM.CPP apgcli.cpp APGPRIV.CPP apgstart.cpp apgrecog.cpp
+source		apgnotif.cpp APSCLI.CPP apgconstdata.cpp
 source		apsecutils.cpp
-
+SOURCEPATH	../apparc
+source 		apaid.cpp apastd.cpp
 
 USERINCLUDE   	.
 USERINCLUDE		../apgrfx
 USERINCLUDE 	../apserv
 USERINCLUDE		../inc
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
  
 library         euser.lib apparc.lib apmime.lib gdi.lib estor.lib efsrv.lib fbscli.lib
 library         bitgdi.lib ws32.lib bafl.lib
-library         apserv.lib apfile.lib centralrepository.lib
+library		centralrepository.lib
+library         apserv.lib apfile.lib aplist.lib
 #ifdef SYMBIAN_BAFL_SYSUTIL
 library sysutil.lib
 #endif
 
 macro 			UI_FRAMEWORKS_V1_REMNANT_FOR_JAVA_MIDLET_INSTALLER
 
-#if defined SYMBIAN_APPARC_APPINFO_CACHE
-	deffile		TICONFORLEAKS.DEF
-#else
-	deffile		TICONFORLEAKSV2.DEF
-#endif
+deffile		TICONFORLEAKS.DEF
+
+SMPSAFE
+
--- a/localisation/apparchitecture/tef/TLongUrlRecognizer.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TLongUrlRecognizer.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -21,21 +21,19 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-#include <E32STD.H>
-#include <E32BASE.H>
-#include <APMSTD.H>
-#include <APMREC.H>
+#include <e32std.h>
+#include <e32base.h>
+#include <apmstd.h>
+#include <apmrec.h>
 #include "TStartDoc.h"
 
 #include <apfrec.h>
-#include <ImplementationProxy.h> 
+#include <ecom/implementationproxy.h> 
 
 
 const TUid KUidMimeLongURLRecognizer={0x10004c4e};
@@ -105,3 +103,4 @@
     aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
     return ImplementationTable;
     }
+
--- a/localisation/apparchitecture/tef/TLongUrlRecognizer_v2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TLongUrlRecognizer_v2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,7 +15,7 @@
 // 
 //
 
-TARGET			TLongUrlRecognizer.dll
+TARGET			tlongurlrecognizer.dll
 CAPABILITY		All -Tcb
 TARGETTYPE		PLUGIN
 UID				0x10009d8d 0x10004c4e
@@ -23,11 +23,14 @@
 
 SOURCEPATH		.
 SOURCE			TLongUrlRecognizer.cpp
-systeminclude   /EPOC32/INCLUDE
-systeminclude	/EPOC32/INCLUDE/ECOM
 
-LIBRARY			EUSER.LIB APMIME.LIB 
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude	/epoc32/include/ecom
+
+LIBRARY			euser.lib apmime.lib 
 
 start resource 10004c4e.rss
 target tlongurlrecognizer.rsc
 end
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TMimeRec/102822B7.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec/102822B7.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 #include "constants.hrh"
 
 
--- a/localisation/apparchitecture/tef/TMimeRec/constants.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec/constants.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TMimeRec/constants.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec/constants.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TMimeRec/recmime.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec/recmime.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,18 +13,18 @@
 // Description:
 //
 
-#include <ImplementationProxy.h>
+#include <ecom/implementationproxy.h>
 
 #include "appfwk_test_utils.h"
-#include "recmime.h"
+#include "recmime.H"
 #include "constants.hrh"
 #include "constants.h"
 
-/////////////////////////////////////////////////
+//
 
 const TInt KMaxBufferLength=1024; // maximum amount of buffer space we will ever use
 
-/////////////////////////////////////////////////
+//
 
 /*
 DLL entry point
--- a/localisation/apparchitecture/tef/TMimeRec/recmime.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec/recmime.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/TMimeRec/recmime.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec/recmime.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
 */
@@ -27,13 +25,18 @@
 VENDORID 	0x70000001
 CAPABILITY	All -Tcb
 
-systeminclude   /EPOC32/INCLUDE /EPOC32/INCLUDE/ECOM /EPOC32/INCLUDE/TEST
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude   /epoc32/include/ecom
+
+USERINCLUDE ../../../uiftestfw/inc
 
 SOURCEPATH	.
-source		recmime.cpp
+source		recmime.CPP
 
-library         EUSER.LIB APMIME.LIB EFSRV.LIB APPFWK_TEST_UTILS.LIB
+library         euser.lib apmime.lib efsrv.lib appfwk_test_utils.lib
 
 start resource 102822B7.rss
 target recmime.rsc
 end
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TMimeRec1/A00025DD.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec1/A00025DD.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code
 */
 
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO r_registry
 	{
--- a/localisation/apparchitecture/tef/TMimeRec1/recmime_1.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec1/recmime_1.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,23 +13,21 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code 
 */
-#include <ImplementationProxy.h>
+#include <ecom/implementationproxy.h>
 
 #include "appfwk_test_utils.h"
 #include "recmime_1.h"
 
-/////////////////////////////////////////////////
+//
 
 const TInt KMaxBufferLength=1024; // maximum amount of buffer space we will ever use
 
-/////////////////////////////////////////////////
+//
 
 /*
 DLL entry point
--- a/localisation/apparchitecture/tef/TMimeRec1/recmime_1.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec1/recmime_1.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -56,3 +54,4 @@
 	};
 
 #endif
+
--- a/localisation/apparchitecture/tef/TMimeRec1/recmime_1.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TMimeRec1/recmime_1.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -27,7 +25,7 @@
 VENDORID 	0x70000001
 CAPABILITY	All -Tcb
 
-systeminclude   /EPOC32/INCLUDE /EPOC32/INCLUDE/ECOM /EPOC32/INCLUDE/TEST
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 SOURCEPATH	.
 source			recmime_1.cpp
@@ -37,3 +35,5 @@
 start resource A00025DD.rss
 target recmime_1.rsc
 end
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TNonNative/10207f95.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/10207f95.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -22,7 +20,7 @@
 
 
 //  INCLUDES
-#include <RegistryInfo.rh>
+#include <ecom/registryinfo.rh>
 
 
 // RESOURCE DEFINITIONS
--- a/localisation/apparchitecture/tef/TNonNative/TNNApp1.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/TNNApp1.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,35 +13,33 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
 */
 
 
-#include <E32STD.H>
-#include <E32BASE.H>
-#include <E32KEYS.H>
-#include <GDI.H>
-#include <W32STD.H>
-#include <COEDEF.H>
-#include <COEMAIN.H>
-#include <COEAUI.H>
-#include <COECNTRL.H>
-#include <APPARC.H>
-#include <APGWGNAM.H>
-#include <APASERVERAPP.H>
-#include <EIKENV.H>
-#include <EIKAPP.H>
-#include <EIKDOC.H>
-#include <EIKAPPUI.H>
-#include <EIKSTART.H>
-#include <EIKSERVERAPP.H>
-#include <UIKON.HRH>
-#include "TNNAPP1.H"
-#include <appfwk_test.h>
+#include <e32std.h>
+#include <e32base.h>
+#include <e32keys.h>
+#include <gdi.h>
+#include <w32std.h>
+#include <coedef.h>
+#include <coemain.h>
+#include <coeaui.h>
+#include <coecntrl.h>
+#include <apparc.h>
+#include <apgwgnam.h>
+#include <apaserverapp.h>
+#include <eikenv.h>
+#include <eikapp.h>
+#include <eikdoc.h>
+#include <eikappui.h>
+#include <eikstart.h>
+#include <eikserverapp.h>
+#include <uikon.hrh>
+#include "TNNApp1.h"
+#include "appfwk_test.h"
 
 TTstTransactionType gTransactionType=ETransactionType_null;
 TBool gCallMadeToNewOverload_ProcessCommandParametersL=EFalse;
@@ -580,3 +578,4 @@
 	{
 	return EikStart::RunApplication(NewApplication);
 	}
+
--- a/localisation/apparchitecture/tef/TNonNative/TNNApp1.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/TNNApp1.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -41,3 +39,4 @@
 	{
 	EOpcode_receiveTestResult
 	};
+
--- a/localisation/apparchitecture/tef/TNonNative/TNNApp1.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/TNNApp1.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
 */
 
 
-target			TNNAPP1.EXE
+target			tnnapp1.exe
 targetpath		/sys/bin
 targettype		exe
 uid				0x100039ce 0x10207f92
@@ -30,18 +28,20 @@
 capability 		none
 
 sourcepath		.
-source			TNNAPP1.CPP
+source			TNNApp1.cpp
 
 userinclude     .
 userinclude     ..
+userinclude		../../../uiftestfw/inc
 
-systeminclude	/epoc32/include
-systeminclude	/epoc32/include/test
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
-resource  		TNNAPP1_REG.RSS
-start resource	TNNAPP1_REG.RSS
+resource  		TNNApp1_reg.rss
+start resource	TNNApp1_reg.rss
 targetpath		/private/10003a3f/apps
 lang			sc
 end
 
-library			EUSER.LIB EFSRV.LIB APMIME.LIB APGRFX.LIB APPARC.LIB WS32.LIB CONE.LIB EIKCORE.LIB GDI.LIB 
+library			euser.lib efsrv.lib apmime.lib apgrfx.lib apparc.lib ws32.lib cone.lib eikcore.lib gdi.lib 
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TNonNative/TNNApp1_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/TNNApp1_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
 */
 
 
-#include <APPINFO.RH>
+#include <appinfo.rh>
 
 UID2 KUidAppRegistrationResourceFile
 UID3 0x10207f92 // application UID
--- a/localisation/apparchitecture/tef/TNonNative/TNNApp2.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/TNNApp2.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,22 +13,23 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
 */
 
 
-#include <E32STD.H>
-#include <E32BASE.H>
-#include <E32PROPERTY.H>
-#include <APACMDLN.H>
-#include <APAID.H>
-#include <APGCLI.H>
-#include <APGICNFL.H>
-#include <APMSTD.H>
+#include <e32std.h>
+#include <e32base.h>
+#include <e32property.h>
+#include <apacmdln.h>
+#include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apgcli.h>
+#include <apgicnfl.h>
+#include <apmstd.h>
 
 const TUint KPropertyCategory=0x101F289C;
 const TUint KPropertyKey=0;
@@ -62,3 +63,4 @@
 	delete trapCleanup;
 	return error;
 	}
+
--- a/localisation/apparchitecture/tef/TNonNative/TNNApp2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/TNNApp2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,29 +13,30 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
 */
 
 
-target			TNNAPP2.EXE
+target			tnnapp2.exe
 targettype		exe
 uid				0x100039ce 0x10207f94
 capability		none
 
 sourcepath		.
-source			TNNAPP2.CPP
-systeminclude	/epoc32/include
+source			TNNApp2.cpp
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
-resource  		TNNAPP2_REG.RSS
-start resource	TNNAPP2_REG.RSS
+resource  		TNNApp2_reg.rss
+start resource	TNNApp2_reg.rss
 targetpath		/private/10003a3f/apps
 lang			sc
 end
 
 
-library			EUSER.LIB EFSRV.LIB APPARC.LIB
+library			euser.lib efsrv.lib apparc.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TNonNative/TNNApp2_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/TNNApp2_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
 */
 
 
-#include <APPINFO.RH>
+#include <appinfo.rh>
 
 UID2 KUidAppRegistrationResourceFile
 UID3 0x10207f94 // application UID
--- a/localisation/apparchitecture/tef/TNonNative/TNonNativeRec.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/TNonNativeRec.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -18,21 +18,19 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-#include <E32STD.H>
-#include <E32BASE.H>
-#include <APMSTD.H>
-#include <APMREC.H>
-#include <F32FILE.H>
+#include <e32std.h>
+#include <e32base.h>
+#include <apmstd.h>
+#include <apmrec.h>
+#include <f32file.h>
 
 #include <apfrec.h>
-#include <ImplementationProxy.h> 
+#include <ecom/implementationproxy.h> 
 
 _LIT8(KLit8_DataType_Gif, "x-epoc/nna-gif");
 _LIT8(KLit8_DataType_Html, "x-epoc/nna-html");
@@ -159,3 +157,4 @@
     aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
     return ImplementationTable;
     }
+
--- a/localisation/apparchitecture/tef/TNonNative/TNonNativeRec.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNative/TNonNativeRec.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
 */
 
 
-TARGET			TNonNativeRec.dll
+TARGET			tnonnativerec.dll
 CAPABILITY		All -Tcb
 TARGETTYPE		PLUGIN
 UID				0x10009d8d 0x10207f95
@@ -30,13 +28,15 @@
 SOURCEPATH		.
 SOURCE			TNonNativeRec.cpp
 
-systeminclude   ../../INC
-systeminclude   /EPOC32/INCLUDE
-systeminclude	/EPOC32/INCLUDE/ECOM 
-systeminclude	/EPOC32/INCLUDE/TEST
+userinclude   ../../inc
 
-LIBRARY			EUSER.LIB APMIME.LIB APPARC.LIB EFSRV.LIB
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude	/epoc32/include/ecom 
+
+LIBRARY			euser.lib apmime.lib apparc.lib efsrv.lib
 
 start resource 10207f95.rss
-target TNonNativeRec.rsc
+target tnonnativerec.rsc
 end
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TNonNativeAppLaunchChecker.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNativeAppLaunchChecker.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -18,16 +18,13 @@
 // 
 //
 
-
-
-
 /**
  @file 
  @internalComponent - Internal Symbian test code
 */
 
-#include <ImplementationProxy.h>
-#include "tNonNativeAppLaunchChecker.h"
+#include <ecom/implementationproxy.h>
+#include "TNonNativeAppLaunchChecker.h"
 #include <e32cmn.h>
 
 const TUid KUidNonNativeApp = {0xA0000B6E};
--- a/localisation/apparchitecture/tef/TNonNativeAppLaunchChecker.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNativeAppLaunchChecker.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -23,7 +21,7 @@
 #ifndef __TNONNATIVEAPPLAUNCHCHECKER_H__
 #define __TNONNATIVEAPPLAUNCHCHECKER_H__
 
-#include "..\inc\ApLaunchChecker.h"
+#include "../inc/ApLaunchChecker.h"
 
 class CTNonNativeAppLaunchChecker : public CAppLaunchChecker
 	{
--- a/localisation/apparchitecture/tef/TNonNativeAppLaunchChecker.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TNonNativeAppLaunchChecker.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,14 +13,12 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-TARGET TNonNativeAppLaunchChecker.dll
+TARGET tnonnativeapplaunchchecker.dll
 CAPABILITY	All -Tcb
 TARGETTYPE PLUGIN
 VENDORID 0x70000001
@@ -33,12 +31,15 @@
 
 USERINCLUDE ../tef
 USERINCLUDE ../inc
-SYSTEMINCLUDE /epoc32/include
-SYSTEMINCLUDE /epoc32/include/ecom
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE /epoc32/include/ecom
 
 start resource A0000B70.rss
-target TNonNativeAppLaunchChecker.rsc
+target tnonnativeapplaunchchecker.rsc
 end
 
 LIBRARY euser.lib
 LIBRARY apfile.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TRApaLsSessionStartAppTest.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TRApaLsSessionStartAppTest.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,7 +22,7 @@
 #define __TRAPALSSESSIONSTARTAPPTEST_H__
 
 #if !defined(__E32STD_H__)
-#include <E32STD.H>
+#include <e32std.h>
 #endif
 
 /** KLitLongURL must be > 256 characters long, in this case it's 259 characters long
@@ -42,3 +40,4 @@
 const TInt KNumDataTypes = 1;
 _LIT8(KLitMimeType_TRApaLsSessionStartAppTest, "x-epoc/start-app-test");
 #endif
+
--- a/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestApp.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestApp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,8 +17,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -31,7 +29,7 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
 #include <eikstart.h>
 
@@ -40,11 +38,11 @@
 _LIT(KExampleText, "This test application is for TRApaLsSession start app tests");
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -102,11 +100,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -143,11 +141,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -171,11 +169,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -215,3 +213,5 @@
 	{
 	return EikStart::RunApplication(NewApplication);
 	}
+
+
--- a/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestApp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestApp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TRApaLsSessionStartAppTestApp_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestApp_v2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestApp_v2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,11 +15,9 @@
 // 
 //
 
-#include <platform_paths.hrh>
+targetpath	/sys/bin
 
-targetpath	/SYS/BIN
-
-target		TRApaLsSessionStartAppTestApp.EXE
+target		trapalssessionstartapptestapp.exe
 TARGETTYPE 	exe
 
 VENDORID 	0x70000001
@@ -29,10 +27,10 @@
 
 SOURCEPATH	.
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
 // Application exe registration resource file
 START RESOURCE	TRApaLsSessionStartAppTestApp_reg.rss
@@ -42,8 +40,10 @@
 SOURCE        	TRApaLsSessionStartAppTestApp.cpp
 
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestRecognizer.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestRecognizer.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -21,20 +21,18 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
-#include <E32STD.H>
-#include <E32BASE.H>
-#include <APMSTD.H>
-#include <APMREC.H>
+#include <e32std.h>
+#include <e32base.h>
+#include <apmstd.h>
+#include <apmrec.h>
 #include "TRApaLsSessionStartAppTest.h"
 
-#include <ImplementationProxy.h>
+#include <ecom/implementationproxy.h>
 
 //CRApaLsSessionStartAppTestRec
 
@@ -99,3 +97,4 @@
     aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
     return ImplementationTable;
     }
+
--- a/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestRecognizer_v2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TRApaLsSessionStartAppTestRecognizer_v2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,9 +15,7 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
-target 		TRApaLsSessionStartAppTestRecognizer.dll
+target 		trapalssessionstartapptestrecognizer.dll
 targetpath	/sys/bin
 CAPABILITY	All -Tcb
 targettype 	PLUGIN
@@ -25,14 +23,15 @@
 VENDORID 	0x70000001
 
 SOURCEPATH		.
-SOURCE			TRApaLsSessionStartAppTestRecognizer.CPP
-systeminclude   /EPOC32/INCLUDE
-systeminclude	/EPOC32/INCLUDE/ECOM
+SOURCE			TRApaLsSessionStartAppTestRecognizer.cpp
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude	/epoc32/include/ecom
 
-library         EUSER.LIB APPARC.LIB APMIME.LIB 
+library         euser.lib apparc.lib apmime.lib 
 
 start resource 10000182.rss
-target TRApaLsSessionStartAppTestRecognizer.rsc
+target trapalssessionstartapptestrecognizer.rsc
 end
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TRApaLsSessionTestUids.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TRApaLsSessionTestUids.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -30,3 +28,4 @@
 //const TUid KUidAppEmbeddableUiNotStandAlone	= { 0x10004c4B };
 
 #endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/TRecUpgrade_1/A000B461.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,41 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// 0xA000B461.rss
+//
+
+#include <ecom/registryinfo.rh>
+
+
+RESOURCE REGISTRY_INFO r_registry
+	{
+	dll_uid = 0xA000B461; //should match name of this file
+	interfaces =
+		{
+		INTERFACE_INFO
+			{
+			interface_uid = 0x101F7D87; // Const for all Data Recognizers
+			implementations =
+			 {
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0xA000B461; // Our test recognizer
+					version_no = 2;
+					display_name = "recupg";
+					default_data = "";        // Notify Interface
+					opaque_data = "";
+					}
+				};
+			}
+		};
+	}
--- a/localisation/apparchitecture/tef/TRecUpgrade_1/recupgrade_1.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TRecUpgrade_1/recupgrade_1.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -26,17 +26,18 @@
 uid			0x10009d8d 0xA000B461
 VENDORID 	0x70000001
 CAPABILITY	All -Tcb
+VERSION		10.1
 
-systeminclude   /EPOC32/INCLUDE /EPOC32/INCLUDE/ECOM /EPOC32/INCLUDE/TEST
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 SOURCEPATH	.
 source			recupgrade_1.cpp
 
 library         EUSER.LIB APMIME.LIB EFSRV.LIB
 
-// Both recupgrade.rsc files are same (above one and the one which is mention in TRecUpgrade/recupgrade.MMP),so commented this one and used the othere one .
-/**
+
 start resource A000B461.rss
 target recupgrade.rsc
 end
-*/
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TRecUpgrade_1/recupgrade_1.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TRecUpgrade_1/recupgrade_1.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -20,16 +20,16 @@
  @test
  @internalComponent - Internal Symbian test code 
 */
-#include <ImplementationProxy.h>
+#include <ecom/implementationproxy.h>
 #include "..\TRecUpgrade\upgconstants.h"
 #include "..\TRecUpgrade\recupgrade.h"
 #include <f32file.h>  // TParse
 
-/////////////////////////////////////////////////
+//
 
 const TInt KMaxBufferLength=1024; // maximum amount of buffer space we will ever use
 
-/////////////////////////////////////////////////
+//
 
 /*
 DLL entry point
@@ -79,7 +79,7 @@
 	if (ext.CompareF(KExtension)==0)
 		{
 		iDataType = TDataType(KMimeUpgType);
-		iConfidence = EPossible;
+		iConfidence = ECertain;
 		}
 	else
 		{
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/TRecUpgrade_2/A000B461.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,41 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// 0xA000B461.rss
+//
+
+#include <ecom/registryinfo.rh>
+
+
+RESOURCE REGISTRY_INFO r_registry
+	{
+	dll_uid = 0xA000B461; //should match name of this file
+	interfaces =
+		{
+		INTERFACE_INFO
+			{
+			interface_uid = 0x101F7D87; // Const for all Data Recognizers
+			implementations =
+			 {
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0xA000B461; // Our test recognizer
+					version_no = 3;
+					display_name = "recupg";
+					default_data = "";        // Notify Interface
+					opaque_data = "";
+					}
+				};
+			}
+		};
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/TRecUpgrade_2/recupgrade_2.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,101 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// recupgrade_1.cpp
+//
+
+
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+#include <ecom/implementationproxy.h>
+#include "..\TRecUpgrade\upgconstants.h"
+#include "..\TRecUpgrade\recupgrade.h"
+#include <f32file.h>  // TParse
+
+//
+
+const TInt KMaxBufferLength=1024; // maximum amount of buffer space we will ever use
+
+//
+
+/*
+DLL entry point
+*/
+GLDEF_C TInt E32Dll()
+	{
+	return KErrNone;
+	}
+
+/*
+Private constructor
+*/
+CTestUpgradeRecognizer::CTestUpgradeRecognizer()
+	:CApaDataRecognizerType(KUidUpgradeRecognizer, CApaDataRecognizerType::ENormal)
+	{
+	iCountDataTypes = KNumUpgradeTypes;
+	}
+	
+/*
+Ecom factory function
+*/
+CApaDataRecognizerType* CTestUpgradeRecognizer::CreateRecognizerL()
+	{
+	return new (ELeave) CTestUpgradeRecognizer();
+	}
+	
+TUint CTestUpgradeRecognizer::PreferredBufSize()
+	{
+	return KMaxBufferLength;
+	}
+
+TDataType CTestUpgradeRecognizer::SupportedDataTypeL(TInt /*aIndex*/) const
+	{
+	return TDataType(KMimeUprType);
+	}
+
+void CTestUpgradeRecognizer::DoRecognizeL(const TDesC& aName, const TDesC8& /*aBuffer*/)
+	{
+    // If an error stops CTestUpgradeRecognizer being removed as part of test cleanup, 
+	// returning ENotRecognized will avoid the possibility of impacting other test code.
+	
+	_LIT(KExtension , ".upr");
+	TParse parse;
+    parse.Set(aName,NULL,NULL);
+	TPtrC ext=parse.Ext(); // extract the extension from the filename
+
+	if (ext.CompareF(KExtension)==0)
+		{
+		iDataType = TDataType(KMimeUprType);
+		iConfidence = ECertain;
+		}
+	else
+		{
+		iDataType=TDataType();
+		iConfidence=ENotRecognized;
+		}	
+	}
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+	IMPLEMENTATION_PROXY_ENTRY(KUidUpgradeRecognizerValue, CTestUpgradeRecognizer::CreateRecognizerL)
+	};
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    return ImplementationTable;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/TRecUpgrade_2/recupgrade_2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,43 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// recupgrade_1.mmp
+//
+
+
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+target 		recupgrade.dll
+targettype 	plugin 
+uid			0x10009d8d 0xA000B461
+VENDORID 	0x70000001
+CAPABILITY	All -Tcb
+VERSION		10.2
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+SOURCEPATH	.
+source			recupgrade_2.cpp
+
+library         EUSER.LIB APMIME.LIB EFSRV.LIB
+
+start resource A000B461.rss
+target recupgrade.rsc
+end
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TSTAPP.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSTAPP.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,12 +11,11 @@
 // Contributors:
 //
 // Description:
+// tstapp.cpp
 //
 
-
-
 /**
- @file
+ @file tstapp.cpp
  @test
  @internalComponent - Internal Symbian test code 
 */
@@ -26,14 +25,13 @@
 #include <s32stor.h>
 #include <s32file.h>
 #include <apgicnfl.h>
-#include <apfdef.h>
+#include "apfdef.h"
 #include "tstapp.h"
-#include <apfdef.h>
 #include <apgcli.h>
 
 #include <eikstart.h>
-#include <ecom.h>
-#include <implementationproxy.h>
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
 
 _LIT(KTestAppCaption, "Test App");
 _LIT(KTempFilePath, "c:\\system\\temp\\");
@@ -66,18 +64,18 @@
 	}
 
 
-/////////////////////////////////////////
+//
 // CBasicAppUi
-/////////////////////////////////////////
+//
 
 void CBasicAppUi::ConstructL()
 	{
 	BaseConstructL(ENoAppResourceFile|ENoScreenFurniture);
 	}
 	
-/////////////////////////////////////////
+//
 // CTestApp
-/////////////////////////////////////////
+//
 
 CTestApp* CTestApp::NewL()
 // The gated function
@@ -150,9 +148,9 @@
 	}
 
 
-/////////////////////////////////////////
+//
 // CTestAppDoc
-/////////////////////////////////////////
+//
 
 CTestAppDoc* CTestAppDoc::NewL(CEikApplication& aApp)
 	{
@@ -306,7 +304,7 @@
 	CStreamDictionary* streamDic=CStreamDictionary::NewL();
 	CleanupStack::PushL(streamDic);
 	StoreL(*store,*streamDic);
-	iStore->CommitL();
+	iStore->CommitL();  
 
 	// write root stream
 	Process()->WriteRootStreamL(*store,*streamDic,*Application());
--- a/localisation/apparchitecture/tef/TSTAPP.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSTAPP.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -139,3 +137,4 @@
 
 
 #endif
+
--- a/localisation/apparchitecture/tef/TSTAPP.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSTAPP.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/TSTAPP.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSTAPP.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,8 +22,8 @@
 
 NAME TAPP
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 
 #include "TSTAPP.hrh"
 
--- a/localisation/apparchitecture/tef/TSTAPP_embedded.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSTAPP_embedded.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,18 +13,15 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code 
 */
 
-#include <platform_paths.hrh>
 
-target			TSTAPP_embedded.DLL
-TARGETPATH		/SYS/BIN
+target			tstapp_embedded.dll
+TARGETPATH		/sys/bin
 TARGETTYPE 		PLUGIN
 UID 			0x10009d8d 0x10004c66
 
@@ -35,19 +32,17 @@
 sourcepath		.
 source          TSTAPP.CPP
 
-systeminclude   ../INC 	// your public include directory should be here
-systeminclude   /EPOC32/INCLUDE
-systeminclude   /EPOC32/INCLUDE/techview
-systeminclude 	/EPOC32/INCLUDE/ECOM
-
-MW_LAYER_SYSTEMINCLUDE
-
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+userinclude		../inc // your public include directory should be here
 userinclude     .
 
 
 START RESOURCE 	10004c66.rss
-TARGET 			TSTAPP_embedded.rsc
+TARGET 			tstapp_embedded.rsc
 END
 
-library         EUSER.LIB APPARC.LIB GDI.LIB ESTOR.LIB EFSRV.LIB APGRFX.LIB eikcore.lib CONE.LIB
-library			ECOM.LIB
+library         euser.lib apparc.lib gdi.lib estor.lib efsrv.lib apgrfx.lib eikcore.lib cone.lib
+library			ecom.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TSTAPP_standalone.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSTAPP_standalone.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -33,3 +31,4 @@
 	{
 	return EikStart::RunApplication(KTstAppUid);
 	}
+
--- a/localisation/apparchitecture/tef/TSTAPP_standalone.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSTAPP_standalone.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code 
 */
 
-#include <platform_paths.hrh>
+
 
  TARGET        	tstapp.exe
  TARGETTYPE    	exe
@@ -34,21 +32,22 @@
 EPOCSTACKSIZE 	0x5000
 
 SOURCEPATH    	.
-SOURCE        	TSTAPP_standalone.cpp
+SOURCE        	TSTAPP_standalone.CPP
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
-systeminclude 	/EPOC32/INCLUDE/ECOM
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
+//systeminclude 	/epoc32/include/ecom
+
 
 //reg added for Datacaging
 START RESOURCE	tstapp_reg.rss
 TARGETPATH		/private/10003a3f/import/apps
 END
 
-START RESOURCE 	tstapp.rss
+START RESOURCE 	TSTAPP.rss
 TARGETPATH 		/resource/apps
 END
 
@@ -101,3 +100,5 @@
 END
 
 LIBRARY 	euser.lib apparc.lib eikcore.lib cone.lib  
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TSidChecker/10281FDF.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSidChecker/10281FDF.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,14 +15,12 @@
 // 
 //
 
-
-
 /**
  @file 10281FDF.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include "RegistryInfo.rh"
+#include <ecom/registryinfo.rh>
 
 RESOURCE REGISTRY_INFO r_registry
 	{
--- a/localisation/apparchitecture/tef/TSidChecker/TestSidChecker.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSidChecker/TestSidChecker.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,7 +16,7 @@
 #include "TestSidChecker.h"
 
 #include <e32std.h>
-#include <ImplementationProxy.h>
+#include <ecom/implementationproxy.h>
 #include <e32property.h>
 #include <e32test.h>
 #include <e32debug.h>
@@ -39,9 +39,9 @@
 	return ImplementationTable;
 	}
 
-//////////////////////////////
+//
 // private class declarations
-//////////////////////////////
+//
 
 NONSHARABLE_CLASS(CApFileTestPropertyMonitor) : public CActive
 	{
@@ -77,9 +77,9 @@
 	RTimer iTimer;
 	};
 
-//////////////////////////////
+//
 // CApFileTestPropertyMonitor
-//////////////////////////////
+//
 
 CApFileTestPropertyMonitor* CApFileTestPropertyMonitor::NewL(TCallBack aCallBack)
 	{	
@@ -126,9 +126,9 @@
 	iProperty.Cancel();
 	}
 
-//////////////////////////////
+//
 // CApFileTestOneShotTimer
-//////////////////////////////
+//
 
 CApFileTestOneShotTimer* CApFileTestOneShotTimer::NewL(TCallBack aCallBack)
 	{
@@ -175,9 +175,9 @@
 	iTimer.Cancel();
 	}
 
-//////////////////////////////
+//
 // CTestSidChecker
-//////////////////////////////
+//
 
 CTestSidChecker* CTestSidChecker::NewL()
 	{
@@ -207,8 +207,9 @@
 		#else
 		TDriveUnit drive(EDriveX);
 		RFs	fs;
-		User::LeaveIfError(fs.Connect());
-		CleanupClosePushL(fs);
+		TInt err = fs.Connect();
+		if (err != KErrNone)
+			return ret;
 		//The removable media is expected at D: on NAND ROM and at E: on normal ROMs.
 		//The following code works on techview but not guaranteed to work on all platforms. 
 		TDriveInfo driveInfo;
@@ -228,7 +229,6 @@
 			 	}
 			}
 		fs.Close();
-		CleanupStack::PopAndDestroy(&fs);
 		#endif
 		ret = (aDrive == drive);
 		}
--- a/localisation/apparchitecture/tef/TSidChecker/TestSidChecker.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSidChecker/TestSidChecker.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,7 +16,10 @@
 #ifndef __TESTSIDCHECKER_H__
 #define __TESTSIDCHECKER_H__
 
-#include <ApSidChecker.h>
+#include <apsidchecker.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "apsidcheckermap.h"
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <e32property.h>
 
 const TUid  KApFileTestAppType              = {0x10281FDB};
@@ -92,3 +95,4 @@
 	};
 
 #endif
+
--- a/localisation/apparchitecture/tef/TSidChecker/TestSidChecker.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TSidChecker/TestSidChecker.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
@@ -15,7 +15,7 @@
 *
 */
 
-TARGET TestSidChecker.dll
+TARGET testsidchecker.dll
 CAPABILITY All -Tcb
 TARGETTYPE plugin
 
@@ -23,10 +23,16 @@
 
 SOURCEPATH .
 SOURCE TestSidChecker.cpp
-SYSTEMINCLUDE /epoc32/include /epoc32/include/ecom
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE /epoc32/include/ecom
+
+userinclude  ../../inc
 
 start RESOURCE 10281FDF.rss
 target testsidchecker.rsc
 end
 
-LIBRARY EUSER.LIB APFILE.LIB ECOM.LIB EFSRV.LIB
\ No newline at end of file
+LIBRARY euser.lib aplist.lib ecom.lib efsrv.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TStartDoc.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TStartDoc.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file 
  @internalComponent - Internal Symbian test code 
@@ -24,7 +22,7 @@
 #define __TSTARTDOC_H__
 
 #if !defined(__E32STD_H__)
-#include <E32STD.H>
+#include <e32std.h>
 #endif
 /** KLitLongURL must be > 256 characters long, in this case it's 259 characters long
     The name is a little mis-leading, as it's not a real URL. URL is used in the name
@@ -40,3 +38,4 @@
 const TInt KTStartDocTestPassed = 2387;
 
 #endif
+
--- a/localisation/apparchitecture/tef/TStartDocApp.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TStartDocApp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -24,8 +24,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -59,11 +57,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CStartDocAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CStartDocAppUi : public CEikAppUi
     {
 public:
@@ -103,11 +101,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CStartDocDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CStartDocDocument : public CEikDocument
 	{
 public:
@@ -153,11 +151,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CStartDocApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CStartDocApplication : public CEikApplication
 	{
 private: 
@@ -197,3 +195,4 @@
 	return EikStart::RunApplication(NewApplication);
 	}
 	
+
--- a/localisation/apparchitecture/tef/TStartDocApp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TStartDocApp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TStartDocApp_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TStartDocApp_v2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TStartDocApp_v2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,7 +17,7 @@
 
 TARGETPATH		/sys/bin
 
-	TARGET        TStartDocApp.exe
+	TARGET        tstartdocapp.exe
 	TARGETTYPE    exe
 
 CAPABILITY	All -Tcb
@@ -32,10 +32,14 @@
 END   
 
 USERINCLUDE   .
-SYSTEMINCLUDE /epoc32/include
-SYSTEMINCLUDE /epoc32/include/techview
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE /epoc32/include/techview
 
 LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib
 
 
 epocstacksize 0x5000 //added
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/TTestEcomFileRec.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-
-/**
- @file
- @internalComponent - Internal Symbian test code 
-*/
-
-#include <apfrec.h>
-#include <ImplementationProxy.h> 
-
-class CTestEcomRecognizer : public CApaFileRecognizerType
-	{
-public: // from CApaFileRecognizerType
-	TThreadId RunL(TApaCommand aCommand,const TDesC* aDocFileName=NULL,const TDesC8* aTailEnd=NULL) const;
-	static CApaFileRecognizerType* CreateRecognizerL();
-private: // from CApaFileRecognizerType
-	TRecognizedType DoRecognizeFileL(RFs& aFs,TUidType aType);
-	};
-
-TThreadId CTestEcomRecognizer::RunL(TApaCommand /*aCommand*/,const TDesC* /*aDocFileName*/,const TDesC8* /*aTailEnd*/) const
-	{
-	TThreadId id(NULL);
-	return id;
-	}
-
-CApaFileRecognizerType::TRecognizedType CTestEcomRecognizer::DoRecognizeFileL(RFs& /*aFs*/,TUidType /*aType*/)
-	{
-	return iRecognizedType;
-	}
-
-
-GLDEF_C TInt E32Dll(
-					)
-
-// DLL entry point
-
-	{
-	return KErrNone;
-	}
-
-CApaFileRecognizerType* CTestEcomRecognizer::CreateRecognizerL()
-	{
-	return new (ELeave) CTestEcomRecognizer();
-	}
-
-const TImplementationProxy ImplementationTable[] = 
-    {
-	IMPLEMENTATION_PROXY_ENTRY(0x101F7D8C,CTestEcomRecognizer::CreateRecognizerL)
-	};
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    return ImplementationTable;
-    }
--- a/localisation/apparchitecture/tef/TTestEcomFileRec.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-target 		ttestecomfilerec.dll
-CAPABILITY	All -Tcb
-targettype 	plugin
-uid			0x10009d8d 0x10000181
-VENDORID 	0x70000001
-
-SOURCEPATH		.
-SOURCE			TTESTECOMFILEREC.CPP
-systeminclude   /EPOC32/INCLUDE
-systeminclude	/EPOC32/INCLUDE/ECOM
-
-
-library         EUSER.LIB APPARC.LIB 
-
-
-start resource 10000181.rss
-target ttestecomfilerec.rsc
-end
--- a/localisation/apparchitecture/tef/TWindowChaining.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TWindowChaining.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -25,7 +23,7 @@
 #define __TWINDOWCHAINING_H__
 
 #if !defined(__E32STD_H__)
-#include <E32STD.H>
+#include <e32std.h>
 #endif
 
 /** Ordinal priority chosen at random */
@@ -48,3 +46,4 @@
 
 _LIT(KWinChainChildAppFileName, "z:\\sys\\bin\\t_winchainLaunch.exe");
 #endif // __TWINDOWCHAINING_H__
+
--- a/localisation/apparchitecture/tef/T_AppList.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_AppList.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/T_AppList.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_AppList.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -24,7 +22,7 @@
 #ifndef		__T_APPLIST_H
 #define		__T_APPLIST_H
 
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include "testableapalssession.h"
 
 _LIT(KTestAppListStep, "T_AppList");
@@ -46,3 +44,5 @@
 	};
 
 #endif
+
+
--- a/localisation/apparchitecture/tef/T_AppListFileBootStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_AppListFileBootStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -26,8 +26,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -283,3 +281,4 @@
 	// close session and finish
 	iSession.Close();
 	}
+
--- a/localisation/apparchitecture/tef/T_AppListFileBootStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_AppListFileBootStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,8 +22,8 @@
 #ifndef __T_APPLISTFILEBOOTSTEP_H
 #define __T_APPLISTFILEBOOTSTEP_H
 
-#include "ApparcTestServer.h"
-#include <appfwk_test_utils.h>
+#include "apparctestserver.h"
+#include "appfwk_test_utils.h"
 
 _LIT(KT_AppListFile_Boot1,"T_AppListFile_Boot1");
 _LIT(KT_AppListFile_Boot2,"T_AppListFile_Boot2");
--- a/localisation/apparchitecture/tef/T_AppListFileUpdateStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_AppListFileUpdateStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,8 +25,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/T_AppListFileUpdateStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_AppListFileUpdateStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,8 +22,8 @@
 #ifndef __T_APPLISTFILEUPDATESTEP_H
 #define __T_APPLISTFILEUPDATESTEP_H
 
-#include "ApparcTestServer.h"
-#include <appfwk_test_utils.h>
+#include "apparctestserver.h"
+#include "appfwk_test_utils.h"
 
 
 _LIT(KT_AppListFileUpdate,"T_AppListFileUpdate");
@@ -58,3 +56,4 @@
 	
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_ApsScan.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ApsScan.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -27,14 +25,14 @@
 
 #include "T_ApsScan.h"
 #include "appfwk_test_utils.h"
-#include "tmimerec\constants.hrh"
-#include "tmimerec\constants.h"
+#include "TMimeRec/constants.hrh"
+#include "TMimeRec/constants.h"
 
-/////////////////////////////////////////////////
+//
 
 const TInt KDelay = 4000000; // Should be enough for CApaEComMonitor to detect new plugin
 
-/////////////////////////////////////////////////
+//
 
 CT_ApsScanStep::CT_ApsScanStep()
 	{
--- a/localisation/apparchitecture/tef/T_ApsScan.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ApsScan.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code	 
@@ -23,7 +21,7 @@
 #ifndef		__T_APSSCAN_H
 #define		__T_APSSCAN_H
 
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 
 _LIT(KT_ApsScanStep, "T_ApsScan");
 
--- a/localisation/apparchitecture/tef/T_AutoMMCReaderOpen.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_AutoMMCReaderOpen.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -18,8 +18,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/T_AutoMMCReaderOpen.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_AutoMMCReaderOpen.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -23,7 +21,7 @@
 #ifndef		__T_AUTOMMCREADEROPEN_H
 #define		__T_AUTOMMCREADEROPEN_H
 
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 
 _LIT(KTestAutoMMCReaderOpenStep, "T_AutoMMCReaderOpen");
 
@@ -39,3 +37,4 @@
 	};
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_BackupStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_BackupStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -549,7 +547,7 @@
 	TRequestStatus status;
 	gWrapper->CloseAll(MBackupObserver::EReleaseLockNoAccess, status);
 	User::WaitForRequest(status);
-///vm
+//vm
 	if(status != KErrNone)
 		{
 		return status;
@@ -557,7 +555,7 @@
 
 	const TBackupOperationAttributes gEventEnd(MBackupObserver::ETakeLock, MBackupOperationObserver::EEnd);
 	gWrapper->NotifyBackupOperationL(gEventEnd); 
-////
+//
 
 	gWrapper->RestartAll();
 	gWrapper->RestartAll();
@@ -666,11 +664,11 @@
 	INFO_PRINTF1(_L("\nWait."));
 	User::After(1000000);
 	
-///vm
+//vm
 	const TBackupOperationAttributes gEventEnd(MBackupObserver::ETakeLock, MBackupOperationObserver::EEnd);
 	gWrapper->NotifyBackupOperationL(gEventEnd); 
 	
-////
+//
 
 	INFO_PRINTF1(_L("\nGWrapper: Restart all......."));
 	gWrapper->RestartAll();
@@ -917,3 +915,4 @@
 	INFO_PRINTF1(_L("Test completed!"));
 	return TestStepResult();
 }
+
--- a/localisation/apparchitecture/tef/T_BackupStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_BackupStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -22,7 +20,7 @@
 
 #if (!defined __T_BACKUP_STEP_H__)
 #define __T_BACKUP_STEP_H__
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 #include <babackup.h>
 
 class CT_BackupStep;
--- a/localisation/apparchitecture/tef/T_Capability1.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Capability1.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -14,19 +14,18 @@
 // The following test case is used to test whether apparctestserver has the capability
 // to access writable apis
 // 
+// t_capability1.cpp
 //
 
-
-
 /**
- @file
+ @file t_capability1.cpp
  @internalComponent - Internal Symbian test code
 */
 
 #include "T_Capability1.h"
 #include "tstapp.h"
 #include "testableapalssession.h"
-#include <appfwk_test.h>
+#include "appfwk_test.h"
 
 /**
    @SYMTestCaseID		APPFWK-APPARC-0030
--- a/localisation/apparchitecture/tef/T_Capability1.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Capability1.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -26,7 +24,7 @@
 #if !defined(__T_CAPABILITY1_H__)
 #define __T_CAPABILITY1_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 #include "appfwk_test_AppUi.h"
 
 class RApaLsSession;
--- a/localisation/apparchitecture/tef/T_Capability2.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Capability2.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -14,19 +14,18 @@
 // The following test case is used to test whether apparctestserver has the capability
 // to access writable apis
 // 
+// t_capability2.cpp
 //
 
-
-
 /**
- @file
+ @file t_capability2.cpp
  @internalComponent - Internal Symbian test code
 */
 
 #include "T_Capability2.h"
 #include "tstapp.h"
 #include "testableapalssession.h"
-#include <appfwk_test.h>
+#include "appfwk_test.h"
 
 /**
    @SYMTestCaseID		APPFWK-APPARC-0030
--- a/localisation/apparchitecture/tef/T_Capability2.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Capability2.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -26,8 +24,8 @@
 #if !defined(__T_CAPABILITY2_H__)
 #define __T_CAPABILITY2_H__
 
-#include "ApparcTestServer.h"
-#include "appfwk_test_AppUi.h"
+#include "apparctestserver.h"
+#include "appfwk_test_appui.h"
 
 class RApaLsSession;
 
--- a/localisation/apparchitecture/tef/T_CaptionStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_CaptionStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,12 +25,11 @@
 // tstapp05.rls
 // tstappsc.rls
 // 
+// t_captionstep.cpp
 //
 
-
-
 /**
- @file
+ @file t_captionstep.cpp
  @test
  @internalComponent - Internal Symbian test code
 */
@@ -40,13 +39,15 @@
 #include <e32test.h>
 
 #include <apgctl.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apgctllist.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apfctlf.h>
-#include <APGCLI.H>
-#include <APSSERV.H>
-#include <APAFLREC.H>
-#include <APFREC.H>
-#include <APPARC.H>
-#include <APGDOOR.H>
+#include <apgcli.h>
+#include "../apserv/apsserv.h"
+#include <apaflrec.h>
+#include <apparc.h>
+#include <apgdoor.h>
 #include <centralrepository.h>
 
 #include <s32file.h>
@@ -58,11 +59,11 @@
 #include "TIconLoaderAndIconArrayForLeaks.h"
 
 
-/////////////////////////////////////////////////////////////////////////////////
+//
 //
 //		global consts and declarations
 //
-/////////////////////////////////////////////////////////////////////////////////
+//
 
 
 _LIT(KTestTApaAppInfoCaptionEnglish,"TstCap UK");
@@ -93,34 +94,51 @@
 const TUid KUidIconCaptionRepository = {0x1028583d}; // Central Repository UID.
 const TInt KTextSize = 100;
 
-/////////////////////////////////////////////////////////////////////////////////
+//
 //
 //		CT_CaptionStep
 //
-/////////////////////////////////////////////////////////////////////////////////
+//
 
 
 void CT_CaptionStep::ChangeLocaleL(TLanguage aLanguage)
 	{
-	//  Change locale according to information in the HAL
-	_LIT(KLitLocaleDllNameBase, "ELOCL");
-	_LIT(KLitLocaleDllNameExtension, ".LOC");
-	RLibrary localeDll;
-	TBuf<16> localeDllName(KLitLocaleDllNameBase);
-	CleanupClosePushL(localeDll);
-	const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6));
-	_LIT(TwoDigExt,".%02d");
-	localeDllName.AppendFormat(TwoDigExt, aLanguage);
-	TInt error=localeDll.Load(localeDllName, uidType);
-	if (error==KErrNotFound)
-		{
-		localeDllName=KLitLocaleDllNameBase;
-		localeDllName.Append(KLitLocaleDllNameExtension);
-		error=localeDll.Load(localeDllName, uidType);
-		}
-	User::LeaveIfError(error);
-	User::LeaveIfError(UserSvr::ChangeLocale(localeDllName));
-	CleanupStack::PopAndDestroy(&localeDll);
+#ifdef SYMBIAN_DISTINCT_LOCALE_MODEL 
+    _LIT(KLitLocaleDllNameBase, "elocl_lan");
+    _LIT(KLitLocaleDllNameExtension, ".loc");
+#else
+    _LIT(KLitLocaleDllNameBase, "ELOCL");
+    _LIT(KLitLocaleDllNameExtension, ".LOC");
+#endif          
+    RLibrary localeDll;
+    TBuf<16> localeDllName(KLitLocaleDllNameBase);
+    CleanupClosePushL(localeDll);
+    const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6));
+#ifdef SYMBIAN_DISTINCT_LOCALE_MODEL         
+    _LIT(ThreeDigExt,".%03d");
+    localeDllName.AppendFormat(ThreeDigExt, aLanguage);
+#else
+    _LIT(TwoDigExt,".%02d");
+    localeDllName.AppendFormat(TwoDigExt, aLanguage);
+#endif          
+            
+    TInt error=localeDll.Load(localeDllName, uidType);
+    if (error==KErrNotFound)
+        {
+        localeDllName=KLitLocaleDllNameBase;
+        localeDllName.Append(KLitLocaleDllNameExtension);
+        error=localeDll.Load(localeDllName, uidType);
+        }
+    User::LeaveIfError(error);
+            
+#ifdef  SYMBIAN_DISTINCT_LOCALE_MODEL
+    TExtendedLocale myExtendedLocale;
+    User::LeaveIfError(myExtendedLocale.LoadLocaleAspect(localeDllName));
+    User::LeaveIfError(myExtendedLocale.SaveSystemSettings());
+#else   
+    User::LeaveIfError(UserSvr::ChangeLocale(localeDllName));
+#endif
+    CleanupStack::PopAndDestroy(&localeDll);
 	}
 
 
@@ -177,9 +195,8 @@
 		TestTApaAppInfoStreamsL();
 		//Skip the memory leak test
 		//HEAP_TEST_LS_SESSION(iLs, 0, 0, TestTApaAppInfoL(), iLs.ClearAppInfoArray() );
-		//and run this instead
+		//and run this instead:
 		TestTApaAppInfoL();
-
 		INFO_PRINTF1(_L("Test for that language finished..."));
 		}
 
@@ -319,20 +336,24 @@
 	CActiveScheduler* scheduler = new(ELeave) CActiveScheduler;
 	CActiveScheduler::Install(scheduler);
 	CleanupStack::PushL(scheduler);
+	INFO_PRINTF1(_L("Created and installed active scheduler... "));
 
 	CApaProcess* process=NULL;
 	TRAPD(ret,process = CApaProcess::NewL(iFs));
 	TEST(ret==KErrNone);
+	INFO_PRINTF1(_L("CApaProcess is created... "));
 
 	CleanupStack::PushL(process);
 
 	CApaDocument* doc=NULL;
 	TApaApplicationFactory appFact(KUidTestApp);
 	TRAP(ret,doc=process->AddNewDocumentL(appFact));
+	INFO_PRINTF1(_L("Added a new document to the process by providing app factory which contains test app... "));
 	TEST(ret==KErrNone);
 
 	CApaDoor* door = NULL;
 	TRAP(ret,door=CApaDoor::NewL(iFs,*doc,TSize(400,400)));
+	INFO_PRINTF1(_L("Created a CApaDoor with document generated... "));
 	TEST(ret==KErrNone);
 
 	switch (User::Language())
@@ -359,7 +380,9 @@
 			User::Leave(KErrNotSupported);
 			break;
 		};
+	INFO_PRINTF1(_L("Tested the caption... "));
 	process->DestroyDocument(doc);
+	INFO_PRINTF1(_L("Deleted the process... "));
 	CleanupStack::PopAndDestroy(2); //process,scheduler
 	}
 
@@ -623,7 +646,7 @@
 
 /**
 @SYMTestCaseID 				APPFWK-APPARC-0087
-@SYMPREQ 					CR1787
+@SYMPREQ 					CR1187
 @SYMREQ						REQ9167
 @SYMTestCaseDesc			Tests whether the captions, icon configuration details have been retrieved properly from
 							the central repository settings and has the precedence over its resource file information.
@@ -683,7 +706,7 @@
 
 /**
 @SYMTestCaseID 				APPFWK-APPARC-0088
-@SYMPREQ 					CR1787
+@SYMPREQ 					CR1187
 @SYMREQ						REQ9167
 @SYMTestCaseDesc			Tests whether the shortcaption is set through the API has got the precedence over central
 							repository and resource file customisation.
@@ -726,7 +749,7 @@
 
 /**
 @SYMTestCaseID 				APPFWK-APPARC-0089
-@SYMPREQ 					CR1787
+@SYMPREQ 					CR1187
 @SYMREQ						REQ9167
 @SYMTestCaseDesc			Tests whether the changes made in central repository is notified by the central repository
 							observer (CApaIconCaptionCenrepObserver), which watches for changes in the Central Repository
@@ -785,7 +808,7 @@
 
 /**
 @SYMTestCaseID 				APPFWK-APPARC-0090
-@SYMPREQ 					CR1787
+@SYMPREQ 					CR1187
 @SYMREQ						REQ9167
 @SYMTestCaseDesc			Tests whether the caption, icon configuration details have been retrieved properly from the
 							Central Repository with respect to change in system language.
@@ -958,7 +981,7 @@
 		
 /**
 @SYMTestCaseID 				APPFWK-APPARC-0091
-@SYMPREQ 					CR1787
+@SYMPREQ 					CR1187
 @SYMREQ						REQ9167
 @SYMDEF						DEF125262
 @SYMTestCaseDesc			Checks there is no memory leaks when CApaIconCaptionOverridesForApp & CApaIconCaptionCenrepObserver
@@ -1013,7 +1036,7 @@
 	TEST(r==KErrNone);
 	INFO_PRINTF2(_L("DoShortCaptionTestL() finished with value '%d'\n"), r); */
 
-
 	INFO_PRINTF1(_L("....test T_Caption step finished!"));
 	return TestStepResult();
 	}
+
--- a/localisation/apparchitecture/tef/T_CaptionStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_CaptionStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -28,16 +26,15 @@
 
 #include <s32file.h>
 #include <apgnotif.h>
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 #include "testableapalssession.h"
 
-
  
-/////////////////////////////////////////////////////////////////////////////////
+//
 //
 //		CT_CaptionStep definition
 //
-/////////////////////////////////////////////////////////////////////////////////
+//
 
 
 class CT_CaptionStep :public CTestStep
--- a/localisation/apparchitecture/tef/T_CmdlnStep.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_CmdlnStep.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,8 +17,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -145,8 +143,8 @@
 	TInt ret = fSession.Entry(KTempDir,dirEntry);	
 	if(ret==KErrNotFound)
 	{
-		INFO_PRINTF1(_L("Create C:\\System\\Data Directory if not existing already"));
-		fSession.MkDir(KTempDir); /* Create Data Directory as it does not exist  */				
+		INFO_PRINTF1(_L("Create C:\\System\\Data Directory if not existing already"));	
+		fSession.MkDir(KTempDir); /* Created Data Directory as it does not exist  */
 	}	
 	User::LeaveIfError(file.Replace(fSession, KTDocName, EFileStreamText|EFileShareAny));
 	User::LeaveIfError(file.Write(KTWriteData));//write some test data
@@ -277,7 +275,8 @@
 				TInt ret = fSession.Entry(KTempDir,dirEntry);	
 				if(ret==KErrNotFound)
 					{
-					INFO_PRINTF1(_L("Create C:\\System\\Data Directory if not existing already"));	
+					INFO_PRINTF1(_L("Create C:\\System\\Data Directory if not existing already"));
+					fSession.MkDir(KTempDir); /* Created Data Directory as it does not exist  */
 					}	
 				User::LeaveIfError(file.Replace(fSession, KTDocName, EFileStreamText|EFileShareAny));
     			TRAP(ret,cmdLine->SetFileByHandleL(file));
@@ -408,6 +407,7 @@
 	if(ret==KErrNotFound)
 	{
 		INFO_PRINTF1(_L("Create C:\\System\\Data Directory if not existing already"));	
+		fSession.MkDir(KTempDir); /* Created Data Directory as it does not exist  */
 	}
 	
 	User::LeaveIfError(file.Replace(fSession, KTDocName, EFileStreamText|EFileShareAny));
@@ -675,3 +675,5 @@
 	INFO_PRINTF1(_L("Test completed!"));
 	return TestStepResult();
 }
+
+
--- a/localisation/apparchitecture/tef/T_CmdlnStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_CmdlnStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -31,7 +29,7 @@
 #include <e32test.h>
 #include <apacmdln.h>
 #include <apgcli.h>
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 #include <apparc.h>
 
 //!  A CT_CmdlnStep test class. 
--- a/localisation/apparchitecture/tef/T_ControlPanelTest.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ControlPanelTest.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,12 +13,11 @@
 // Description:
 // Tests control panel Application Apparc base classes and utility functions to get application's data.\n
 // 
+// t_controlpaneltest.cpp
 //
 
-
-
 /**
- @file
+ @file t_controlpaneltest.cpp
  @internalComponent - Internal Symbian test code 
 */
 
@@ -29,7 +28,7 @@
 #include <s32file.h> 
 
 #include <apaid.h>
-#include "..\apparc\apadll.h"
+#include "../apparc/apadll.h"
 #include <apgaplst.h>
 #include <apgicnfl.h>
 #include <apgdoor.h>
@@ -40,8 +39,7 @@
 #include <apaflrec.h>
 #include <apgcli.h>
 #include <apacmdln.h>
-#include <apsserv.h>
-#include <appfwk_test_AppUi.h>
+#include "appfwk_test_appui.h"
 
 #include "T_ControlPanelTest.h"
 #include "tstapp.h"
@@ -60,7 +58,7 @@
 _LIT(KSRCRESOURCEPATH,"Z:\\private\\10003a3f\\import\\apps\\App_CTRL2_reg.Rsc");
 _LIT(KDESTRESOURCEPATH,"C:\\private\\10003a3f\\import\\apps\\App_CTRL2_reg.Rsc");
 
-LOCAL_D TInt SimulateKey(TAny*)
+LOCAL_D TInt SimulateKeyL(TAny*)
 	{
 	User::After(3000000);
 	RWsSession session;
@@ -86,7 +84,6 @@
 	session.Flush();
 	
 	session.Close();
-	
 	return KErrNone;
 	}
 
@@ -313,7 +310,7 @@
 	
 	RThread thread;
 	TFullName name=_L("Control Panel Test");
-	TInt r=thread.Create(name,SimulateKey,KDefaultStackSize,KDefaultStackSize,KDefaultStackSize,NULL);
+	TInt r=thread.Create(name,SimulateKeyL,KDefaultStackSize,KDefaultStackSize,KDefaultStackSize,NULL);
 	TEST(r==KErrNone);
 	thread.Resume();
 		
@@ -325,8 +322,6 @@
 	INFO_PRINTF1(_L("Out testControls3L......"));
 	}
 
-
-
 /**
    Auxiliary Fn for T-ControlPanelStep-testControls1L, T-ControlPanelStep-testControls2L, T-ControlPanelStep-testControls3L
    
@@ -387,8 +382,6 @@
 	}
 
 
-
-
 /**
   Auxiliary Fn for all Test Cases.
  
@@ -500,3 +493,4 @@
 	{
 
 	}
+
--- a/localisation/apparchitecture/tef/T_ControlPanelTest.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ControlPanelTest.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,12 +11,11 @@
 // Contributors:
 //
 // Description:
+// t_controlpaneltest.h
 //
 
-
-
 /**
- @file
+ @file t_controlpaneltest.h
  @internalComponent - Internal Symbian test code 
 */
  
@@ -26,23 +25,31 @@
 #ifndef		__T_CONTROLPANEL_STEP_H
 #define		__T_CONTROLPANEL_STEP_H
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 #include <apaid.h>
-#include "..\apparc\apadll.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "../apparc/apadll.h"
 #include <apgaplst.h>
 #include <apgicnfl.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apgdoor.h>
 #include <apfrec.h>
 #include <apfctlf.h>
 #include <apgctl.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apgctllist.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apgaplst.h>
 #include <apaflrec.h>
 #include <apgcli.h>
 #include <apacmdln.h>
-#include <apsserv.h>
 #include "appfwk_test_utils.h"
-#include "..\apserv\apsclsv.h" // so I can start the server
+#include "../apserv/apsclsv.h" // so I can start the server
 
 
 _LIT(KT_ControlPanelTest, "T_ControlPanelTest");
@@ -94,3 +101,5 @@
 	};
 
 #endif
+
+
--- a/localisation/apparchitecture/tef/T_DataMappingPersistenceA.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataMappingPersistenceA.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
--- a/localisation/apparchitecture/tef/T_DataMappingPersistenceA.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataMappingPersistenceA.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,7 +22,7 @@
 #if (!defined __T_DATAMAPPINGPERSISTENCEA_STEP_H__)
 #define __T_DATAMAPPINGPERSISTENCEA_STEP_H__
 
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include "T_RApaLsSessionStep.h"
 
 _LIT(KT_DataMappingPersistenceAStep,"T_DataMappingPersistenceA");
--- a/localisation/apparchitecture/tef/T_DataMappingPersistenceB.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataMappingPersistenceB.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/T_DataMappingPersistenceB.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataMappingPersistenceB.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,7 +22,7 @@
 #if (!defined __T_DATAMAPPINGPERSISTENCEB_STEP_H__)
 #define __T_DATAMAPPINGPERSISTENCEB_STEP_H__
 
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include "T_RApaLsSessionStep.h"
 
 _LIT(KT_DataMappingPersistenceBStep,"T_DataMappingPersistenceB");
--- a/localisation/apparchitecture/tef/T_DataMappingPersistenceC.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataMappingPersistenceC.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
--- a/localisation/apparchitecture/tef/T_DataMappingPersistenceC.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataMappingPersistenceC.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,7 +22,7 @@
 #if (!defined __T_DATAMAPPINGPERSISTENCEC_STEP_H__)
 #define __T_DATAMAPPINGPERSISTENCEC_STEP_H__
 
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include "T_RApaLsSessionStep.h"
 
 _LIT(KT_DataMappingPersistenceCStep,"T_DataMappingPersistenceC");
--- a/localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,14 +16,12 @@
 // 
 //
 
-
-
 /**
  @file 
 */
 
 TARGETPATH	/sys/bin
-target          T_DataPrioritySystem1.EXE
+target          t_dataprioritysystem1.exe
 targettype      EXE
 
 
@@ -33,9 +31,7 @@
 
 CAPABILITY WriteDeviceData
 
-SYSTEMINCLUDE   /EPOC32/INCLUDE 
-
-systeminclude	/epoc32/include/test
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
 SOURCEPATH		.	
@@ -43,22 +39,24 @@
 
 USERINCLUDE     .
 USERINCLUDE 	..
-
+userinclude		../../../uiftestfw/inc
 
 start resource T_DataPrioritySystem1_reg.rss
-targetpath /private/10003A3F/apps
+targetpath /private/10003a3f/apps
 end
 
 start resource T_DataPrioritySystem1_loc.rss
 targetpath /resource/apps
 end
 
-LIBRARY		CONE.LIB   WS32.LIB
-LIBRARY		APPFWK_TEST_APPUI.LIB
-LIBRARY		EUSER.LIB
-LIBRARY		TESTEXECUTEUTILS.LIB  TestExecuteLogClient.LIB
-LIBRARY		APPARC.LIB EFSRV.LIB ESTOR.LIB GDI.LIB FBSCLI.LIB
-LIBRARY     APFILE.LIB APGRFX.LIB  BAFL.LIB APMIME.LIB
-LIBRARY		EIKCORE.LIB 
-LIBRARY		APSERV.LIB
-LIBRARY     ECOM.LIB
+LIBRARY		cone.lib   ws32.lib
+LIBRARY		appfwk_test_appui.lib
+LIBRARY		euser.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     apfile.lib apgrfx.lib  bafl.lib apmime.lib
+LIBRARY		eikcore.lib 
+LIBRARY		apserv.lib
+LIBRARY     ecom.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataPrioritySystem1/T_DataPrioritySystem1_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,14 +16,12 @@
 // 
 //
 
-
-
 /**
  @file
 */
 
 TARGETPATH	/sys/bin
-target          T_DataPrioritySystem2.EXE
+target          t_dataprioritysystem2.exe
 targettype      EXE
 
 
@@ -33,9 +31,7 @@
 
 CAPABILITY None
 
-SYSTEMINCLUDE   /EPOC32/INCLUDE 
-
-systeminclude	/epoc32/include/test
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
 SOURCEPATH		.	
@@ -43,21 +39,24 @@
 
 USERINCLUDE     .
 USERINCLUDE 	..
+userinclude		../../../uiftestfw/inc
 
 start resource T_DataPrioritySystem2_reg.rss
-targetpath /private/10003A3F/apps
+targetpath /private/10003a3f/apps
 end
 
 start resource T_DataPrioritySystem2_loc.rss
 targetpath /resource/apps
 end
 
-LIBRARY		CONE.LIB   WS32.LIB
-LIBRARY		APPFWK_TEST_APPUI.LIB
-LIBRARY		EUSER.LIB
-LIBRARY		TESTEXECUTEUTILS.LIB  TestExecuteLogClient.LIB
-LIBRARY		APPARC.LIB EFSRV.LIB ESTOR.LIB GDI.LIB FBSCLI.LIB
-LIBRARY     APFILE.LIB APGRFX.LIB  BAFL.LIB APMIME.LIB
-LIBRARY		EIKCORE.LIB 
-LIBRARY		APSERV.LIB
-LIBRARY     ECOM.LIB
+LIBRARY		cone.lib   ws32.lib
+LIBRARY		appfwk_test_appui.lib
+LIBRARY		euser.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     apfile.lib apgrfx.lib  bafl.lib apmime.lib
+LIBRARY		eikcore.lib 
+LIBRARY		apserv.lib
+LIBRARY     ecom.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataPrioritySystem2/T_DataPrioritySystem2_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/T_DataPrioritySystem3_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataPrioritySystem3_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/T_DataTypeMappingWithSid1.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataTypeMappingWithSid1.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,19 +16,18 @@
 // It is to ensure that priority checking mechanism (downgrading priority of 
 // untrusted apps) works as was designed.
 // 
+// t_datatypemappingwithsid1.cpp
 //
 
-
-
 /**
- @file T_DataTypeMappingWithSid1.cpp
+ @file t_datatypemappingwithsid1.cpp
  @internalComponent - Internal Symbian test code
 */
 
 #include "T_DataTypeMappingWithSid1.h"
 #include "tstapp.h"
 #include "testableapalssession.h"
-#include <appfwk_test.h>
+#include "appfwk_test.h"
 
 /**
    @SYMTestCaseID		APPFWK-APPARC-0036
--- a/localisation/apparchitecture/tef/T_DataTypeMappingWithSid1.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_DataTypeMappingWithSid1.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -18,8 +18,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -28,8 +26,8 @@
 #if !defined(__T_DATATYPEMAPPINGWITHSID1_H__)
 #define __T_DATATYPEMAPPINGWITHSID1_H__
 
-#include "ApparcTestServer.h"
-#include "appfwk_test_AppUi.h"
+#include "apparctestserver.h"
+#include "appfwk_test_appui.h"
 
 class RApaLsSession;
 
--- a/localisation/apparchitecture/tef/T_EndTaskStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_EndTaskStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -26,9 +24,9 @@
 #include <apacmdln.h>
 #include <apgwgnam.h>
 
-#include <appfwk_test.h>
+#include "appfwk_test.h"
 #include "T_EndTaskStep.h"
-#include "TEndTaskTestApp\EndTaskTestAppExternalInterface.h"
+#include "TEndTaskTestApp/EndTaskTestAppExternalInterface.h"
 
 CTEndTaskStep::CTEndTaskStep()
 	{
@@ -264,9 +262,11 @@
 	CApaCommandLine* cmdLn = CApaCommandLine::NewLC();     
 	cmdLn->SetDocumentNameL(KNullDesC);					//need to start without resource file
 	cmdLn->SetExecutableNameL(fileName);
-	TInt result = aLs.StartApp(*cmdLn);
-	//Wait 1 sec for App to start
-	User::After(1000000);
+	
+	TThreadId threadId;
+	TRequestStatus status = KRequestPending;
+	TInt result = aLs.StartApp(*cmdLn, threadId, &status);
+	User::WaitForRequest(status);
 	CleanupStack::PopAndDestroy(cmdLn);
 	return result;
 	}
--- a/localisation/apparchitecture/tef/T_EndTaskStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_EndTaskStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
--- a/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -34,8 +32,8 @@
 #include <e32test.h>
 #include <apacmdln.h>
 #include <apgcli.h>
-#include "ApparcTestServer.h"
-#include "appfwk_test_AppUi.h"
+#include "apparctestserver.h"
+#include "appfwk_test_appui.h"
 
 
 //!  A Environment slots reader test class. 
@@ -66,3 +64,4 @@
 
 const TInt KMaxFilePath=50;
 #endif //__T_ENVSLOTS_H__
+
--- a/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,14 +15,12 @@
 // 
 //
 
-
-
 /**
  @file
 */
 
 TARGETPATH	/sys/bin
-target          T_EnvSlots.EXE
+target          t_envslots.exe
 targettype      EXE
 
 
@@ -31,9 +29,7 @@
 
 CAPABILITY All -Tcb
 
-SYSTEMINCLUDE   /EPOC32/INCLUDE 
-
-systeminclude	/epoc32/include/test
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
 SOURCEPATH		.	
@@ -41,22 +37,24 @@
 
 USERINCLUDE     .
 USERINCLUDE 	..
-
+userinclude		../../../uiftestfw/inc
 
 start resource T_EnvSlots_reg.rss
-targetpath /private/10003A3F/apps
+targetpath /private/10003a3f/apps
 end
 
 start resource T_EnvSlots_loc.rss
 targetpath /resource/apps
 end
 
-LIBRARY		CONE.LIB   WS32.LIB
-LIBRARY		APPFWK_TEST_APPUI.LIB
-LIBRARY		EUSER.LIB
-LIBRARY		TESTEXECUTEUTILS.LIB  TestExecuteLogClient.LIB
-LIBRARY		APPARC.LIB EFSRV.LIB ESTOR.LIB GDI.LIB FBSCLI.LIB
-LIBRARY     APFILE.LIB APGRFX.LIB  BAFL.LIB APMIME.LIB
-LIBRARY		EIKCORE.LIB 
-LIBRARY		APSERV.LIB
-LIBRARY     ECOM.LIB
+LIBRARY		cone.lib   ws32.lib
+LIBRARY		appfwk_test_appui.lib
+LIBRARY		euser.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     apfile.lib apgrfx.lib  bafl.lib apmime.lib
+LIBRARY		eikcore.lib 
+LIBRARY		apserv.lib
+LIBRARY     ecom.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file t_envslots_loc.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_EnvSlots/T_EnvSlots_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file t_envslots_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/T_ExeStep.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ExeStep.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -109,3 +107,4 @@
 
 	return TestStepResult();
 }
+
--- a/localisation/apparchitecture/tef/T_ExeStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ExeStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -22,8 +20,10 @@
 
 #if (!defined __T_EXE_STEP_H__)
 #define __T_EXE_STEP_H__
-
-#include "ApparcTestServer.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "apainternal.h"
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "apparctestserver.h"
 
 //!  A CT_ExeStep test class. 
 
@@ -44,3 +44,4 @@
 _LIT(KT_ExeStep,"T_Exe");
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_File1Step.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// Tests CApaScanningFileRecognizer APIs.
-// 
-//
-
-
-
-/**
- @file
- @internalComponent - Internal Symbian test code
-*/
-
-#include <e32uid.h>
-#include <f32file.h>
-#include <fbs.h>
-#include <apadef.h>
-#include <apfrec.h>
-#include <apfctlf.h>
-#include <apgctl.h>
-#include <ecom.h>
-
-#include "tstapp.h"
-#include "T_File1Step.h"
-
-//
-#if !defined(__E32TEST_H__)
-#include <e32test.h>
-#endif
-
-const TUid KTestEcomFileRecognizerUid={0x101F7D8C};
-
-void CT_File1Step::setup()
-	{
-#if defined(__EPOC32__)
-	TFullName filePath=_L("c:\\docs\\tstapp.doc");
-	TFullName tempPath=_L("c:\\system\\temp\\");
-	// if we're on the rack create the directories we need
-	TParse parser;
-	parser.Set(filePath,NULL,NULL);
-	iFs.MkDirAll(parser.DriveAndPath());
-	parser.Set(tempPath,NULL,NULL);
-	iFs.MkDirAll(parser.DriveAndPath());
-#endif
-	}
-
-/**
-   @SYMTestCaseID T-FileStep-testScanningFileTheRecognizerL
-  
-   @SYMPREQ
-  
-   @SYMTestCaseDesc 
-   
-   @SYMTestPriority High 
-  
-   @SYMTestStatus Implemented
-   
-   @SYMTestActions The method creates a scanning file recognizer object and observes whether
-   return values from RecognizerCount() and UpdateCounter() match with the
-   expected results. The setter function SetRecognizerL() is also tested with a recognizer
-   that doesn't exist to check if it would return KErrNotFound.\n
-   API Calls:\n	
-   CApaScanningFileRecognizer::NewL(RFs& aFs, MApaAppStarter* aAppStarter)\n
-   CApaScanningFileRecognizer::RecognizerCount()\n
-   CApaScanningFileRecognizer::UpdateCounter()\n
-   CApaScanningFileRecognizer::SetRecognizerL(const TRecognizer& aRecognizer)\n
-   
-   @SYMTestExpectedResults Test checks results against expected values.
-    
- */
-void CT_File1Step::testScanningFileTheRecognizerL()
-	{
-	INFO_PRINTF1(_L("Testing the Scanning File-Recognizer"));
-	//
-	CActiveScheduler* scheduler = new(ELeave) CActiveScheduler();
-	CleanupStack::PushL(scheduler);
-	CActiveScheduler::Install(scheduler);
-	//
-	// construct - this scans for iRecognizer plug-ins
-	TRAPD(ret, iRecognizer=CApaScanningFileRecognizer::NewL(iFs,NULL));
-	TEST(ret==KErrNone);
-	// 06/09/99 SimonC: following tests updated as they'll fail when run with a baseline build
-	TEST(iRecognizer->RecognizerCount()>=2);
-	TEST(iRecognizer->UpdateCounter()>=2);
-
-	//for testing ecom style plugin
-	INFO_PRINTF1(_L("Testing the ecom style TTESTECOMFILEREC recognizer is loaded or not"));
-	CApaScanningFileRecognizer::TRecognizer testEcomFileRec;
-	testEcomFileRec.iUid=KTestEcomFileRecognizerUid;
-	testEcomFileRec.iDrive=25;
-	TRAP(ret,iRecognizer->SetEcomRecognizerL(testEcomFileRec));
-	TEST(ret==KErrNone);
-	TEST(iRecognizer->UpdateCounter()>=2);
-
-	INFO_PRINTF1(_L("Wait a couple of seconds to stop dlls closing too early...")); // stop the dll's being closed too early
-	User::After(2000000);
-	
-	delete iRecognizer;
-	CleanupStack::PopAndDestroy(scheduler);
-	}
-
-CT_File1Step::~CT_File1Step()
-/**
-   Destructor
- */
-	{
-	}
-
-CT_File1Step::CT_File1Step()
-/**
-   Constructor
- */
-	{
-	// Call base class method to set up the human readable name for logging
-	SetTestStepName(KT_File1Step);
-	}
-
-TVerdict CT_File1Step::doTestStepPreambleL()
-/**
-   @return - TVerdict code
-   Override of base class virtual
- */
-	{
-	SetTestStepResult(EPass);
-	return TestStepResult();
-	}
-
-TVerdict CT_File1Step::doTestStepPostambleL()
-/**
-   @return - TVerdict code
-   Override of base class virtual
- */
-	{
-	return TestStepResult();
-	}
-
-TVerdict CT_File1Step::doTestStepL()
-/**
-  @return - TVerdict code
-  Override of base class virtual
-*/
-	{
-	INFO_PRINTF1(_L("Testing the APFILE dll..."));
-	//
-	// set up the directory structure
-	iFs.Connect();
-	setup();
-	//
-	// run the testcode (inside an alloc heaven harness)
-
- 	__UHEAP_MARK;
-	TRAPD(r,testScanningFileTheRecognizerL());
-	TEST(r==KErrNone);
-	REComSession::FinalClose();	
-	__UHEAP_MARKEND;
-
-	iFs.Close();
-
-	INFO_PRINTF1(_L("Test completed!"));
-	return TestStepResult();
-	}
--- a/localisation/apparchitecture/tef/T_File1Step.h	Wed Jul 28 16:03:37 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-
-/**
- @file
- @internalComponent - Internal Symbian test code 
-*/
-
-#if (!defined __T_FILE1_STEP_H__)
-#define __T_FILE1_STEP_H__
-#include "ApparcTestServer.h"
-
-class CApaScanningFileRecognizer;
-
-//!  A CT_File1Step test class. 
-
-/**   A more elaborate class description. */
-
-class CT_File1Step : public CTestStep
-	{
-public:
-	CT_File1Step();
-	~CT_File1Step();
-	virtual TVerdict doTestStepPreambleL();
-	virtual TVerdict doTestStepPostambleL();
-	virtual TVerdict doTestStepL();
-	void testScanningFileTheRecognizerL();
-	void setup();
-private:
-	RFs iFs;
-	CApaScanningFileRecognizer* iRecognizer;
-	};
-
-_LIT(KT_File1Step,"T_File1");
-#endif
--- a/localisation/apparchitecture/tef/T_File2Step.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_File2Step.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,17 +13,17 @@
 // Description:
 // Tests CApaAppRegFinder APIs.
 // 
+// t_file2step.cpp
 //
 
-
-
 /**
- @file
+ @file t_file2step.cpp
  @internalComponent - Internal Symbian test code
 */
 
 #include "T_File2Step.h"
-#include "..\apfile\aprfndr.h"
+#include "../aplist/aplappregfinder.h"	// class CApaAppRegFinder
+#include "../aplist/aplapplistitem.h"	// class TApaAppEntry
 
 //
 #if !defined(__E32TEST_H__)
@@ -58,16 +58,17 @@
 	fSession.Connect();
 	CApaAppRegFinder* regFinder=CApaAppRegFinder::NewL(fSession);
 	//
-	TRAPD(ret, regFinder->FindAllAppsL() );
+	TRAPD(ret, regFinder->FindAllAppsL(CApaAppRegFinder::EScanAllDrives) );
 	TEST(ret==KErrNone);
 	//
+	CDesCArray* dummyArray = new (ELeave) CDesCArraySeg(1);
+	CleanupStack::PushL(dummyArray);
 	TBool more=ETrue;
 	TInt count=0;
 	while (more) 
 		{
 		TApaAppEntry entry;
-		RPointerArray<HBufC> dummy;
-		TRAPD(ret, more=regFinder->NextL(entry, dummy) );
+		TRAPD(ret, more=regFinder->NextL(entry, *dummyArray) );
 		TEST(ret==KErrNone);
 		if (more)
 			count++;
@@ -75,6 +76,7 @@
 	TEST(count>0);
 	INFO_PRINTF2(_L("     Apps found: %D"),count);
 	//
+	CleanupStack::PopAndDestroy(dummyArray);
 	delete regFinder;
 	fSession.Close();
 	}
@@ -131,3 +133,4 @@
 	INFO_PRINTF1(_L("Test completed!"));
 	return TestStepResult();
 	}
+
--- a/localisation/apparchitecture/tef/T_File2Step.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_File2Step.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -22,7 +20,7 @@
 
 #if (!defined __T_FILE2_STEP_H__)
 #define __T_FILE2_STEP_H__
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 //!  A CT_File2Step test class. 
 
@@ -41,3 +39,4 @@
 
 _LIT(KT_File2Step,"T_File2");
 #endif
+
--- a/localisation/apparchitecture/tef/T_File3Step.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_File3Step.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,20 +13,23 @@
 // Description:
 // Tests CApaAppRegFinder APIs.
 // 
+// t_file3step.cpp
 //
 
-
-
 /**
- @file
+ @file t_file3step.cpp
  @internalComponent - Internal Symbian test code
 */
 
 #include <apgicnfl.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <e32property.h>
 #include "T_File3Step.h"
-#include "..\apfile\aprfndr.h"
-#include "TSidChecker\TestSidChecker.h"
+#include "../aplist/aplappregfinder.h"	// class CApaAppRegFinder
+#include "../aplist/aplapplistitem.h"	// class TApaAppEntry 
+#include "TSidChecker/TestSidChecker.h"
 
 #include <e32test.h>
 #include <f32file.h>
@@ -211,17 +214,18 @@
 	CleanupClosePushL(fSession);
 	CApaAppRegFinder* regFinder=CApaAppRegFinder::NewLC(fSession);
 
-	TRAPD(ret, regFinder->FindAllAppsL() );
+	TRAPD(ret, regFinder->FindAllAppsL(CApaAppRegFinder::EScanAllDrives) );
 	TEST(ret==KErrNone);
 
+	CDesCArray* dummyArray = new (ELeave) CDesCArraySeg(1);
+	CleanupStack::PushL(dummyArray);
+	TApaAppEntry entry;
 	TBool more = ETrue;
 	TBool foundGoodApp = EFalse;
 	TBool foundBadApp = EFalse;
 	while (more)
 		{
-		TApaAppEntry entry;
-		RPointerArray<HBufC> dummy;
-		TRAPD(ret, more=regFinder->NextL(entry, dummy) );
+		TRAPD(ret, more=regFinder->NextL(entry, *dummyArray) );
 		TEST(ret==KErrNone);
 		if(entry.iUidType[2] == KApFileTestBadApp)
 			foundBadApp = ETrue;
@@ -231,6 +235,7 @@
 	TEST(foundGoodApp);
 	TEST(!foundBadApp);
 
+	CleanupStack::PopAndDestroy(dummyArray);
 	CleanupStack::PopAndDestroy(2,&fSession);	
 
 	/*
@@ -413,7 +418,7 @@
 /**
    @SYMTestCaseID UIFRAMEWORKS-APPARC-0102
   
-   @SYMDEF PDEF139147
+   @SYMDEF PDEF139145
   
    @SYMTestCaseDesc Test that apparc calls sid checker only once for multiple registration resource file for same application.
    
@@ -478,7 +483,7 @@
 	CleanupClosePushL(timer);
 	User::LeaveIfError(timer.CreateLocal());
 	TRequestStatus timerStatus;
-	timer.After(timerStatus,50 * 1000000);
+	timer.After(timerStatus,30 * 1000000);
 	
 	RPointerArray<TDesC> empty;
 	ret = iSession.ForceRegistration(empty);
@@ -602,3 +607,4 @@
  */
 	{
 	}
+
--- a/localisation/apparchitecture/tef/T_File3Step.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_File3Step.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -23,11 +21,11 @@
 #ifndef __T_FILE3_STEP_H__
 #define __T_FILE3_STEP_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 #include "testableapalssession.h"
-#include <ecom.h>
-#include <appfwk_test_utils.h>
+#include <ecom/ecom.h>
+#include "appfwk_test_utils.h"
 
 class CTestSidChecker;
 
@@ -77,3 +75,4 @@
 
 _LIT(KT_File3Step,"T_File3");
 #endif
+
--- a/localisation/apparchitecture/tef/T_Foreground.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Foreground.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -33,16 +33,15 @@
 // This test calls TApaTask::BringToForeground on SimpleApparcTestApp to send
 // a window server message to SimpleApparcTestApp
 // 
+// t_foreground.cpp
 //
 
-
-
 #include <coeaui.h>
 #include <coemain.h>
 #include <coedef.h>
 #include <coecntrl.h>
 #include <basched.h>
-#include <ecom.h>
+#include <ecom/ecom.h>
 #include <apparc.h>
 #include <e32cmn.h>
 
@@ -61,11 +60,11 @@
 _LIT(KAppFile, "c:\\logs\\testApp.txt");
 const TInt KNonExistantWgId = KErrNotFound;
 
-////////////////////////////////////////////////////////////////////////////////////
+//
 //
 // The CTestDriver class runs a series of tests on timer callback
 //
-////////////////////////////////////////////////////////////////////////////////////
+//
 
 CTestDriver::CTestDriver(CCoeAppUi& aAppUi) : iAppUi(aAppUi)
 	{
@@ -211,13 +210,13 @@
 class CTestDriver;
 
 
-////////////////////////////////////////////////////////////////////////////////////
+//
 //
 // class CTestForegroundAppUi 
 //
-////////////////////////////////////////////////////////////////////////////////////
+//
 
-CTestForegroundAppUi::CTestForegroundAppUi(CTestStep* aStep) : CTestCoeAppUi(aStep)
+CTestForegroundAppUi::CTestForegroundAppUi(CTmsTestStep* aStep) : CTestCoeAppUi(aStep)
 	{	
 	}
 
@@ -280,11 +279,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////////////////
+//
 //
 // class CTestForegroundStep
 //
-////////////////////////////////////////////////////////////////////////////////////
+//
 
 CTestForegroundStep::CTestForegroundStep()
 	{
@@ -331,3 +330,5 @@
 	INFO_PRINTF1(_L("Test Finished"));
 	return TestStepResult();
 	}
+
+
--- a/localisation/apparchitecture/tef/T_Foreground.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Foreground.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,9 +22,9 @@
 #define		__T_FOREGROUND_H
 
 
-#include <TestExecuteStepBase.h>
-#include "ApparcTestServer.h"
-#include "appfwk_test_AppUi.h"
+#include <test/testexecutestepbase.h>
+#include "apparctestserver.h"
+#include "appfwk_test_appui.h"
 
 
 const TInt KTVwaStandardAppUiId=0;
@@ -56,9 +54,9 @@
 
 
 //
-// A CTestStep Derived Class
+// A CTmsTestStep Derived Class
 //
-class CTestForegroundStep : public CTestStep
+class CTestForegroundStep : public CTmsTestStep
 	{
 public:
 	CTestForegroundStep();
@@ -75,7 +73,7 @@
 class CTestForegroundAppUi : public CTestCoeAppUi
     {
 public:	// from CCoeAppUi
-	CTestForegroundAppUi(CTestStep* aStep);
+	CTestForegroundAppUi(CTmsTestStep* aStep);
 	~CTestForegroundAppUi();
 	void ConstructL();
 	void RunTestStepL(TInt aNumStep);
@@ -91,3 +89,5 @@
 
 
 #endif
+
+
--- a/localisation/apparchitecture/tef/T_IntegritySupportRebootStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_IntegritySupportRebootStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -113,8 +111,8 @@
 	RProcess().SetPriority(EPriorityHigh); 
 
 	// make sure we're starting from a clean sheet
-	CleanupAndReset(iSession, KApplication1);
-	CleanupAndReset(iSession, KApplication2);
+	CleanupAndResetL(iSession, KApplication1);
+	CleanupAndResetL(iSession, KApplication2);
 
 	// prepare the starting state: KApp1 uninstalled, KApp2 installed
 	CompleteRegisterL(iSession, KApplication2);
--- a/localisation/apparchitecture/tef/T_IntegritySupportRebootStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_IntegritySupportRebootStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
--- a/localisation/apparchitecture/tef/T_IntegritySupportStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_IntegritySupportStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -91,8 +89,8 @@
 #ifdef __WINS__
 	HEAP_TEST_LS_SESSION(iSession, 0, DONT_CHECK, TestReregisterApplicationL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iSession, 0, DONT_CHECK, TestDoubleInstallFailsL(), NO_CLEANUP);
+#endif
 	HEAP_TEST_LS_SESSION(iSession, 0, DONT_CHECK, TestRollbackOnFailedUpdateStepL(), NO_CLEANUP);
-#endif
 	return KErrNone;
 	}
 
@@ -138,7 +136,7 @@
 	INFO_PRINTF1(_L("Testing normal application installation..."));
 
 	RProcess().SetPriority(EPriorityLow); // so that we're pre-empted by the Apparc server when it does its scan
-	CleanupAndReset(iSession, KApplication1);
+	CleanupAndResetL(iSession, KApplication1);
 
 	iSession.PrepareNonNativeApplicationsUpdatesL();
 
@@ -180,7 +178,7 @@
 void CT_IntegritySupportTestStep::TestManualRollback1L()
 	{
 	INFO_PRINTF1(_L("Testing manual rollback during installation..."));
-	CleanupAndReset(iSession, KApplication2);
+	CleanupAndResetL(iSession, KApplication2);
 
 	iSession.PrepareNonNativeApplicationsUpdatesL();
 	INFO_PRINTF1(_L("..registering app using RegisterNonNativeApplicationL() "));
@@ -229,7 +227,7 @@
 	User::LeaveIfError(apaSession.Connect());
 	CleanupClosePushL(apaSession);
 
-	CleanupAndReset(apaSession, KApplication3);
+	CleanupAndResetL(apaSession, KApplication3);
 
 	apaSession.PrepareNonNativeApplicationsUpdatesL();
 	INFO_PRINTF1(_L("..registering app using RegisterNonNativeApplicationL() "));
@@ -263,7 +261,7 @@
 void CT_IntegritySupportTestStep::TestNormalRemoval1L()
 	{
 	INFO_PRINTF1(_L("Testing removal..."));
-	CleanupAndReset(iSession, KApplication4);
+	CleanupAndResetL(iSession, KApplication4);
 
 	INFO_PRINTF1(_L("..registering app using RegisterNonNativeApplicationL() "));
 	CompleteRegisterL(iSession, KApplication4);
@@ -299,7 +297,7 @@
 void CT_IntegritySupportTestStep::TestManualRollback2L()
 	{
 	INFO_PRINTF1(_L("Testing removal rollback..."));
-	CleanupAndReset(iSession, KApplication5);
+	CleanupAndResetL(iSession, KApplication5);
 
 	iSession.PrepareNonNativeApplicationsUpdatesL();
 	INFO_PRINTF1(_L("..registering app using RegisterNonNativeApplicationL() "));
@@ -413,7 +411,7 @@
   
    @SYMTestCaseDesc Tests that commiting an app update when another session
    has already installed it is successfull.
-
+   
    @SYMTestPriority 
   
    @SYMTestStatus Implemented
@@ -428,7 +426,7 @@
 	INFO_PRINTF1(_L("Testing PrepareNonNativeApplicationsUpdatesL and other function calls from 2 sessions..."));
 	INFO_PRINTF1(_L("    Cleaning up any existing reg files first..."));
 	
-	CleanupAndReset(iSession, KApplication1);
+	CleanupAndResetL(iSession, KApplication1);
 
 	INFO_PRINTF1(_L("    Running test..."));
 
@@ -442,10 +440,10 @@
 	CallRegisterL(iSession, KApplication1);
 
 	// Prepare, Register & Deregister with the second session
-	TRAPD(err,session2.PrepareNonNativeApplicationsUpdatesL());
+	TRAPD(err, session2.PrepareNonNativeApplicationsUpdatesL());
 	TEST(err == KErrNone);
 	CallRegisterL(session2, KApplication1);
-	
+
 	// commit the updates with iSession, installing app 1
 	TRAP(err, iSession.CommitNonNativeApplicationsUpdatesL());
 	TEST(err == KErrNone);
@@ -492,7 +490,7 @@
 	INFO_PRINTF1(_L("Testing deregister/register of an application in one transaction..."));
 	INFO_PRINTF1(_L("    Cleaning up any existing reg files first..."));
 	
-	CleanupAndReset(iSession, KApplication1);
+	CleanupAndResetL(iSession, KApplication1);
 
 	INFO_PRINTF1(_L("    Registering beforehand so that the deregister has something to do..."));
 	CompleteRegisterL(iSession, KApplication1);
@@ -535,7 +533,7 @@
 	INFO_PRINTF1(_L("Testing double register of an application in one transaction..."));
 	INFO_PRINTF1(_L("    Cleaning up any existing reg files first..."));
 	
-	CleanupAndReset(iSession, KApplication1);
+	CleanupAndResetL(iSession, KApplication1);
 
 	// test that the application is absent
 	TEST(AppAbsent(iSession, KApplication1));
@@ -545,7 +543,7 @@
 	CallRegisterL(iSession, KApplication1);
 	CallRegisterL(iSession, KApplication1);
 	TRAPD(err, iSession.CommitNonNativeApplicationsUpdatesL());
-	TEST(err == KErrAccessDenied); // Since app is already registered, KErrAccessDenied will be returned when try to delete the registered app.
+	TEST(err == KErrAccessDenied);
 
 	// test that the rollback happened when the second register failed,
 	// and thus the app is still absent
@@ -580,8 +578,8 @@
 	INFO_PRINTF1(_L("Testing register app1, deregister app2, then a force-failed update that causes the first two to roll back..."));
 	INFO_PRINTF1(_L("    Cleaning up any existing reg files first..."));
 	
-	CleanupAndReset(iSession, KApplication1);
-	CleanupAndReset(iSession, KApplication2);
+	CleanupAndResetL(iSession, KApplication1);
+	CleanupAndResetL(iSession, KApplication2);
 
 	// test that both apps are absent
 	TEST(AppAbsent(iSession, KApplication1));
--- a/localisation/apparchitecture/tef/T_IntegritySupportStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_IntegritySupportStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
--- a/localisation/apparchitecture/tef/T_LocaleStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_LocaleStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -21,8 +21,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -31,6 +29,9 @@
 #include <e32test.h>
 #include <f32file.h>
 #include <apgicnfl.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <hal.h>
 #include <apgcli.h>
 #include "T_LocaleStep.h"
@@ -51,23 +52,41 @@
 */
 void CT_LocaleStep::ChangeLocaleL(TLanguage aLanguage)
 	{
+#ifdef SYMBIAN_DISTINCT_LOCALE_MODEL 
+	_LIT(KLitLocaleDllNameBase, "elocl_lan");
+	_LIT(KLitLocaleDllNameExtension, ".loc");
+#else
 	_LIT(KLitLocaleDllNameBase, "ELOCL");
 	_LIT(KLitLocaleDllNameExtension, ".LOC");
+#endif	        
 	RLibrary localeDll;
 	TBuf<16> localeDllName(KLitLocaleDllNameBase);
 	CleanupClosePushL(localeDll);
 	const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6));
+#ifdef SYMBIAN_DISTINCT_LOCALE_MODEL	        
+	_LIT(ThreeDigExt,".%03d");
+	localeDllName.AppendFormat(ThreeDigExt, aLanguage);
+#else
 	_LIT(TwoDigExt,".%02d");
 	localeDllName.AppendFormat(TwoDigExt, aLanguage);
+#endif	        
+	        
 	TInt error=localeDll.Load(localeDllName, uidType);
 	if (error==KErrNotFound)
-		{
-		localeDllName=KLitLocaleDllNameBase;
-		localeDllName.Append(KLitLocaleDllNameExtension);
-		error=localeDll.Load(localeDllName, uidType);
-		}
-	User::LeaveIfError(error);
+	    {
+        localeDllName=KLitLocaleDllNameBase;
+        localeDllName.Append(KLitLocaleDllNameExtension);
+        error=localeDll.Load(localeDllName, uidType);
+        }
+    User::LeaveIfError(error);
+	        
+#ifdef 	SYMBIAN_DISTINCT_LOCALE_MODEL
+    TExtendedLocale myExtendedLocale;
+    User::LeaveIfError(myExtendedLocale.LoadLocaleAspect(localeDllName));
+    User::LeaveIfError(myExtendedLocale.SaveSystemSettings());
+#else	
 	User::LeaveIfError(UserSvr::ChangeLocale(localeDllName));
+#endif
 	CleanupStack::PopAndDestroy(); // localeDll
 	}
 
--- a/localisation/apparchitecture/tef/T_LocaleStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_LocaleStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -23,7 +21,7 @@
 #if (!defined __T_LOCALE_STEP_H__)
 #define __T_LOCALE_STEP_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 #include <apgnotif.h>
 #include "testableapalssession.h"
 
@@ -66,3 +64,5 @@
 
 _LIT(KT_LocaleStep,"T_Locale");
 #endif
+
+
--- a/localisation/apparchitecture/tef/T_MRUStep.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_MRUStep.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -14,17 +14,20 @@
 // Test MRU list\n
 // Tests MRU list by calling CApaProcess::SetMainDocFileName().\n
 // 
+// t_mrustep.cpp
 //
 
-
-
 /**
- @file
+ @file t_mrustep.cpp
  @internalComponent - Internal Symbian test code
 */
 
 #include <f32file.h>
 #include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apgaplst.h>
 #include <apgicnfl.h>
 #include <apgdoor.h>
@@ -336,3 +339,4 @@
 	INFO_PRINTF1(_L("Testing T_Mru Completed!"));
 	return TestStepResult();
 	}
+
--- a/localisation/apparchitecture/tef/T_MdrStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_MdrStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,12 +13,11 @@
 // Description:
 // Test for CApaDoor and CApaModelDoor Apis\n
 // 
+// t_mdrstep.cpp
 //
 
-
-
 /**
- @file
+ @file t_mdrstep.cpp
  @test
  @internalComponent - Internal Symbian test code 
 */
@@ -542,3 +541,6 @@
 	REComSession::FinalClose();
 	__UHEAP_MARKEND;
 	}
+
+
+
--- a/localisation/apparchitecture/tef/T_MdrStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_MdrStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -23,7 +21,7 @@
 #if (!defined __T_MDR_STEP_H__)
 #define __T_MDR_STEP_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 #include <apamdr.h>
 #include <apgdoor.h>
@@ -80,3 +78,4 @@
 
 _LIT(KT_MdrStep,"T_Mdr");
 #endif
+
--- a/localisation/apparchitecture/tef/T_MruStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_MruStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -23,7 +21,7 @@
 #if (!defined __T_MRU_STEP_H__)
 #define __T_MRU_STEP_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 //!  A CT_MruStep test class. 
 
@@ -61,3 +59,4 @@
 _LIT(KT_MruStep,"T_Mru");
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_NonNativeAppsStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_NonNativeAppsStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,30 +13,33 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code  
 */
 
-#include <E32STD.H>
-#include <E32BASE.H>
-#include <F32FILE.H>
-#include <APGCLI.H>
-#include <APMREC.H>
-#include <APAID.H>
+#include <e32std.h>
+#include <e32base.h>
+#include <f32file.h>
+#include <apgcli.h>
+#include <apmrec.h>
+#include <apaid.h>
 #include "testableapalssession.h"
-#include <APGICNFL.H>
-#include <APMSTD.H>
-#include <APACMDLN.H>
-#include <E32PROPERTY.H>
+#include <apgicnfl.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#include <apgicnflpartner.h>
+//#include <apgicnflinternal.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apmstd.h>
+#include <apacmdln.h>
+#include <e32property.h>
 #include <apgnotif.h>
 
-#include "..\tef\TNonNative\tnnapp1.h"
+#include "../tef/TNonNative/TNNApp1.h"
 #include "T_NonNativeAppsStep.h"
-#include <appfwk_test.h>
+#include "appfwk_test.h"
 
 
 const TUint KApplicationType=0x10207f90;
@@ -61,12 +64,6 @@
 _LIT8(KLitMimeTypeA, "x-epoc/a-nnapp2");
 _LIT8(KLitMimeTypeB, "x-epoc/dummy");
 
-enum TOption 
-	{
-	EAppA,
-	EAppB
-	};
-
 
 LOCAL_C void DeregisterNonNativeL(TAny* aApparcServer)
 	{
@@ -119,7 +116,24 @@
 	{ // static
 	RTstAppService appService(aServiceUid);
 	CleanupClosePushL(appService);
-	appService.ConnectL();
+
+	TInt error=KErrNone;
+	
+	//Try maximum 6 times to connect to server application
+    for(TInt loopCount=0; loopCount<6; loopCount++)
+        {
+        TRAP(error, appService.ConnectL());
+        if(error==KErrNone)
+            break;
+        
+        if(error!=KErrNotFound)
+            User::Leave(error);
+        
+        User::After(1000000); //wait till one second before trying again
+        }
+
+    User::LeaveIfError(error);
+    
 	TRequestStatus requestStatus;
 	appService.ReceiveTestResult(requestStatus, aPassingFileByHandle, aFileNameWithoutDriveOrPath);
 	User::WaitForRequest(requestStatus);
@@ -502,21 +516,18 @@
 			APPFWK_EXPECTED_PLATSEC_START;
 			User::LeaveIfError(aApparcServer.StartDocument(fullFileName, threadId));
 			APPFWK_EXPECTED_PLATSEC_FINISH;
-			User::After(1500000);
 			TEST(RTstAppService::DoTestL(serviceUid, EFalse, fileNameWithoutDriveOrPath) == KCheckPass);
 			}
 
 			{
 			TThreadId threadId;
 			User::LeaveIfError(aApparcServer.StartDocument(fullFileName, TDataType(expectedDataType), threadId));
-			User::After(1500000);
 			TEST(RTstAppService::DoTestL(serviceUid, EFalse, fileNameWithoutDriveOrPath) == KCheckPass);
 			}
 
 			{
 			TThreadId threadId;
 			User::LeaveIfError(aApparcServer.StartDocument(fullFileName, TUid::Uid(0x10207f92), threadId));
-			User::After(1500000);
 			TEST(RTstAppService::DoTestL(serviceUid, EFalse, fileNameWithoutDriveOrPath) == KCheckPass);
 			}
 			}
@@ -549,11 +560,10 @@
 	CleanupStack::PopAndDestroy(&property);
 	}
 
-void CT_NonNativeAppsStep::CheckApplicationLaunchesOkayL(RApaLsSession& aApparcServer, const CApaCommandLine& aCommandLine, TAny* aOption)
+void CT_NonNativeAppsStep::CheckApplicationLaunchesOkayL(RApaLsSession& aApparcServer, const CApaCommandLine& aCommandLine, TOption aOption)
 	{
 	TThreadId notUsed;
-	const TInt option = TInt(aOption);
-	switch(option)
+	switch(aOption)
 		{
 			case EAppA:
 				INFO_PRINTF1(_L("..Checking ApplicationLaunchesOkayL for app 'A'.."));
@@ -565,17 +575,17 @@
 			case EAppB:
 				INFO_PRINTF1(_L("..Checking ApplicationLaunchesOkayL for app 'B'.."));
 				TEST( aApparcServer.StartDocument(KLitDocumentName3, TDataType(KLitMimeTypeB), notUsed) == KErrNone);
+				CheckPropertyUpdateAndResetL(KLitDocumentName3);
 				break;
 			default:
 				break;
 		}
 	}
 
-void CT_NonNativeAppsStep::CheckApplicationFailsToLaunchL(RApaLsSession& aApparcServer, const CApaCommandLine& aCommandLine, TAny* aOption)
+void CT_NonNativeAppsStep::CheckApplicationFailsToLaunchL(RApaLsSession& aApparcServer, const CApaCommandLine& aCommandLine, TOption aOption)
 	{
 	TThreadId notUsed;
-	const TInt option = TInt(aOption);
-	switch(option)
+	switch(aOption)
 		{
 			case EAppA:
 				INFO_PRINTF1(_L("..Checking ApplicationFailsToLaunchL for app 'A'.."));
@@ -653,19 +663,19 @@
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
 	aApparcServer.RegisterNonNativeApplicationL(TUid::Uid(KApplicationType), EDriveC, *registrationResourceFileWriter, NULL, NULL);
 	aApparcServer.CommitNonNativeApplicationsUpdatesL();
-	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, EAppA);
 	//Check if there is no problem in registering same app again(basically simulating an upgrade)
 	INFO_PRINTF1(_L("..registering same app again using RegisterNonNativeApplicationL() "));
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
 	aApparcServer.RegisterNonNativeApplicationL(TUid::Uid(KApplicationType), EDriveC, *registrationResourceFileWriter, NULL, NULL);
 	aApparcServer.CommitNonNativeApplicationsUpdatesL();
-	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, EAppA);
 	
 	INFO_PRINTF1(_L("..deregistering app using DeregisterNonNativeApplicationL() "));
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
 	aApparcServer.DeregisterNonNativeApplicationL(TUid::Uid(KApplicationA));
 	aApparcServer.CommitNonNativeApplicationsUpdatesL();
-	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, EAppA);
 	
 	_LIT8(KLitOpData, "opaquedata");
 	registrationResourceFileWriter->SetOpaqueDataL(KLitOpData);
@@ -677,7 +687,7 @@
 	aApparcServer.RegisterNonNativeApplicationL(TUid::Uid(KApplicationType), EDriveC, *registrationResourceFileWriter, localisableResourceFileWriter_noIcons, NULL);
 	aApparcServer.CommitNonNativeApplicationsUpdatesL();
 	CleanupStack::PopAndDestroy(localisableResourceFileWriter_noIcons);
-	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, EAppA);
 
 	//Testing with OpaqueData
 	TPtrC8 opData =nextCommandLine->OpaqueData();
@@ -688,7 +698,7 @@
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
 	aApparcServer.DeregisterNonNativeApplicationL(TUid::Uid(KApplicationA));
 	aApparcServer.CommitNonNativeApplicationsUpdatesL();
-	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, EAppA);
 
 	//Testing with IconFile
 	CApaLocalisableResourceFileWriter* const localisableResourceFileWriter_withIcons=CApaLocalisableResourceFileWriter::NewL(KNullDesC, KLitApplicationCaptionA, 2, KNullDesC);
@@ -705,7 +715,7 @@
 	CleanupStack::PopAndDestroy(&iconFile);
 	
 	aApparcServer.CommitNonNativeApplicationsUpdatesL();
-	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, EAppA);
 
 	HBufC* iconFileName = NULL;
 	TInt err = aApparcServer.GetAppIcon(TUid::Uid(KApplicationA),iconFileName);
@@ -758,7 +768,7 @@
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
 	aApparcServer.DeregisterNonNativeApplicationL(TUid::Uid(KApplicationA));
 	aApparcServer.CommitNonNativeApplicationsUpdatesL();
-	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, EAppA);
 	
 	//Testing GetAppIcon API for non-native application with SVG icon.
 	TestGetAppIconForNonNativeL(aApparcServer,aFileServer, registrationResourceFileWriter, localisableResourceFileWriter_withIcons);
@@ -879,10 +889,11 @@
 	}
 
 
+
 /**
    @SYMTestCaseID APPFWK-APPARC-0099
   
-   @SYMDEF	PDEF129466
+   @SYMDEF	PDEF129467
   
    @SYMTestCaseDesc Tests ForceCommitNonNativeApplicationsUpdatesL() API.
   
@@ -907,10 +918,9 @@
 	CleanupStack::PushL(commandLine);
 	const TPtrC executableName(commandLine->ExecutableName());
 
-
 	_LIT_SECURITY_POLICY_S0(readSecurityPolicy, KMySID);
 	_LIT_SECURITY_POLICY_PASS(writeSecurityPolicy);
-	
+
 	//TNNAPP2.exe sets the document name passed as part of the command line to this property.
 	const TInt error=RProperty::Define(KPropertyKey, RProperty::EText, readSecurityPolicy, writeSecurityPolicy);
 	if (error!=KErrAlreadyExists)
@@ -951,7 +961,7 @@
 
 	TInt64 value = timeTakenToCommitRegistration.Int64();
 	INFO_PRINTF2(_L("..Time taken for registration of application by CommitNonNativeApplicationsUpdatesL is %d micro seconds"), value);	
-	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, EAppA);
 	
 	INFO_PRINTF1(_L("..deregistering app using DeregisterNonNativeApplicationL() "));
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
@@ -965,7 +975,7 @@
 	timeTakenToCommitDeregistration=endTime.MicroSecondsFrom(startTime);
 	value = timeTakenToCommitDeregistration.Int64();
 	INFO_PRINTF2(_L("..Time taken for deregistration of application by CommitNonNativeApplicationsUpdatesL is %d micro seconds"), value);	
-	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, EAppA);
 
 	
 	INFO_PRINTF1(_L("..registering app using RegisterNonNativeApplicationL() "));
@@ -983,8 +993,8 @@
 	TRequestStatus appScanCompleted=KRequestPending; 
 	aApparcServer.SetNotify(EFalse,appScanCompleted);    
 	User::WaitForRequest(appScanCompleted); 
-	TEST(appScanCompleted.Int()==MApaAppListServObserver::EAppListChanged);
-	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	TEST(appScanCompleted.Int()==MApaAppListServObserver::EAppListChanged);	
+	CheckApplicationLaunchesOkayL(aApparcServer, *nextCommandLine, EAppA);
 	
 	INFO_PRINTF1(_L("..deregistering app using DeregisterNonNativeApplicationL() "));
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
@@ -1001,8 +1011,8 @@
 	appScanCompleted=KRequestPending; 
 	aApparcServer.SetNotify(EFalse,appScanCompleted);    
 	User::WaitForRequest(appScanCompleted);
-	TEST(appScanCompleted.Int()==MApaAppListServObserver::EAppListChanged);
-	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, (TAny*)EAppA);
+	TEST(appScanCompleted.Int()==MApaAppListServObserver::EAppListChanged);	
+	CheckApplicationFailsToLaunchL(aApparcServer, *nextCommandLine, EAppA);
 	TEST(timeTakenToForceCommitRegistration<timeTakenToCommitRegistration);	
 	TEST(timeTakenToForceCommitDeregistration<timeTakenToCommitDeregistration);
 	
@@ -1012,7 +1022,7 @@
 /**
    @SYMTestCaseID 			APPFWK-APPARC-0103
   
-   @SYMDEF					PDEF134174
+   @SYMDEF					PDEF135324
   
    @SYMTestCaseDesc 		Tests ForceCommitNonNativeApplicationsUpdatesL() API.
   
@@ -1073,7 +1083,7 @@
 	CApaRegistrationResourceFileWriter* const registrationResourceFileWriterB=CApaRegistrationResourceFileWriter::NewL(TUid::Uid(KApplicationB), KLitLogicalExecutableA, TApaAppCapability::ENonNative);
 	CleanupStack::PushL(registrationResourceFileWriterB);
 	registrationResourceFileWriterB->AddDataTypeL(KDataTypePriorityNormal, KLitMimeTypeB);
-	
+
 	TestForceCommitL(aApparcServer, *registrationResourceFileWriter, *registrationResourceFileWriterB, *nextCommandLine);
 	TestRollbackRegistrationL(aApparcServer, *registrationResourceFileWriter, *registrationResourceFileWriterB, *nextCommandLine);
 	TestRollbackDeregistrationL(aApparcServer, *registrationResourceFileWriter, *registrationResourceFileWriterB, *nextCommandLine);
@@ -1099,7 +1109,7 @@
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
 	aApparcServer.RegisterNonNativeApplicationL(TUid::Uid(KApplicationType), EDriveC, aRegistrationResourceFileWriter, NULL, NULL);
 	aApparcServer.ForceCommitNonNativeApplicationsUpdatesL();
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppA);//Since applist update has not yet completed
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppA);//Since applist update has not yet completed
 	
 	//Register app B and ForceCommitNNAUpdate
 	INFO_PRINTF1(_L("..registering app 'B' using RegisterNonNativeApplicationL() "));
@@ -1107,12 +1117,12 @@
 	aApparcServer.RegisterNonNativeApplicationL(TUid::Uid(KApplicationType), EDriveC, aRegistrationResourceFileWriterB, NULL, NULL);
 	aApparcServer.ForceCommitNonNativeApplicationsUpdatesL();
 	TThreadId notUsed2;
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppB);
 	
 	//Wait for applist to be updated
 	WaitForApplistUpdate(aApparcServer);
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppA);//Check if app A launches since applist update is complete now
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppB);//Similarly check if app B launches
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppA);//Check if app A launches since applist update is complete now
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppB);//Similarly check if app B launches
 	
 	//DeRegister app B and ForceCommitNNAUpdate
 	INFO_PRINTF1(_L("..deregistering app 'B' using DeregisterNonNativeApplicationL() "));
@@ -1120,14 +1130,14 @@
 	aApparcServer.DeregisterNonNativeApplicationL(TUid::Uid(KApplicationB));
 	aApparcServer.ForceCommitNonNativeApplicationsUpdatesL();
 	//Since applist update has not yet completed, both apps should launch
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppA); 
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppA); 
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppB);
 	
 	//Wait for applist to be updated
 	WaitForApplistUpdate(aApparcServer);
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppA);
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppA);
 	//Check if app B fails to launches Since applist update is complete now
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppB);
 	
 	//Deregister app A and ForceCommitNNAUpdate
 	INFO_PRINTF1(_L("..deregistering app 'A' using RegisterNonNativeApplicationL() "));
@@ -1136,8 +1146,8 @@
 	aApparcServer.ForceCommitNonNativeApplicationsUpdatesL();
 	WaitForApplistUpdate(aApparcServer);
 	//Both apps fail to launch since they are deregistered
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppA);
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppA);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppB);
 	
 	INFO_PRINTF1(_L("..End Testing TestForceCommitL API..."));
  	}
@@ -1151,7 +1161,7 @@
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
 	aApparcServer.RegisterNonNativeApplicationL(TUid::Uid(KApplicationType), EDriveC, aRegistrationResourceFileWriter, NULL, NULL);
 	aApparcServer.ForceCommitNonNativeApplicationsUpdatesL();
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppA);//Since applist update has not yet completed
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppA);//Since applist update has not yet completed
 	
 	//Register app B and RollbackNNAUpdates
 	INFO_PRINTF1(_L("..registering app 'B' using RegisterNonNativeApplicationL() "));
@@ -1161,9 +1171,9 @@
 	
 	//Wait for applist to be updated
 	WaitForApplistUpdate(aApparcServer);
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppA);//Check if app A launches
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppA);//Check if app A launches
 	//App B's registration was rolled back, so cannot launch it
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppB);
 	
 	//DeRegister app A and ForceCommitNNAUpdate
 	INFO_PRINTF1(_L("..deregistering app 'A' using DeregisterNonNativeApplicationL() "));
@@ -1171,13 +1181,13 @@
 	aApparcServer.DeregisterNonNativeApplicationL(TUid::Uid(KApplicationA));
 	aApparcServer.ForceCommitNonNativeApplicationsUpdatesL();
 	//Since applist update has not yet completed, app A should launch
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppA); 
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppA); 
 	
 	//Wait for applist to be updated
 	WaitForApplistUpdate(aApparcServer);
 	//Both apps fail to launch
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppA);
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppA);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppB);
 	
 	INFO_PRINTF1(_L("..End Testing TestRollbackRegistrationL API..."));
 	}
@@ -1191,20 +1201,20 @@
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
 	aApparcServer.RegisterNonNativeApplicationL(TUid::Uid(KApplicationType), EDriveC, aRegistrationResourceFileWriter, NULL, NULL);
 	aApparcServer.ForceCommitNonNativeApplicationsUpdatesL();
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppA);//Since applist update has not yet completed
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppA);//Since applist update has not yet completed
 	
 	//Register app B and ForceCommitNNAUpdate
 	INFO_PRINTF1(_L("..registering app 'B' using RegisterNonNativeApplicationL() "));
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
 	aApparcServer.RegisterNonNativeApplicationL(TUid::Uid(KApplicationType), EDriveC, aRegistrationResourceFileWriterB, NULL, NULL);
 	aApparcServer.ForceCommitNonNativeApplicationsUpdatesL();
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppB);
 	
 	//Wait for applist to be updated
 	WaitForApplistUpdate(aApparcServer);
 	//Check if both apps launches since applist update is complete now
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppA);
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppA);
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppB);
 	
 	//DeRegister app B and ForceCommitNNAUpdate
 	INFO_PRINTF1(_L("..deregistering app 'B' using DeregisterNonNativeApplicationL() "));
@@ -1221,8 +1231,8 @@
 	//Wait for applist to be updated
 	WaitForApplistUpdate(aApparcServer);
 	//Since deregistration of app A was rolled back it still launches
-	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, (TAny*)EAppA); 
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationLaunchesOkayL(aApparcServer, aNextCommandLine, EAppA); 
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppB);
 
 	INFO_PRINTF1(_L("..deregistering app 'A' using DeregisterNonNativeApplicationL() "));
 	aApparcServer.PrepareNonNativeApplicationsUpdatesL();
@@ -1232,8 +1242,8 @@
 	//Wait for applist to be updated
 	WaitForApplistUpdate(aApparcServer);
 	//Both apps fail to launch
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppA);
-	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, (TAny*)EAppB);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppA);
+	CheckApplicationFailsToLaunchL(aApparcServer, aNextCommandLine, EAppB);
 	
 	INFO_PRINTF1(_L("..End Testing TestRollbackDeregistrationL API..."));
  	}
@@ -1303,3 +1313,5 @@
 	INFO_PRINTF1(_L("....Test NonNativeApps completed!"));
 	return TestStepResult();
 	}
+
+
--- a/localisation/apparchitecture/tef/T_NonNativeAppsStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_NonNativeAppsStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,10 +22,10 @@
 #if (!defined __T_NONNATIVEAPPSTEP_H__)
 #define __T_NONNATIVEAPPSTEP_H__
 
-#include <APASERVERAPP.H>
-#include <EIKSERVERAPP.H>
+#include <apaserverapp.h>
+#include <eikserverapp.h>
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 // RTstFileArray
 
@@ -79,6 +77,12 @@
 	virtual TVerdict doTestStepPreambleL();
 	virtual TVerdict doTestStepPostambleL();
 	virtual TVerdict doTestStepL();
+	
+	enum TOption 
+	{
+	EAppA,
+	EAppB
+	};
 
 private:
 	HBufC8* OpenFileAndReadBufferLC(RApaLsSession& aApparcServer, RFs& aFileServer, const TDesC& aFullFileName);
@@ -86,8 +90,8 @@
 	void TestFilePosition(RFile& aFile, TInt aFilePosition);
 	void TestResultsOfAppForDocumentAndServiceL(TUid aServiceUid, TInt aError, const TUid& aAppUid, const TDataType& aDataType, const TDesC8& aExpectedDataType);
 	void CheckPropertyUpdateAndResetL(const TDesC& aExpectedNewValue);
-	void CheckApplicationLaunchesOkayL(RApaLsSession& aApparcServer, const CApaCommandLine& aCommandLine, TAny* aOption);
-	void CheckApplicationFailsToLaunchL(RApaLsSession& aApparcServer, const CApaCommandLine& aCommandLine, TAny* aOption);	
+	void CheckApplicationLaunchesOkayL(RApaLsSession& aApparcServer, const CApaCommandLine& aCommandLine, TOption aOption);
+	void CheckApplicationFailsToLaunchL(RApaLsSession& aApparcServer, const CApaCommandLine& aCommandLine, TOption aOption);	
 	void WaitForApplistUpdate(RApaLsSession& aApparcServer);
 private:
 	void TestAppForDocumentL(RApaLsSession& aApparcServer, RFs& aFileServer, const RTstFileArray& aFileArray);
@@ -96,12 +100,12 @@
 	void TestStartDocumentL(RApaLsSession& aApparcServer, RFs& aFileServer, const RTstFileArray& aFileArray);
 	void TestRegisterNonNativeApplicationL(RApaLsSession& aApparcServer, RFs& aFileServer);
 	void TestGetAppIconForNonNativeL(RApaLsSession& aApparcServer, RFs& aFileServer, CApaRegistrationResourceFileWriter* const aRegistrationResourceFileWriter, CApaLocalisableResourceFileWriter* const aLocalisableResourceFileWriter);	
-	void TestCommitNNAppUpdatesL(RApaLsSession& aApparcServer);	
+	void TestCommitNNAppUpdatesL(RApaLsSession& aApparcServer);
 	void TestForceCommitNNAppUpdatesL(RApaLsSession& aApparcServer);
 	void TestForceCommitL(RApaLsSession& aApparcServer, CApaRegistrationResourceFileWriter& aRegistrationResourceFileWriter, CApaRegistrationResourceFileWriter& aRegistrationResourceFileWriterB, CApaCommandLine& aNextCommandLine);
 	void TestRollbackRegistrationL(RApaLsSession& aApparcServer, CApaRegistrationResourceFileWriter& aRegistrationResourceFileWriter, CApaRegistrationResourceFileWriter& aRegistrationResourceFileWriterB, CApaCommandLine& aNextCommandLine);
 	void TestRollbackDeregistrationL(RApaLsSession& aApparcServer, CApaRegistrationResourceFileWriter& aRegistrationResourceFileWriter, CApaRegistrationResourceFileWriter& aRegistrationResourceFileWriterB, CApaCommandLine& aNextCommandLine);	
-
+	
 private:
 
 	};
@@ -110,3 +114,4 @@
 _LIT(KT_NonNativeAppsStep,"T_NonNativeApps");
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_NotifStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_NotifStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,12 +13,11 @@
 // Description:
 // Checks for notifications when application list changes.\n
 // 
+// t_notifstep.cpp
 //
 
-
-
 /**
- @file
+ @file t_notifstep.cpp
  @test
  @internalComponent - Internal Symbian test code
 */
@@ -26,11 +25,14 @@
 #include <f32file.h>
 #include <fbs.h>
 #include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apgaplst.h>
 #include <apaflrec.h>
 #include <apgcli.h>
 #include <apacmdln.h>
-#include <apsserv.h>
 #include <apfrec.h>
 #include <datastor.h>
 #include <apgicnfl.h>
@@ -41,6 +43,17 @@
 #include "appfwk_test_utils.h"
 #include "T_NotifStep.h"
 
+_LIT(KImportAppsDir,"c:\\private\\10003a3f\\import\\apps\\");
+_LIT(KResourceAppsDir,"c:\\resource\\apps\\");
+
+_LIT(KForceRegAppSourcePath_Reg,"Z:\\ApparcTest\\testforceregistrationapp1_reg.rsc");
+_LIT(KForceRegAppSourcePath_Loc,"Z:\\ApparcTest\\testforceregistrationapp1_loc.rsc");
+
+_LIT(KForceRegAppTargetPath_Reg,"c:\\private\\10003a3f\\import\\apps\\testforceregistrationapp1_reg.rsc");
+_LIT(KForceRegAppTargetPath_Loc,"c:\\resource\\apps\\testforceregistrationapp1_loc.rsc");
+
+_LIT(KForceRegAppCaption,"TestForceRegistration");
+_LIT(KForceRegAppDefaultCaption,"testforceregistrationapp1");
 
 /**
  
@@ -173,7 +186,7 @@
 	CleanupStack::PopAndDestroy(obs);
 	}
 
-void CT_NotifStep::ModifyIconFileTimeStamp()
+void CT_NotifStep::ModifyIconFileTimeStampL()
 	{
 	_LIT(KMbmIconFile, "c:\\resource\\apps\\tupgradeiconapp.mbm");
 	_LIT(KTestIconFile, "c:\\TestUpgradeIcon\\tupgradeiconapp.mbm");
@@ -230,7 +243,7 @@
 
 	// Change the timestamp of the icon file
 	INFO_PRINTF1(_L("Modifying the icon file...attempt to check it's notified"));
-	ModifyIconFileTimeStamp();
+	ModifyIconFileTimeStampL();
 	
 	CActiveScheduler::Start();
 	
@@ -245,6 +258,187 @@
 	CleanupStack::PopAndDestroy(obs); //obs
 	}
 
+/*
+ * TestForceRegistrationL copies a registration file and requests for force registration.
+ * It checks whether default caption is assigned, as the localisable file
+ * does not exist. Then it copies the localisable file and exits.  
+ */
+void TestForceRegistrationL(CT_NotifStep *aNotifStep)
+	{
+    	RApaLsSession ls;
+    	User::LeaveIfError(ls.Connect());
+    	CleanupClosePushL(ls);
+    
+    	//Copy the registration file to c:\private\10003a3f\import\apps
+	User::LeaveIfError((aNotifStep->iUtils).CopyFileL(KForceRegAppSourcePath_Reg, KForceRegAppTargetPath_Reg));
+	aNotifStep->INFO_PRINTF1(_L("Successfully copied testforceregistrationapp1_reg.rsc from Z:\\ApparcTest\\testforceregistrationapp1_reg.rsc"));
+
+	RPointerArray<TDesC> dummy;
+	User::LeaveIfError(ls.ForceRegistration(dummy));
+    
+    	TApaAppInfo info;
+    	TUid appUid={0x102826E0};
+    	aNotifStep->TEST(ls.GetAppInfo(info,appUid)==KErrNone);
+    	aNotifStep->INFO_PRINTF2(_L("Caption of the application before copying localisable file: %S"), &info.iCaption);
+    	//Test whether default captions are assigned as localisable file not exists.   
+    	aNotifStep->TEST(info.iCaption.Compare(KForceRegAppDefaultCaption)==0);    
+
+    	//Waits for some time as test thread gets chance to execute. As apparc does not notifiy
+    	//applist change due to force registration to all the clients, the test thread still waits
+    	//for applist change notification.
+    	User::After(5000000); 
+
+    	//Copy localisable file to c:\resource\apps
+	User::LeaveIfError((aNotifStep->iUtils).CopyFileL(KForceRegAppSourcePath_Loc, KForceRegAppTargetPath_Loc));
+	aNotifStep->INFO_PRINTF1(_L("Successfully copied testforceregistrationapp1_loc.rsc from Z:\\ApparcTest\\testforceregistrationapp1_loc.rsc"));
+
+	CleanupStack::PopAndDestroy();
+	}
+
+TInt ForceRegistrationThread(TAny* aPtr)
+    	{
+    	__UHEAP_MARK;
+    	CTrapCleanup* trapCleanup = NULL;
+	trapCleanup = CTrapCleanup::New();
+	
+    	CT_NotifStep *notifStep=(CT_NotifStep *) aPtr;
+    	
+    	TRAPD(errorCode, TestForceRegistrationL(notifStep));
+    
+    	delete trapCleanup;
+    	__UHEAP_MARKEND;    
+    	return(errorCode);
+    	}
+
+//Deletes the file if it exists.
+TInt CT_NotifStep::DeleteFileL(RSmlTestUtils &aFs, const TDesC &aFileName)
+    	{
+    	TInt fileExists = EFalse;
+    	TInt err;
+    	aFs.IsFilePresent(aFileName, fileExists);
+    	if (fileExists)
+        	{
+        	aFs.ChangeFilePermissionL(aFileName);
+        	err=aFs.DeleteFileL(aFileName);
+        	if(err==KErrNone)
+            		INFO_PRINTF2(_L("Removed file %S"), &aFileName);
+        	else
+            		INFO_PRINTF2(_L("Failed to remove file %S"), &aFileName);
+        	}
+    	else
+        	{
+        		err=KErrNotFound;
+        	}
+
+    	return(err);
+	}
+
+/**
+   @SYMTestCaseID           APPFWK-APPARC-0106
+  
+
+   @SYMDEF                  DEF141223
+  
+    @SYMTestCaseDesc         Tests apparc does not notifiy applist change, which occurred
+                            due to force registration, to all the other clients who have not requested
+                            force registration, before the installation is completed.
+  
+   @SYMTestPriority         High
+  
+   @SYMTestStatus           Implemented
+   
+   @SYMTestActions          1. The test registers with apparc for applist change notification.
+                            2. Starts another thread, which copies a registration file and requests
+                               force registration. Later copies the localisable file of the same
+                               application.
+                            3. Waits till the applist change event occurs or till 15 seconds
+                            4. Tests the caption of the application is same as the caption specified in
+                               localisable file. 
+                             
+   
+   @SYMTestExpectedResults The retrieved application caption should be same as the caption specified in 
+                           localisable file. 
+ */
+void CT_NotifStep::TestForceRegistrationNotificationL()
+    	{
+    	//Share the handle with other threads in the process    
+    	User::LeaveIfError(iUtils.ShareAuto()); 
+    	User::LeaveIfError(Logger().ShareAuto());
+    
+    	INFO_PRINTF1(_L("Creating c:\\private\\10003a3f\\import\\apps\\ directory......."));    
+	TInt err = iUtils.CreateDirectoryL(KImportAppsDir);
+	TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
+	INFO_PRINTF1(_L("c:\\private\\10003a3f\\import\\apps\\ is created successfully or already exists"));
+
+    	INFO_PRINTF1(_L("Creating c:\\resource\\apps\\ directory......."));    
+    	err = iUtils.CreateDirectoryL(KResourceAppsDir);
+    	TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
+    	INFO_PRINTF1(_L("c:\\resource\\apps\\ is created successfully or already exists"));
+    
+    	INFO_PRINTF1(_L("Make sure that registraiton and localisable files does not exist before the test starts..."));    
+    	DeleteFileL(iUtils, KForceRegAppTargetPath_Reg);
+    	DeleteFileL(iUtils, KForceRegAppTargetPath_Loc);
+        
+    	INFO_PRINTF1(_L("Connecting to apparc server..."));    
+    	RApaLsSession ls;
+    	User::LeaveIfError(ls.Connect());
+    	CleanupClosePushL(ls);
+    
+    	TRequestStatus status;
+    	INFO_PRINTF1(_L("Registering with apparc server for applist change notification."));       
+    	ls.SetNotify(EFalse, status); 
+  
+    	INFO_PRINTF1(_L("Creating ForceRegistrationThread............"));
+    	_LIT(KForceRegThreadName,"ForceRegThread");
+    	TBuf<0x100> threadName(KForceRegThreadName);
+    	RThread thread;
+    
+    	User::LeaveIfError(thread.Create(threadName, ForceRegistrationThread, 0x1000, NULL, (TAny*) this));
+    	CleanupClosePushL(thread);
+	TRequestStatus threadStatus;
+	thread.Logon(threadStatus);
+	
+	//Starts a thread which actually requests for force registration.
+    	thread.Resume(); 
+    
+	RTimer timer;
+	CleanupClosePushL(timer);
+	User::LeaveIfError(timer.CreateLocal());
+	TRequestStatus timerStatus;
+	timer.After(timerStatus,15 * 1000000);
+
+    	//Wait till the applist change event is receivied or till 15 Seconds
+    	User::WaitForRequest(status, timerStatus); 
+
+    	//Test whether the applist change event is received
+	TEST(status != KRequestPending); 
+    
+	TApaAppInfo info;
+	TUid appUid={0x102826E0};
+	TEST(ls.GetAppInfo(info,appUid)==KErrNone);
+	
+	//Checks the caption of the application is "TestForceRegistration". The caption will not be 
+	//"TestForceRegistration" if apparc server notifies all the clients about the applist change
+	//due to force registration, before installation is completed.
+	INFO_PRINTF2(_L("Caption of the application after the applist change notification is received: %S"), &info.iCaption);
+    	TEST(info.iCaption.Compare(KForceRegAppCaption)==0);
+
+
+    	//Wait till the the ForceRegistrationThread exits	
+	User::WaitForRequest(threadStatus);
+	
+	TInt theadExitCode=thread.ExitReason();
+	INFO_PRINTF2(_L("ForceRegistrationThread thread is exited with %d"), theadExitCode);
+    	//Checks ForceRegistrationThread completed successfully.	
+	TEST(theadExitCode==KErrNone); 
+
+    	//Delete the registration and localisation files
+	TEST(DeleteFileL(iUtils, KForceRegAppTargetPath_Reg)==KErrNone);
+    	TEST(DeleteFileL(iUtils, KForceRegAppTargetPath_Loc)==KErrNone);
+
+    	CleanupStack::PopAndDestroy(3,&ls);
+    	}
+
 CT_NotifStep::~CT_NotifStep()
 /**
    Destructor
@@ -284,6 +478,7 @@
 
 	// run the testcode (inside an alloc heaven harness)	
 	__UHEAP_MARK;
+	iUtils.Connect();
 #if defined (__WINSCW__)
 	INFO_PRINTF1(_L("T-NotifStep-TTestIconFileNotificationL Test Started..."));
 	TRAP(ret,TestIconFileNotificationL());
@@ -294,6 +489,12 @@
 	TRAP(ret,TestAppNotificationL());
 	TEST(ret==KErrNone);
 	INFO_PRINTF2(_L("TestAppNotificationL() finished with return code '%d'\n"), ret);
+
+	INFO_PRINTF1(_L("TestForceRegistrationNotificationL Test Started..."));
+	TRAP(ret, TestForceRegistrationNotificationL());
+	TEST(ret==KErrNone);	
+	INFO_PRINTF2(_L("TestForceRegistrationNotificationL() finished with return code '%d'\n"), ret);
+	iUtils.Close();	
 	__UHEAP_MARKEND;
 	
 	iUtils.Close();
--- a/localisation/apparchitecture/tef/T_NotifStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_NotifStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,7 +22,7 @@
 #if (!defined __T_NOTIF_STEP_H__)
 #define __T_NOTIF_STEP_H__
 #include <apgnotif.h>
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 #include "testableapalssession.h"
 
 //!  A CT_NotifStep test class. 
@@ -39,11 +37,13 @@
 	virtual TVerdict doTestStepL();
 	void TestAppNotificationL();
 	void TestIconFileNotificationL();
-	
+	void TestForceRegistrationNotificationL();
+	friend void TestForceRegistrationL(CT_NotifStep *aNotifStep);
 private:
+	TInt DeleteFileL(RSmlTestUtils &aFs, const TDesC &aFileName);
 	void CreateAppL(const TDesC& aAppName);
 	void DeleteAppL(const TDesC& aAppName);
-	void ModifyIconFileTimeStamp();
+	void ModifyIconFileTimeStampL();
 	
 private:
 	CActiveScheduler* iScheduler;
@@ -65,3 +65,4 @@
 _LIT(KT_NotifStep,"T_Notif");
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_OOMStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_OOMStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,17 +13,20 @@
 // Description:
 // Performs the Out of Memory Tests.\n
 // 
+// t_oomstep.cpp
 //
 
-
-
 /**
- @file
+ @file t_oomstep.cpp
  @internalComponent - Internal Symbian test code  
 */
 
 #include <f32file.h>
 #include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apgaplst.h>
 #include <apgicnfl.h>
 #include <apgdoor.h>
@@ -614,3 +617,4 @@
 	iFs.Close();
 	return TestStepResult();
 }
+
--- a/localisation/apparchitecture/tef/T_OOMStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_OOMStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file 
  @internalComponent - Internal Symbian test code  
@@ -23,7 +21,7 @@
 #if (!defined __T_OOM_STEP_H__)
 #define __T_OOM_STEP_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 //!  A CT_OOMStep test class. 
 
@@ -65,3 +63,5 @@
 _LIT(KT_OOMStep,"T_OOM");
 
 #endif
+
+
--- a/localisation/apparchitecture/tef/T_ProStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ProStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,12 +13,11 @@
 // Description:
 // Tests Application Apparc base classes and utility functions to get application's data.\n
 // 
+// t_prostep.cpp
 //
 
-
-
 /**
- @file
+ @file t_prostep.cpp
  @test
  @internalComponent - Internal Symbian test code
 */
@@ -28,11 +27,11 @@
 #include <s32std.h> 
 #include <s32stor.h> 
 #include <s32file.h> 
-#include <ecom.h>
+#include <ecom/ecom.h>
 
 #include <apaid.h>
-#include "..\apparc\apadll.h"
-#include "..\apgrfx\apgstd.h"
+#include "../apparc/apadll.h"
+#include "../apgrfx/APGSTD.H"
 #include <apgaplst.h>
 #include <apgicnfl.h>
 #include <apgdoor.h>
@@ -46,7 +45,7 @@
 
 #include "T_ProStep.h"
 #include "tstapp.h"
-#include <appfwk_test_utils.h>
+#include "appfwk_test_utils.h"
 
 #if !defined(__E32TEST_H__)
 #include <e32test.h>
@@ -269,7 +268,6 @@
 	TEST(ret==KErrNoMemory);
 	__UHEAP_MARKEND;
 	__UHEAP_RESET;
-
 	// tidy up
 	file.Close();
 	iFs.Delete(_L("c:\\path\\name"));
@@ -1310,7 +1308,7 @@
 	CleanupStack::PushL(fileMan);
 	
 	INFO_PRINTF1(_L("Copy tstapp files to C: drive......."));
-	TInt ret = iFs.MkDir(KTempAppDir);
+	TInt ret = iFs.MkDirAll(KTempAppDir);
 	TEST(ret==KErrNone || ret==KErrAlreadyExists);
 	TEST(fileMan->Copy(regPath, KTempRegPath)==KErrNone);	//Just to start the idle update.
 
@@ -1350,7 +1348,7 @@
  
   This method creates and installs an active scheduler and puts the
   test code on the scheduler as a CIdle object. The method initiates
-  all tests by calling the static method CT_ProStepCallBack::CallBack().
+  all tests by calling the static method CT_ProStepCallBack::CallBackL().
  
 */
 void CT_ProStep::DoStepTestsInCallbackL()
@@ -1367,7 +1365,7 @@
 	CT_ProStepCallBack* callBack = new(ELeave) CT_ProStepCallBack(this);
 	CleanupStack::PushL(callBack);
 
-	idle->Start(TCallBack(CT_ProStepCallBack::CallBack,callBack));
+	idle->Start(TCallBack(CT_ProStepCallBack::CallBackL,callBack));
 	// start the test code
 	CActiveScheduler::Start();
 
@@ -1377,12 +1375,12 @@
 
 /**
   This static method is the callback function of CIdle object. The method
-  calls the non-static method DoStepTests() which initiates all the tests. 
+  calls the non-static method DoStepTestsL() which initiates all the tests. 
 */
-TInt CT_ProStepCallBack::CallBack(TAny* callBack /*aThis*/)
+TInt CT_ProStepCallBack::CallBackL(TAny* callBack /*aThis*/)
 {
 	//Call Test Step func
-	((CT_ProStepCallBack *)callBack)->iTestStep->DoStepTests();
+	((CT_ProStepCallBack *)callBack)->iTestStep->DoStepTestsL();
 	
 	CActiveScheduler::Stop();
 	return EFalse; // don't call back again
@@ -1408,7 +1406,7 @@
   Auxiliary Fn for all Test Cases. 
   The method initiates all tests to be performed.
 */
-void CT_ProStep::DoStepTests()
+void CT_ProStep::DoStepTestsL()
 	{
 	INFO_PRINTF1(_L("Test AppListInvalidTest......"));
 	RTestableApaLsSession ls;
--- a/localisation/apparchitecture/tef/T_ProStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ProStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,12 +11,11 @@
 // Contributors:
 //
 // Description:
+// t_prostep.h
 //
 
-
-
 /**
- @file
+ @file t_prostep.h
  @internalComponent - Internal Symbian test code 
 */
 
@@ -25,10 +24,15 @@
 
 _LIT(KT_ProStep,"T_Pro");
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 #include <apaid.h>
-#include "..\apparc\apadll.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#include <apgicnflpartner.h>
+#include <apgctllist.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "../apparc/apadll.h"
 #include <apgaplst.h>
 #include <apgicnfl.h>
 #include <apgdoor.h>
@@ -52,7 +56,7 @@
 	virtual TVerdict doTestStepPreambleL();
 	virtual TVerdict doTestStepPostambleL();
 	virtual TVerdict doTestStepL();
-	void DoStepTests();
+	void DoStepTestsL();
 //private:
 	void DoStepTestsInCallbackL();
 	void testAppIdentifierL();
@@ -99,10 +103,12 @@
 public:
 	CT_ProStepCallBack(CT_ProStep* aTestStep);
 	~CT_ProStepCallBack();
-	static TInt CallBack(TAny* /*aThis*/);
+	static TInt CallBackL(TAny* /*aThis*/);
 	CT_ProStep* iTestStep;
 
 private:
 	};
 
 #endif
+
+
--- a/localisation/apparchitecture/tef/T_ProcStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ProcStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -103,14 +101,14 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////////
+//
 //
 // T_ProcStep.cpp 
 // ------------
 //
 // Implements the test cases to test Child behaviour on Parent termination.
 //
-////////////////////////////////////////////////////////////////////////////
+//
 
 CT_ProcStep::CT_ProcStep()
 /**
@@ -671,9 +669,11 @@
 	INFO_PRINTF1(_L("	Attach CommandLine of Child One to its Process "));
 
 	INFO_PRINTF1(_L("	Run Child One "));
+	TRequestStatus childOnestatus;
+	childProcOne.Rendezvous(childOnestatus);
 	childProcOne.Resume();
-	//Time for the child process to launch itself
-	User::After(1000000);
+	//Wait for the child process to launch itself
+	User::WaitForRequest(childOnestatus);
 
 	//child process Id is reqd to monitor if it gets killed on its parent's termination
 	TUint64 childProcOneId = childProcOne.Id();
@@ -703,9 +703,11 @@
 	INFO_PRINTF1(_L("	Attach CommandLine of Child Two to its Process "));
 
 	INFO_PRINTF1(_L("	Run Child Two "));
+	TRequestStatus childTwostatus;
+	childProcTwo.Rendezvous(childTwostatus);
 	childProcTwo.Resume();
-	//Time for the child process to launch itself
-	User::After(1000000);
+	//Wait for the child process to launch itself
+	User::WaitForRequest(childTwostatus);
 
 	//child process Id is reqd to monitor if it gets killed on its parent's termination
 	TUint64 childProcTwoId = childProcTwo.Id();
@@ -734,10 +736,12 @@
 	User::LeaveIfError(ret);
 	INFO_PRINTF1(_L("	Attach CommandLine of Child Three to its Process "));
 
+	TRequestStatus childThreestatus;
+	childProcThree.Rendezvous(childThreestatus);
 	childProcThree.Resume();
 
-	//Time for the child process to launch itself
-	User::After(1000000);
+	//Wait for the child process to launch itself
+	User::WaitForRequest(childThreestatus);
 
 	//child process Id is reqd to monitor if it gets killed on its parent's termination
 	TUint64 childProcThreeId = childProcThree.Id();
@@ -753,6 +757,7 @@
 	TEST(exitType == EExitTerminate);
 	TInt exitReason = parentProc.ExitReason();
 	TEST(exitReason == 0);
+	INFO_PRINTF3(_L("	Parent process - Exit Type = %d, Exit Reason = %d"), exitType, exitReason);
 	if(exitType == EExitTerminate && exitReason == 0)
 		{
 		INFO_PRINTF1(_L("	Parent process is Terminated "));
@@ -762,26 +767,32 @@
 	TEST(exitType == EExitTerminate);
 	exitReason = childProcOne.ExitReason();
 	TEST(exitReason == 0);
+	INFO_PRINTF3(_L("	Child I process - Exit Type = %d, Exit Reason = %d"), exitType, exitReason);
 	if(exitType == EExitTerminate && exitReason == 0)
 		{
 		INFO_PRINTF1(_L("	Child I is killed "));
 		}
-
+	
+	childProcTwo.Logon(childTwostatus);
+	User::WaitForRequest(childTwostatus);
 	exitType = childProcTwo.ExitType();
 	TEST(exitType == EExitTerminate);
 	exitReason = childProcTwo.ExitReason();
 	TEST(exitReason == 0);
+	INFO_PRINTF3(_L("	Child II process - Exit Type = %d, Exit Reason = %d"), exitType, exitReason);
 	if(exitType == EExitTerminate && exitReason == 0)
 		{
 		INFO_PRINTF1(_L("	Child II is killed "));
 		}
 
-	//Wait 1sec to close the child process
-	User::After(1000000);
+	//Wait to close the child process
+	childProcThree.Logon(childThreestatus);
+	User::WaitForRequest(childThreestatus);
 	exitType = childProcThree.ExitType();
 	TEST(exitType == EExitTerminate);
 	exitReason = childProcThree.ExitReason();
 	TEST(exitReason == 0);
+	INFO_PRINTF3(_L("	Child III process - Exit Type = %d, Exit Reason = %d"), exitType, exitReason);
 	if(exitType == EExitTerminate && exitReason == 0)
 		{
 		INFO_PRINTF1(_L("	Child III is killed "));
@@ -1092,9 +1103,11 @@
 	INFO_PRINTF2(_L("	Set the Parent Process Id - 0x%lx to Child through SetParameter API in Slot 12 "),parentProcId);
 
 	INFO_PRINTF1(_L("	Run Child Process "));
+	TRequestStatus status;
+	childProc.Rendezvous(status);
 	childProc.Resume();
-	//Time for the child process to launch itself
-	User::After(1000000);
+	//Wait for the child process to launch itself
+	User::WaitForRequest(status);
 
 	RFs fs;
 	RFile file;
@@ -1249,9 +1262,11 @@
 	INFO_PRINTF2(_L("	Set the Parent Process Id - 0x%lx to Child through SetParameter API in Slot 12 "),parentProcId);
 
 	INFO_PRINTF1(_L("	Run Child Process "));
+	TRequestStatus status;
+	childProc.Rendezvous(status);
 	childProc.Resume();
-	//Time for the child process to launch itself
-	User::After(1000000);
+	//Wait for the child process to launch itself
+	User::WaitForRequest(status);
 
 	RFs fs;
 	RFile file;
--- a/localisation/apparchitecture/tef/T_ProcStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ProcStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -25,7 +23,7 @@
 
 #include <apacmdln.h>
 #include <apgcli.h>
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 #include <apparc.h>
 
 _LIT(KT_ProcStep,"T_Proc");
--- a/localisation/apparchitecture/tef/T_RApaLsSessionStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_RApaLsSessionStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,12 +11,11 @@
 // Contributors:
 //
 // Description:
+// t_rapalssessionstep.cpp
 //
 
-
-
 /**
- @file
+ @file t_rapalssessionstep.cpp
  @test
  @internalComponent - Internal Symbian test code 
 */
@@ -31,14 +30,14 @@
 #include <coeccntx.h>
 #include <coemain.h>
 #include <coeview.h>
-#include <eikdialg.h>
+#include <mw/eikdialg.h>
 #include <eikdoc.h>
 #include <eikapp.h>
 #include <eiksrvc.h>
-#include <eikconso.h>
+#include <mw/eikconso.h>
 
 #include <apaid.h>
-#include "..\apparc\apadll.h"
+#include "../apparc/apadll.h"
 #include <apgaplst.h>
 #include <apgicnfl.h>
 #include <apgdoor.h>
@@ -49,13 +48,13 @@
 #include <apaflrec.h>
 #include <apgcli.h>
 #include <apacmdln.h>
-#include <apsserv.h>
 #include <barsread.h>
 #include "tstapp.h"
-#include <appfwk_test.h>
+#include "appfwk_test.h"
+#include <apgnotif.h>
 
 #include "T_RApaLsSessionStep.h"
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include "TRApaLsSessionStartAppTest.h"
 #include "TIconLoaderAndIconArrayForLeaks.h"  
 
@@ -87,9 +86,9 @@
 	}
 
 
-////////////////////////////
+//
 // Might actually be tests......
-/////////////////////////////
+//
 
 void CT_RApaLsSessionTestStep::TestAppListInfoDataInterrogationSetupL()
 	{
@@ -505,7 +504,7 @@
 	CleanupStack::PushL(iAppListInvalidTestFileMan);
 	
 	INFO_PRINTF1(_L("Copy tstapp files to C: drive......."));
-	TInt rtn=iFs.MkDir(KTempAppDir);
+	TInt rtn=iFs.MkDirAll(KTempAppDir);
 	TEST(rtn==KErrNone||rtn==KErrAlreadyExists); 
 	TEST(iAppListInvalidTestFileMan->Copy(regPath, KTempRegPath)==KErrNone);	//Just to start the idle update.
 
@@ -670,7 +669,60 @@
    
   	INFO_PRINTF1(KCompleted);
 	}
-   	
+ 
+/**
+   @SYMTestCaseID APPFWK-APPARC-00105
+  
+   @SYMDEF DEF139507 :API for recognizing data from memory buffer
+  
+   @SYMTestCaseDesc Test data recognition functions of RApaLsSession passing data only by buffer.
+   
+   @SYMTestPriority High 
+  
+   @SYMTestStatus Implemented
+   
+   @SYMTestActions Test RApaLsSession::RecognizeData() to recognize the data type of the data passed only by buffer.
+   
+   @SYMTestExpectedResults Test ensures that the data recognition functions identify the data type of
+   data passed by buffer.
+ */
+void CT_RApaLsSessionTestStep::TestAppListRecognizeDataPassedByBufferL()
+	{
+	INFO_PRINTF1(_L("Testing data recognition functions of RApaLsSession passing data only by buffer"));
+
+	//tbufferonlyrec.dll recognizes KTestBuffer with confidence as ECertain 
+	TDataRecognitionResult rr;
+    _LIT8(KTestBuffer, "Text_TestRecognizer");
+    rr.Reset();
+    TInt error = iLs.RecognizeData(KTestBuffer, rr);
+    if (rr.iConfidence != CApaDataRecognizerType::ECertain)
+        {
+        INFO_PRINTF1(_L("Error: confidence should be ECertain"));
+        TEST(EFalse);
+        }
+    
+	//tbufferonlyrec.dll recognizes KAnotherBuffer with confidence as EProbable
+    _LIT8(KAnotherBuffer, "AnotherText");
+    rr.Reset();
+    error = iLs.RecognizeData(KAnotherBuffer, rr);
+    if (rr.iConfidence != CApaDataRecognizerType::EProbable)
+        {
+        INFO_PRINTF1(_L("Error: confidence should be EProbable"));        
+        TEST(EFalse);
+        }  
+
+	//tbufferonlyrec.dll recognizes KSampleBuffer with confidence as ENotRecognized 
+   _LIT8(KSampleBuffer, "Sample Application");
+    rr.Reset();
+    error = iLs.RecognizeData(KSampleBuffer, rr);
+    if (rr.iConfidence != CApaDataRecognizerType::ENotRecognized)
+        {
+        INFO_PRINTF1(_L("Error: confidence should be ENotRecognized"));        
+        TEST(EFalse);
+        }  
+  	INFO_PRINTF1(KCompleted);
+	}
+
 /**
    @SYMTestCaseID T-Serv2Step-DoEnquiryTestsL
   
@@ -1697,7 +1749,7 @@
 	TEST(ret == KErrNone);
 	TEST(fullIconFileName != NULL);
 	INFO_PRINTF2(_L("The View icon's UID is - %X"), viewInfo.iUid);
-	TEST(!fullIconFileName->Compare(_L("file:///c/resource/apps/tcheckiconapp.xyz")));
+	TEST(!fullIconFileName->Compare(_L("file://c/resource/apps/tcheckiconapp.xyz")));
 	INFO_PRINTF2(_L("View's icon file name is - %S"), fullIconFileName);
 	
 	delete fullIconFileName;		
@@ -1988,6 +2040,104 @@
  	INFO_PRINTF1(_L("Test TestAppListInstallation1L completed"));
  	} 	
 
+	/**
+   @SYMTestCaseID APPFWK-APPARC-0107
+   
+   @SYMDEF DEF141484 
+   
+   @SYMTestCaseDesc     Tests whether Phone booting is failed or not with pesense of 
+                        an .mbm file of size zero in the path resource\apps
+   
+   @SYMTestPriority 
+  
+   @SYMTestStatus       Implemented
+   
+   @SYMTestActions          Place an .mbm file of size zero in the path resource\apps
+   
+   @SYMTestExpectedResults  Phone booting should not fail with pesense of 
+                            an .mbm file of size zero in the path resource\apps
+    
+ */
+void CT_RApaLsSessionTestStep::TestZeroSizedIconFileL()
+    {
+    
+    INFO_PRINTF1(_L("Test TestZeroSizedIconFileL Started.........."));
+    
+    _LIT(KTestAppDestDir, "C:\\private\\10003a3f\\import\\apps\\" );
+    _LIT(KTestAppResourceDir, "C:\\resource\\apps\\" );
+    
+    _LIT(KTestAppSource, "Z:\\apparctest\\zerosizedicon_reg.rsc" );
+    _LIT(KTestAppDest, "C:\\private\\10003a3f\\import\\apps\\zerosizedicon_reg.rsc" );
+    
+    _LIT(KTestMbmSource, "Z:\\resource\\apps\\zerosizedicon.mbm");
+    _LIT(KTestMbmDest, "C:\\resource\\apps\\zerosizedicon.mbm");
+    
+    _LIT(KTestLocSource, "Z:\\apparctest\\zerosizedicon_loc.rsc");
+    _LIT(KTestLocDest, "C:\\resource\\apps\\zerosizedicon_loc.rsc");
+   
+    TRequestStatus appScanCompleted=KRequestPending; 
+    iLs.SetNotify(EFalse,appScanCompleted); 
+    
+    RSmlTestUtils utils;
+    CleanupClosePushL(utils);
+    TEST(KErrNone == utils.Connect());
+  
+    INFO_PRINTF1(_L("Creating directory C:\\private\\10003a3f\\import\\apps\\ folder"));
+    TInt err=utils.CreateDirectoryL(KTestAppDestDir);
+    TESTEL((err==KErrNone) ||  (err==KErrAlreadyExists),err);
+
+    INFO_PRINTF1(_L("Creating directory C:\\resource\\apps\\ folder"));
+    err=utils.CreateDirectoryL(KTestAppResourceDir);
+    TESTEL((err==KErrNone) ||  (err==KErrAlreadyExists),err);
+
+    INFO_PRINTF1(_L("Copying _reg.rsc to C:\\private\\10003a3f\\import\\apps\\ folder"));    
+    User::LeaveIfError(utils.CopyFileL(KTestAppSource,KTestAppDest));
+    INFO_PRINTF1(_L("Copying the mbm and _loc.rsc to C:\\resource\\apps\\ folder"));
+    User::LeaveIfError(utils.CopyFileL(KTestMbmSource,KTestMbmDest));
+    User::LeaveIfError(utils.CopyFileL(KTestLocSource,KTestLocDest));
+
+    User::WaitForRequest(appScanCompleted);
+    TEST(appScanCompleted.Int()==MApaAppListServObserver::EAppListChanged);
+
+	appScanCompleted=KRequestPending;
+	iLs.SetNotify(EFalse,appScanCompleted);
+    INFO_PRINTF1(_L("Removing _reg.rsc from C:\\private\\10003a3f\\import\\apps\\ folder"));
+    TEST(KErrNone == DeleteFileL(utils, KTestAppDest));
+    INFO_PRINTF1(_L("Removing the mbm and _loc.rsc from C:\\resource\\apps\\ folder"));
+    TEST(KErrNone == DeleteFileL(utils, KTestMbmDest));
+    TEST(KErrNone == DeleteFileL(utils, KTestLocDest));
+    INFO_PRINTF1(_L("Removing the C:\\private\\10003a3f\\import\\apps\\ dir "));
+    TEST(KErrNone == utils.DeleteDirectoryL(KTestAppDestDir));
+  
+	User::WaitForRequest(appScanCompleted);
+    CleanupStack::PopAndDestroy(&utils);//utils
+    INFO_PRINTF1(_L("Test TestZeroSizedIconFileL completed"));
+    } 
+
+//Deletes the file if it exists.
+TInt CT_RApaLsSessionTestStep::DeleteFileL(RSmlTestUtils &aFs, const TDesC &aFileName)
+    {
+    TInt fileExists = EFalse;
+    TInt err;
+    aFs.IsFilePresent(aFileName, fileExists);
+    if (fileExists)
+        {
+        aFs.ChangeFilePermissionL(aFileName);
+        err=aFs.DeleteFileL(aFileName);
+        if(err==KErrNone)
+            INFO_PRINTF2(_L("Removed file %S"), &aFileName);
+        else
+            INFO_PRINTF2(_L("Failed to remove file %S"), &aFileName);
+        }
+    else
+        {
+        err=KErrNotFound;
+        }
+
+    return(err);
+}
+
+	
 /**
    @SYMTestCaseID T-RApaLsSessionTestStep-TestAppFolderNonRomDrivesL
   
@@ -2359,6 +2509,7 @@
    @SYMTestExpectedResults There should be no memory leak checked by __UHEAP_MARK 
    and __UHEAP_MARKEND.
  */
+ 
 void CT_RApaLsSessionTestStep::TestIconLoaderAndIconArrayMemoryLeaksL()
 	{
 	INFO_PRINTF1(_L("Test TestIconLoaderAndIconArrayMemoryLeaksL"));
@@ -2382,7 +2533,8 @@
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppListInstallationL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppListInstallation1L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppFolderNonRomDrivesL(), NO_CLEANUP);
-	HEAP_TEST_LS_SESSION(iLs, 0, 0, IconLoadingTestCasesL(), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestZeroSizedIconFileL(), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(iLs, 0, 0, IconLoadingTestCasesL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, AppInfoTestCasesL(), iLs.ClearAppInfoArray(); NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, EmbeddedAppsTestCases(), iLs.ClearAppInfoArray() );
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, DoNumDefIconsTestL(), NO_CLEANUP);
@@ -2390,6 +2542,7 @@
 	//DONT_CHECK since there's a new typestore
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestNotifyOnDataMappingChangeL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListRecognizeDataBufferOnlyL(), iLs.FlushRecognitionCache() );
+	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListRecognizeDataPassedByBufferL(), iLs.FlushRecognitionCache() );
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListRecognizeDataL(), iLs.FlushRecognitionCache() );
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestDataPriorityForUnTrustedApps(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestDataPriorityForUnTrustedAppsRegFile(), NO_CLEANUP);
@@ -2459,3 +2612,4 @@
 	return TestStepResult();
 	}
 	
+
--- a/localisation/apparchitecture/tef/T_RApaLsSessionStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_RApaLsSessionStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,12 +11,11 @@
 // Contributors:
 //
 // Description:
+// t_rapalssessionstep.h
 //
 
-
-
 /**
- @file
+ @file t_rapalssessionstep.h
  @test
  @internalComponent - Internal Symbian test code  
 */
@@ -26,21 +25,25 @@
 
 _LIT(KT_RApaLsSessionStep,"T_RApaLsSession");
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 #include <coecntrl.h>
 #include <coeccntx.h>
 #include <coemain.h>
 #include <coeview.h>
-#include <eikdialg.h>
+#include <mw/eikdialg.h>
 #include <eikdoc.h>
 #include <eikapp.h>
 #include <eiksrvc.h>
-#include <eikconso.h>
+#include <mw/eikconso.h>
 #include <eikenv.h>
 
 #include <apaid.h>
-#include "..\apparc\apadll.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "../apparc/apadll.h"
 #include <apgaplst.h>
 #include <apgicnfl.h>
 #include <apgdoor.h>
@@ -51,10 +54,10 @@
 #include <apaflrec.h>
 #include "testableapalssession.h"
 #include <apacmdln.h>
-#include <apsserv.h>
 #include <datastor.h>
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include "TAppEmbedUids.h"
+#include "appfwk_test_utils.h"
 
 
 class CT_RApaLsSessionTestStep : public CTestStep
@@ -106,9 +109,11 @@
 
 	void TestAppListRecognizeDataL();
 	void TestAppListRecognizeDataBufferOnlyL();
+	void TestAppListRecognizeDataPassedByBufferL();
 	void TestAppListInstallationL();
 	void TestAppListInstallation1L();
 	void TestAppFolderNonRomDrivesL();
+	void TestZeroSizedIconFileL();
 
 	void EmbeddedAppsTestCases();
 	void DoGetAllApps();
@@ -132,9 +137,14 @@
 	void TestDataPriorityForUnTrustedApps();
 	void TestDataPriorityForUnTrustedAppsRegFile();
 	void TestIconLoaderAndIconArrayMemoryLeaksL();
+	TInt DeleteFileL(RSmlTestUtils &aFs, const TDesC &aFileName);
 private:
 	RFs iFs;
 	RTestableApaLsSession iLs;
 	};
 
 #endif
+
+
+
+
--- a/localisation/apparchitecture/tef/T_RecUpgrade.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_RecUpgrade.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,27 +13,27 @@
 // Description:
 // This test case is used to verify that a recognizer plugin can be upgraded and  used 
 // without reboot.
-// 
+//
+// t_recupgrade.cpp
 //
 
 
 
 /**
- @file
+ @file t_recupgrade.cpp
  @internalComponent - Internal Symbian test code
 */
 
 #include "testableapalssession.h"
 #include "T_RecUpgrade.h"
-#include "appfwk_test_utils.h"
-#include "trecupgrade/upgconstants.h"
+#include "TRecUpgrade/upgconstants.h"
 
-/////////////////////////////////////////////////
+//
 
 // Should be enough for CApaEComMonitor to detect new plugin
 const TInt KOneSecondDelay = 1000000;
 
-/////////////////////////////////////////////////
+//
 
 CT_RecUpgradeStep::CT_RecUpgradeStep()
 	{
@@ -45,6 +45,21 @@
 	{
 	}
 
+
+TInt CT_RecUpgradeStep::DeleteFileL(const TDesC &aFileName, RSmlTestUtils &fs)
+	{
+	TInt fileExists = EFalse;
+	TInt err;
+	fs.IsFilePresent(aFileName, fileExists);
+	if (fileExists)
+		{
+		fs.ChangeFilePermissionL(aFileName); // clear readonly attribute inherited from z:
+		err = fs.DeleteFileL(aFileName);
+		return(err);
+		}
+	return(KErrNotFound);
+	}
+
 /**
 Check that the test plugin file has not been left in the filesystem from a previous run.
 */
@@ -72,18 +87,18 @@
 	CleanupClosePushL(fs);
 	User::LeaveIfError(fs.Connect());
 
-	TBool fileExists = EFalse;
-	fs.IsFilePresent(KUpgRscTargetPath, fileExists);
-	if(fileExists)
-		{
-		fs.ChangeFilePermissionL(KUpgRscTargetPath); // clear readonly attribute inherited from z:
-		const TInt err = fs.DeleteFileL(KUpgRscTargetPath);
-		if(err == KErrNone) 
-			INFO_PRINTF1(_L("Removed temporary file recupgrade.rsc"));
-		else 
-			INFO_PRINTF1(_L("Failed to remove temporary file recupgrade.rsc"));	
-		}
-		
+	TInt err = CT_RecUpgradeStep::DeleteFileL(KUpgRscTargetPath,fs);
+	if(err == KErrNone || err == KErrNotFound) 
+		INFO_PRINTF1(_L("Removed temporary file recupgrade.rsc or not found"));
+	else 
+		INFO_PRINTF1(_L("Failed to remove temporary file recupgrade.rsc"));	
+	
+	err = CT_RecUpgradeStep::DeleteFileL(KUpgDllTargetPath,fs);
+	if(err == KErrNone || err == KErrNotFound) 
+		INFO_PRINTF1(_L("Removed temporary file recupgrade.dll or not found"));
+	else 
+		INFO_PRINTF1(_L("Failed to remove temporary file recupgrade.dll"));	
+
 	CleanupStack::PopAndDestroy(&fs);
 	return TestStepResult();
 	}
@@ -96,9 +111,8 @@
 	RTestableApaLsSession apparcServer;
 	CleanupClosePushL(apparcServer);
 	User::LeaveIfError(apparcServer.Connect());
-	//DONT_CHECK skips the heap check at server side. This heap imbalance happens due to copying recupgrade.dll to c:\sys\bin
-	//and failed to delete it in cleanup (Windows OS don’t allow to delete any file which are in use).
- 	HEAP_TEST_LS_SESSION(apparcServer, 0, DONT_CHECK, TestUpgradeRecognizerL(apparcServer), NO_CLEANUP);
+	HEAP_TEST_LS_SESSION(apparcServer, 0, 0, TestUpgradeRecognizerL(apparcServer), apparcServer.FlushRecognitionCache());
+	HEAP_TEST_LS_SESSION(apparcServer, 0, 0, TestUpgradeRecognizer2L(apparcServer), apparcServer.FlushRecognitionCache());	
 
 	CleanupStack::PopAndDestroy(&apparcServer);
 	
@@ -119,8 +133,7 @@
 @SYMTestActions:
 	
 	1. Try to recognize .upg file with version 1 of recupgrade ECOM plugin but if shuld not be able to recognize as it is implemented like that
-	2. Install version 2 of recupgrade plugin (copy recupgrade_winscw/armv5_rec.dll and recupgrade_1.rsc from z:\system\data to c:\sys\bin and c:\resource\plugin respectively)
-
+	2. Install version 2 of recupgrade plugin (copy recupgrade_armv5_rel.dll and recupgrade.rsc from z:\system\data to c:\sys\bin and c:\resource\plugin respectively)
 	3. Because of installation Apparc will be notified and it will reload all recognizers plugin
 	4. Now try to recognize .upg file . it shuld be able to recognize as vertion 2 is implemented like that
 
@@ -147,67 +160,49 @@
 	User::LeaveIfError(fs.Connect());
 	
 	// Ensure c:\\resource\\plugins is created, otherwise leave from this teststep
-	
 	TInt err = fs.CreateDirectoryL(KUpgRscTargetDir);
 	TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
 	INFO_PRINTF1(_L("c:\\resource\\plugins is created successfully or already exists"));
 	
 	// Ensure c:\\sys\\bin is created, otherwise leave from this teststep
-	
 	err = fs.CreateDirectoryL(KUpgDllTargetDir);
 	TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
 	INFO_PRINTF1(_L("c:\\sys\\bin is created successfully or already exists"));
 
 	// Copy recupgrade.rsc from z:\\ to c:\\resource\\plugins, to trigger the rescan for plugins.
-	
 	err = fs.CopyFileL(KUpgRscSourcePath, KUpgRscTargetPath);
 	TEST(err == KErrNone);
 	INFO_PRINTF1(_L("Successfully copied recupgrade.rsc from Z:\\system\\data to c\\resource\\plugins"));
+
 	// Copy recupgrade_*.dll from z:\\ to c:\\sys\\bin.
-	#ifdef __WINS__ 
-		err = fs.CopyFileL(KUpgDllSourcePathWinscw, KUpgDllTargetPath);
-	#else
-		err = fs.CopyFileL(KUpgDllSourcePathArmv5, KUpgDllTargetPath);
-	#endif
+	err = fs.CopyFileL(KUpgDllSourcePathArmv5, KUpgDllTargetPath);
+	
 	TEST(err == KErrNone);
 	INFO_PRINTF1(_L("Successfully copied recupgrade_*.dll from Z:\\system\\data to c:\\sys\\bin"));
 
-	INFO_PRINTF2(_L("Waits %d seconds for new mime/upg recognizer with EPossible confidence to be installed."), (4 * KOneSecondDelay)/1000000);	
-	User::After(4 * KOneSecondDelay);
+	INFO_PRINTF2(_L("Waits %d seconds for new mime/upg recognizer with ECertain confidence to be installed."), (5 * KOneSecondDelay)/1000000);	
+	User::After(5 * KOneSecondDelay);
 	
-	// Without fix for INC127312: Apparc server will not reload all upgraded MIME type recognition hence new version of existing will not used for recognization 
+	// Test whether newly installed (or copied) plugin to c: drive is loaded by framework and recognizes file with .upg extension.  
 	INFO_PRINTF1(_L("MIME type recognition cache is flushed when a new recogizer is installed"));
 	recogResult.Reset();
 	TEST(aApparcServer.RecognizeData(KUpgDocPath, buffer, recogResult)==KErrNone);
 	TEST(recogResult.iDataType.Des8().CompareF(KMimeUpgType) == 0);
-	TEST(recogResult.iConfidence == CApaDataRecognizerType::EPossible);
-		
-	
-// Delete the plugin resource file of the recognizer with EPossible confidence which was installed during the test from z:.
+	TEST(recogResult.iConfidence == CApaDataRecognizerType::ECertain);		
 	
-	TInt fileExists = EFalse;
-	fs.IsFilePresent(KUpgRscTargetPath, fileExists);
-	if (fileExists)
-		{
-		fs.ChangeFilePermissionL(KUpgRscTargetPath); // clear readonly attribute inherited from z:
-		err = fs.DeleteFileL(KUpgRscTargetPath);
-		if(err == KErrNone) 
-			INFO_PRINTF1(_L("Removed file recupgrade.rsc"));
-		else 
-			INFO_PRINTF1(_L("Failed to remove recupgrade.rsc"));	
-		}
+	// Delete the plugin resource file of the recognizer with ECertain confidence which was installed during the test from z:.
+	err=CT_RecUpgradeStep::DeleteFileL(KUpgRscTargetPath,fs);
+	if(err == KErrNone) 
+		INFO_PRINTF1(_L("Removed file recupgrade.rsc"));
+	else 
+		INFO_PRINTF1(_L("Failed to remove recupgrade.rsc"));	
 
-	fileExists = EFalse;
-	fs.IsFilePresent(KUpgDllTargetPath, fileExists);
-	if (fileExists)
-		{
-		fs.ChangeFilePermissionL(KUpgDllTargetPath); // clear readonly attribute inherited from z:
-		err = fs.DeleteFileL(KUpgDllTargetPath);
-		if(err == KErrNone) 
-			INFO_PRINTF1(_L("Removed recupgrade.dll"));
-		else 
-			INFO_PRINTF1(_L("Failed to remove recupgrade.dll"));	
-		}
+	err=CT_RecUpgradeStep::DeleteFileL(KUpgDllTargetPath,fs);
+	if(err == KErrNone) 
+		INFO_PRINTF1(_L("Removed file recupgrade.dll"));
+	else 
+		INFO_PRINTF1(_L("Failed to remove recupgrade.dll"));
+
 
 	INFO_PRINTF2(_L("Waits %d seconds for the data recognizer list maintained by EMIME to be updated"), (10 * KOneSecondDelay)/1000000);	
  	User::After(10 * KOneSecondDelay);
@@ -219,5 +214,157 @@
 	TEST(recogResult.iConfidence == CApaDataRecognizerType::ENotRecognized);
 	
 	CleanupStack::PopAndDestroy(&fs);
+	}
+
+
+/**
+@SYMTestCaseID APPFWK-APPARC-0101
+
+@SYMDEF INC127312
+
+@SYMTestCaseDesc This test verify that apparc can dynamically upgrade a plugin if the new plugin replaces existing plugin (i.e new plugin is installed to same drive where the old plugin resides).
+
+@SYMTestPriority High
+
+@SYMTestStatus Implemented
+
+@SYMTestActions:
 	
+	1. Try to recognize .upg file with version 1 of recupgrade ECOM plugin but if shuld not be able to recognize as it is implemented like that
+	2. Install version 2 of recupgrade plugin (copy recupgrade_armv5_rel.dll and recupgrade.rsc from z:\system\data to c:\sys\bin and c:\resource\plugin respectively)
+	3. Because of installation Apparc will be notified and it will reload all recognizers plugin
+	4. Now try to recognize .upg file . it shuld be able to recognize as vertion 2 is implemented like that
+	5. Delete the version 2 plugin files and copy version 3 plugin files to c: drive (copy recupgrade2_armv5_rel.dll and recupgrade2.rsc from z:\system\data to c:\sys\bin and c:\resource\plugin respectively)
+	6. Now try to recognize .upr file . it shuld be able to recognize as vertion 3 is implemented like that
+
+@SYMTestExpectedResults Test should complete without any leave, panic or error.
+ */
+
+
+void CT_RecUpgradeStep::TestUpgradeRecognizer2L(RApaLsSession& aApparcServer)
+	{
+
+	TDataRecognitionResult recogResult;
+	TBuf8<255> buffer;
+	buffer.FillZ(255);
+	recogResult.Reset();
+		
+	// Since recognizer for "mime\upg" mime type is installed but it will return CApaDataRecognizerType::ENotRecognized as implemented : call to RecognizeData()
+	// returns CApaDataRecognizerType::ENotRecognized.
+	INFO_PRINTF1(_L("MIME type recognition cache is not used..."));
+	TEST(aApparcServer.RecognizeData(KUpgDocPath, buffer, recogResult)==KErrNone);
+	TEST(recogResult.iConfidence == CApaDataRecognizerType::ENotRecognized);
+
+	//Check the loaded plugin recognizes "mime/upr" data. Version 1 of the plugin should not recognize this data.
+	TEST(aApparcServer.RecognizeData(KUprDocPath, buffer, recogResult)==KErrNone);
+	TEST(recogResult.iConfidence == CApaDataRecognizerType::ENotRecognized);
+
+	INFO_PRINTF1(_L("Installs upgrade of  mime/upg recognizer plugin file "));
+	RSmlTestUtils fs;
+	CleanupClosePushL(fs);
+	User::LeaveIfError(fs.Connect());
+	
+	// Ensure c:\\resource\\plugins is created, otherwise leave from this teststep
+	TInt err = fs.CreateDirectoryL(KUpgRscTargetDir);
+	TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
+	INFO_PRINTF1(_L("c:\\resource\\plugins is created successfully or already exists"));
+	
+	// Ensure c:\\sys\\bin is created, otherwise leave from this teststep
+	err = fs.CreateDirectoryL(KUpgDllTargetDir);
+	TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
+	INFO_PRINTF1(_L("c:\\sys\\bin is created successfully or already exists"));
+
+	// Copy recupgrade.rsc from z:\\ to c:\\resource\\plugins, to trigger the rescan for plugins.
+	err = fs.CopyFileL(KUpgRscSourcePath, KUpgRscTargetPath);
+	TEST(err == KErrNone);
+	INFO_PRINTF1(_L("Successfully copied recupgrade.rsc from Z:\\system\\data to c\\resource\\plugins"));
+
+	// Copy recupgrade_*.dll from z:\\ to c:\\sys\\bin.
+	err = fs.CopyFileL(KUpgDllSourcePathArmv5, KUpgDllTargetPath);
+	
+	TEST(err == KErrNone);
+	INFO_PRINTF1(_L("Successfully copied recupgrade_*.dll from Z:\\system\\data to c:\\sys\\bin"));
+
+	INFO_PRINTF2(_L("Waits %d seconds for new mime/upg recognizer with ECertain confidence to be installed."), (5 * KOneSecondDelay)/1000000);	
+	User::After(5 * KOneSecondDelay);
+	
+	// Test whether newly installed (or copied) plugin to c: drive is loaded by framework and recognizes file with .upg extension.	INFO_PRINTF1(_L("MIME type recognition cache is flushed when a new recogizer is installed"));
+	recogResult.Reset();
+	TEST(aApparcServer.RecognizeData(KUpgDocPath, buffer, recogResult)==KErrNone);
+	TEST(recogResult.iDataType.Des8().CompareF(KMimeUpgType) == 0);
+	TEST(recogResult.iConfidence == CApaDataRecognizerType::ECertain);
+	
+	// Test whether newly installed (or copied) plugin does not recognize a file with .upr extension.
+	recogResult.Reset();
+	TEST(aApparcServer.RecognizeData(KUprDocPath, buffer, recogResult)==KErrNone);
+	TEST(recogResult.iConfidence == CApaDataRecognizerType::ENotRecognized);
+	
+	// Delete the plugin resource file of the recognizer with ECertain confidence which was installed during the test from z:.
+	err=CT_RecUpgradeStep::DeleteFileL(KUpgRscTargetPath,fs);
+	if(err == KErrNone) 
+		INFO_PRINTF1(_L("Removed file recupgrade.rsc"));
+	else 
+		INFO_PRINTF1(_L("Failed to remove recupgrade.rsc"));	
+
+	err=CT_RecUpgradeStep::DeleteFileL(KUpgDllTargetPath,fs);
+	if(err == KErrNone) 
+		INFO_PRINTF1(_L("Removed file recupgrade.dll"));
+	else 
+		INFO_PRINTF1(_L("Failed to remove recupgrade.dll"));
+
+	User::After(1 * KOneSecondDelay);	
+
+	// Copy recupgrade2.rsc from z:\\ to c:\\resource\\plugins, to trigger the rescan for plugins.
+	err = fs.CopyFileL(KUprRscSourcePath, KUpgRscTargetPath);
+	TEST(err == KErrNone);
+	INFO_PRINTF1(_L("Successfully copied recupgrade2.rsc from Z:\\system\\data to c:\\resource\\plugins"));
+
+	
+	// Copy recupgrade_*.dll from z:\\ to c:\\sys\\bin.
+	err = fs.CopyFileL(KUprDllSourcePathArmv5, KUpgDllTargetPath);
+	
+	TEST(err == KErrNone);
+	INFO_PRINTF1(_L("Successfully copied recupgrade2_*.dll from Z:\\system\\data to c:\\sys\\bin"));
+
+	
+	INFO_PRINTF2(_L("Waits %d seconds for new mime/upg recognizer with ECertain confidence to be installed."), (5 * KOneSecondDelay)/1000000);	
+	User::After(5 * KOneSecondDelay);
+	
+	// Test whether the plugin which replaces old plugin in c: drive is loaded by framework and recognizes file with .upr extension.
+	INFO_PRINTF1(_L("MIME type recognition cache is flushed when a new recogizer is installed"));
+	recogResult.Reset();
+	TEST(aApparcServer.RecognizeData(KUprDocPath, buffer, recogResult)==KErrNone);
+	TEST(recogResult.iDataType.Des8().CompareF(KMimeUprType) == 0);
+	TEST(recogResult.iConfidence == CApaDataRecognizerType::ECertain);
+
+	// Test whether the plugin which replaces old plugin in c: drive does not recognize a file with .upg extension.
+	recogResult.Reset();
+	TEST(aApparcServer.RecognizeData(KUpgDocPath, buffer, recogResult)==KErrNone);
+	TEST(recogResult.iConfidence == CApaDataRecognizerType::ENotRecognized);
+
+	
+	// Delete the plugin resource file of the recognizer with ECertain confidence which was installed during the test from z:.
+	err=CT_RecUpgradeStep::DeleteFileL(KUpgRscTargetPath,fs);
+	if(err == KErrNone) 
+		INFO_PRINTF1(_L("Removed file recupgrade.rsc"));
+	else 
+		INFO_PRINTF1(_L("Failed to remove recupgrade.rsc"));	
+
+	err=CT_RecUpgradeStep::DeleteFileL(KUpgDllTargetPath,fs);
+	if(err == KErrNone) 
+		INFO_PRINTF1(_L("Removed file recupgrade.dll"));
+	else 
+		INFO_PRINTF1(_L("Failed to remove recupgrade.dll"));
+
+	INFO_PRINTF2(_L("Waits %d seconds for the data recognizer list maintained by EMIME to be updated"), (10 * KOneSecondDelay)/1000000);	
+ 	User::After(10 * KOneSecondDelay);
+	
+	// Since "mime/upr" recognizer version 3 is uninstalled, mime/upr mime type is not recognized. 
+	INFO_PRINTF1(_L("MIME type recognition cache is flushed when a existing recogizer is uninstalled"));
+	recogResult.Reset();
+	TEST(aApparcServer.RecognizeData(KUprDocPath, buffer, recogResult)==KErrNone);
+	TEST(recogResult.iConfidence == CApaDataRecognizerType::ENotRecognized);
+
+	CleanupStack::PopAndDestroy(&fs);
 	}
+
--- a/localisation/apparchitecture/tef/T_RecUpgrade.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_RecUpgrade.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -23,7 +23,8 @@
 #ifndef		__T_RECUPGRADE_H
 #define		__T_RECUPGRADE_H
 
-#include 	<testexecutestepbase.h>
+#include <test/testexecutestepbase.h>
+#include "appfwk_test_utils.h"
 
 _LIT(KT_RecUpgradeStep, "T_RecUpgrade");
 
@@ -40,8 +41,10 @@
 
 private:
 	void TestUpgradeRecognizerL(RApaLsSession& aApparcServer);
+	void TestUpgradeRecognizer2L(RApaLsSession& aApparcServer);
 	TBool DoRecognizeL(RApaLsSession& aApparcServer, const TDataType& aDataType);
 	void CopyRecognizerFileL();
+	static TInt DeleteFileL(const TDesC &aFileName, RSmlTestUtils &fs);
 	};
 
 #endif
--- a/localisation/apparchitecture/tef/T_RuleBasedLaunchingStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_RuleBasedLaunchingStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,17 +15,18 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
 */
 
 #include <apacmdln.h>
-#include "..\tef\tRuleBasedApps\RuleBasedUID.H" //The UID'S for the 4 applications used during testing
+#include "../tef/tRuleBasedApps/RuleBasedUID.H" //The UID'S for the 4 applications used during testing
 #include "T_RuleBasedLaunchingStep.h"
-#include <APGICNFL.H>
+#include <apgicnfl.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "testableapalssession.h"
 
 const TUint KNonNativeApplicationType = 0x10207f90;
--- a/localisation/apparchitecture/tef/T_RuleBasedLaunchingStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_RuleBasedLaunchingStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -25,8 +23,8 @@
 #define __T_RULEBASEDLAUNCHING_STEP_H__
 
 #include <apgcli.h>
-#include "ApparcTestServer.h"
-#include "appfwk_test_AppUi.h"
+#include "apparctestserver.h"
+#include "appfwk_test_appui.h"
 #include <apgtask.h>
 
 class CTRuleBasedLaunchingStep : public CTestStep
--- a/localisation/apparchitecture/tef/T_Serv2Step.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Serv2Step.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,12 +15,11 @@
 // Tests Application information, Data recognition and application
 // launching capabilities of the application architecture server.\n
 // 
+// t_serv2step.cpp
 //
 
-
-
 /**
- @file
+ @file t_serv2step.cpp
  @test 
  @internalComponent - Internal Symbian test code
 */
@@ -28,11 +27,14 @@
 #include <f32file.h>
 #include <fbs.h>
 #include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apgaplst.h>
 #include <apaflrec.h>
 #include "testableapalssession.h"
 #include <apacmdln.h>
-#include <apsserv.h>
 #include <apfrec.h>
 #include <datastor.h>
 #include <apgicnfl.h>
@@ -363,9 +365,23 @@
 	_LIT(KLitWibble,"wibble");
 	cmdLn->SetExecutableNameL(filename);
 	cmdLn->SetTailEndL(KLitDogfish);
-	TInt ret = aLs.StartApp(*cmdLn); // explicit
+	
+	TThreadId Id;
+	TInt ret = aLs.StartApp(*cmdLn,Id); // explicit
 	TEST(ret==KErrNone);
 
+	//Wait till the thread exits
+	if (ret==KErrNone)	
+		{
+		RThread thread;
+		TRequestStatus status;
+		
+		User::LeaveIfError(thread.Open(Id));
+		thread.Rendezvous(status);
+		User::WaitForRequest(status);
+		thread.Close();
+		}
+
 	// start a non-existant app
 	cmdLn->SetExecutableNameL(KLitWibble);
 	ret = aLs.StartApp(*cmdLn);
@@ -376,51 +392,9 @@
 
 }
 
-/**
- * @SYMTestCaseID T_Serv2Step_StartAppTests4L
- *
- * @SYMPREQ
- *
- * @SYMTestCaseDesc Test Launching of an application. 
- * 
- * @SYMTestActions Call RApaLsSession::StartDocument() to start an
- * application defined by the command line information.\n
- * Test the launching of application for following scenarios:\n
- * (1) When Application specified by command line is EmbeddableOnly.\n
- * (2) When Application specified by command line is EmbeddableUiNotStandAlone.\n
- * (3) When Application specified by command line is Embeddable or StandAlone.\n
- * API Calls:\n	
- * RApaLsSession::StartDocument(const TDesC &aFileName, TUid aAppUid, TThreadId &aId, TLaunchType aLaunchType=ELaunchNewApp)\n
- * 
- * @SYMTestExpectedResults The test observes that StartDocument() returns KErrNone and
- * starts the app in the third scenario. In the first and second case KErrNotSupported is
- * returned.
- *  
- */	
- 
-void CT_Serv2Step::StartAppTests4L(RApaLsSession& aLs)
-	{
-	TInt ret;
-	TThreadId id;
-
-	_LIT(KLitSdkDocPath,"\\system\\data\\sdk.txt");
-	TFileName filename = SearchAndReturnCompleteFileName(KLitSdkDocPath);
-	
-	// Test starting a file using an app which can be embeddable only.
-	ret=aLs.StartDocument(filename,KUidAppEmbeddableUiNotStandAlone,id);
-	TEST(ret==KErrNotSupported);
-	
-	// Test starting a file using an app which can be embeddable only.
-	ret=aLs.StartDocument(filename,KUidAppEmbeddableOnly,id);
-	TEST(ret==KErrNotSupported);
-
-	// Test starting a file using an app which can be embeddable or standalone.
-	ret=aLs.StartDocument(filename,KUidAppEmbeddable,id);
-	TEST(ret==KErrNone);
-	}
 
 /**
-* Auxiliary Fn for Test Case ID T_Serv2Step_StartAppTests1L, T_Serv2Step_StartAppTests3L,StartAppTests4L(aLs)
+* Auxiliary Fn for Test Case ID T_Serv2Step_StartAppTests1L, T_Serv2Step_StartAppTests3L
 *
 * This method tests launching of an application from command line by calling
 * CT_Serv2Step::StartAppTests1L().
@@ -432,7 +406,6 @@
 
 	// start the test exe
 	StartAppTests1L(aLs);
-    StartAppTests4L(aLs);
 	}
 
 /**
@@ -1826,3 +1799,4 @@
 	return TestStepResult();
 
 }
+
--- a/localisation/apparchitecture/tef/T_Serv2Step.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Serv2Step.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -23,7 +21,7 @@
 #if (!defined __T_SERV2_STEP_H__)
 #define __T_SERV2_STEP_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 //!  A CT_Serv2Step test class. 
 
@@ -42,7 +40,6 @@
 	void DoEnquiryTestsL(RApaLsSession& aLs);
 	void DoStartAppTestsL(RApaLsSession& aLs);
 	void StartAppTests1L(RApaLsSession& aLs);
-    void StartAppTests4L(RApaLsSession& aLs);
 	void DoAppInfoTests(RApaLsSession& aLs);
 	void AppInfoTest1(RApaLsSession& aLs);
 	void AppInfoTest3(RApaLsSession& aLs);
@@ -77,3 +74,4 @@
 
 _LIT(KT_Serv2Step,"T_Serv2");
 #endif
+
--- a/localisation/apparchitecture/tef/T_Serv3Step.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Serv3Step.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,23 +15,25 @@
 // Tests Application information, Data recognition and application
 // launching capabilities of the application architecture server.\n
 // 
+// t_serv3step.cpp
 //
 
-
-
 /**
- @file
+ @file t_serv3step.cpp
  @internalComponent - Internal Symbian test code
 */
  
 #include <f32file.h>
 #include <fbs.h>
 #include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apgaplst.h>
 #include <apaflrec.h>
 #include "testableapalssession.h"
 #include <apacmdln.h>
-#include <apsserv.h>
 #include <apfrec.h>
 #include <datastor.h>
 #include <apgicnfl.h>
@@ -81,10 +83,6 @@
 	{
 	// Call base class method to set up the human readable name for logging
 	SetTestStepName(KT_Serv3Step);
-
-	//Set up active scheduler
-	iActiveScheduler= new(ELeave) CActiveScheduler;
-	CActiveScheduler::Install(iActiveScheduler);
 	}
 
 /**
@@ -1801,7 +1799,6 @@
 	//DONT_CHECK Skips the heap check at server side. This heap imbalance occurs randomly in server side
 	// while canceling the outstanding async request.
 	HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, DoAsyncFolderRecognizerTest14L(ls), ls.FlushRecognitionCache() );
-			
 	CleanupStack::PopAndDestroy(&ls);
 
 	// close the server session and we have done some type store reloading
@@ -1896,6 +1893,10 @@
  * @return - TVerdict code
  */
 {
+	//Set up active scheduler
+	iActiveScheduler= new(ELeave) CActiveScheduler;
+	CActiveScheduler::Install(iActiveScheduler);
+	
 	FbsStartup();
 	TInt ret = RFbsSession::Connect();
 	TEST(ret==KErrNone);
@@ -1947,3 +1948,4 @@
 	//Stop AS
 	CActiveScheduler::Stop();
 	}
+
--- a/localisation/apparchitecture/tef/T_Serv3Step.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_Serv3Step.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -23,7 +21,7 @@
 #if (!defined __T_SERV3_STEP_H__)
 #define __T_SERV3_STEP_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 #include "appfwk_test_utils.h"
 
 //!  A CT_Serv3Step test class.
@@ -58,7 +56,8 @@
 	void DoAsyncFolderRecognizerTest14L(RApaLsSession& aLs);
 	TInt DoServComTestL();
 	void testBooleanTruer(TBool aCondition, const TText8* aFile, TInt aLine);
-	
+
+
 private:
 	void CreateDirL(RSmlTestUtils* aPtrUtils, TPtr aDirName);
 	void DeleteDirL(RSmlTestUtils* aPtrUtils, TPtr aDirName);
@@ -67,7 +66,7 @@
 	CActiveScheduler* iActiveScheduler;
 	};
 
-//////////////////////////////////////////////////////////////////////////////
+//
 //	CActiveTest2::ActiveTest class definition
 //
 class CActiveTest2 : public CActive
@@ -85,3 +84,4 @@
 _LIT(KT_Serv3Step,"T_Serv3");
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_ServiceRegistryStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ServiceRegistryStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -22,9 +20,21 @@
 */
 
 #include "T_ServiceRegistryStep.h"
-#include <ServiceRegistry.h>
+#include <serviceregistry.h>
 #include "testableapalssession.h"
-#include "appfwk_test_utils.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#endif
+
+
+
+_LIT(KImportAppsDir,"c:\\private\\10003a3f\\import\\apps\\");
+_LIT(KAppRscSourcePath,"z:\\system\\data\\TestUpdRegAppUninstallation_reg.rsc");
+_LIT(KUpgradeAppRscSourcePath,"z:\\system\\data\\TestUpgradeUpdRegAppUninstallation_reg.rsc");
+_LIT(KAppRscTargetPath,"c:\\private\\10003a3f\\import\\apps\\TestUpdRegAppUninstallation_reg.rsc");
+
+_LIT8(KLitMimeType,"mime/updregappuninstall");
+_LIT8(KLitUpgradeAppMimeType,"mime/upgradeupdregappuninstall");
 
 /**
  * Constructor
@@ -65,10 +75,10 @@
 	{
 	INFO_PRINTF1(_L("Testing Apparc...T_ServiceRegistry Test Cases Running..."));
 
-    // start an active scheduler
-    iScheduler=new(ELeave) CActiveScheduler();
-    CActiveScheduler::Install(iScheduler);
-    
+	// start an active scheduler
+	iScheduler=new(ELeave) CActiveScheduler();
+	CActiveScheduler::Install(iScheduler);
+
 	__UHEAP_MARK;
 	TInt ret;
 	TRAP(ret,RunTestCasesL())
@@ -94,6 +104,7 @@
 	HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestAssociation1L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestAppForDataTypeAndServiceL(ls), NO_CLEANUP);
     HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestUpdateOfServiceRegistryOnAppUninstallationL(ls), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestServiceRegistryOnAppUpgradeL(ls), NO_CLEANUP);    
     
 	CleanupStack::PopAndDestroy(&ls);	
 	return KErrNone;
@@ -242,6 +253,7 @@
 	CleanupStack::PopAndDestroy(registry);
 	}
 
+
 /**
    @SYMTestCaseID APPFWK-APPARC-0104
   
@@ -267,71 +279,45 @@
     CleanupClosePushL(fs);
     User::LeaveIfError(fs.Connect());
 
-     _LIT(KImportAppsDir,"c:\\private\\10003a3f\\import\\apps\\");
-     
      TInt err = fs.CreateDirectoryL(KImportAppsDir);
      TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
      INFO_PRINTF1(_L("c:\\private\\10003a3f\\import\\apps is created successfully or already exists"));
+     
+     //Make sure that the target file does not exist.
+     DeleteFileL(fs, KAppRscTargetPath);
 
-     
      // Copy TestUpdRegAppUninstallation_reg.rsc from z:\ to c:\private\10003a3f\import\apps\.
-     _LIT(KAppRscSourcePath,"z:\\system\\data\\TestUpdRegAppUninstallation_reg.rsc");
-     _LIT(KAppRscTargetPath,"c:\\private\\10003a3f\\import\\apps\\TestUpdRegAppUninstallation_reg.rsc");
-     
      err = fs.CopyFileL(KAppRscSourcePath, KAppRscTargetPath);
      TEST(err == KErrNone);
-     INFO_PRINTF1(_L("Successfully copied TestUpdRegAppUninstallati on_reg.rsc from Z:\\system\\data to c:\\private\\10003a3f\\import\\apps"));
+     INFO_PRINTF1(_L("Successfully copied TestUpdRegAppUninstallation_reg.rsc from Z:\\system\\data to c:\\private\\10003a3f\\import\\apps"));
+
+     //Wait till the applist is updated.
+     WaitForAppListUpdateL();
 
      CServiceRegistry* registry = CServiceRegistry::NewL();
      CleanupStack::PushL(registry);
      
-     //Wait till the application scanning is completed.
-     CTestApplistChangeObserver* obs = new(ELeave) CTestApplistChangeObserver();
-     CleanupStack::PushL(obs);
-     CApaAppListNotifier* notif = CApaAppListNotifier::NewL(obs, CActive::EPriorityHigh);
-     CleanupStack::PushL(notif);
-     obs->iNotifier = notif;
-     CActiveScheduler::Start();
-     INFO_PRINTF1(_L("Applicaiton scanning is completed."));
-     CleanupStack::PopAndDestroy(notif);
- 
-     TUid uid1 = {0x10207f80};
+     TUid appUid = {0x10207f80};
      TUid resultUid={KNullUidValue};    
-     _LIT8(KLitMimeType,"mime/updregappuninstall");
      TDataType dataType (KLitMimeType);
      
      //Test whether 0x10207f80 application is in application list.
      TApaAppInfo appInfo;
-     TEST(aLs.GetAppInfo(appInfo,uid1)==KErrNone);
+     TEST(aLs.GetAppInfo(appInfo,appUid)==KErrNone);
 
      //Set 0x10207f80 as default application for "mime/updregappuninstall" MIME type.
-     registry->SetDefault(KOpenServiceUid,dataType, uid1);
+     registry->SetDefault(KOpenServiceUid,dataType, appUid);
      registry->GetDefault(KOpenServiceUid,dataType, resultUid);
-     TEST(uid1==resultUid);
+     TEST(appUid==resultUid);
  
-     TInt fileExists = EFalse;
-     fs.IsFilePresent(KAppRscTargetPath, fileExists);
-     if (fileExists)
-         {
-         fs.ChangeFilePermissionL(KAppRscTargetPath); // clear readonly attribute inherited from z:
-         err = fs.DeleteFileL(KAppRscTargetPath);
-         if(err == KErrNone) 
-             INFO_PRINTF1(_L("Removed file TestUpdRegAppUninstallation_reg.rsc"));
-         else 
-             INFO_PRINTF1(_L("Failed to remove TestUpdRegAppUninstallation_reg.rsc"));    
-         }
-
-     //Wait till the application scanning is completed
-     notif = CApaAppListNotifier::NewL(obs, CActive::EPriorityHigh);
-      CleanupStack::PushL(notif);
-      obs->iNotifier = notif;
-      CActiveScheduler::Start();
-      INFO_PRINTF1(_L("Applicaiton scanning is completed."));
-      CleanupStack::PopAndDestroy(notif);
-      CleanupStack::PopAndDestroy(obs);    
+     //Delete file c:\\private\\10003a3f\\import\\apps\\TestUpdRegAppUninstallation_reg.rsc 
+     DeleteFileL(fs, KAppRscTargetPath);
      
-     //Check the application is removed form the application list
-     TEST(aLs.GetAppInfo(appInfo,uid1)==KErrNotFound);
+     //Wait till the application list is updated.
+     WaitForAppListUpdateL();  
+     
+     //Check the application is removed from the application list
+     TEST(aLs.GetAppInfo(appInfo,appUid)==KErrNotFound);
      
      //Check data mappings related to uninstalled applicaiton is also removed.
      TEST(registry->GetDefault(KOpenServiceUid,dataType, resultUid)==KErrNotFound);
@@ -344,3 +330,136 @@
     {
     CActiveScheduler::Stop();    
     }
+
+/**
+   @SYMTestCaseID APPFWK-APPARC-0105
+  
+   @SYMDEF INC138417 
+  
+   @SYMTestCaseDesc Tests whether a data mapping of an applicaiton is not changed in 
+                    service registry if that applicaiton is upgraded.
+   
+   @SYMTestPriority 
+  
+   @SYMTestStatus Implemented
+   
+   @SYMTestActions Inserts data mapping for an applicaion and upgrades that application with newer version.
+                   Tests the existence of inserted data mapping in the service registry. 
+   
+   @SYMTestExpectedResults Inserted data mapping is not removed from the service registry.
+ */
+
+void CT_ServiceRegistryTestStep::TestServiceRegistryOnAppUpgradeL(RApaLsSession& aLs)   
+    {
+    INFO_PRINTF1(_L("TestServiceRegistryOnAppUpgrade"));
+ 
+    RSmlTestUtils fs;
+    CleanupClosePushL(fs);
+    User::LeaveIfError(fs.Connect());
+
+     TInt err = fs.CreateDirectoryL(KImportAppsDir);
+     TESTEL((err == KErrNone || err == KErrAlreadyExists), err);
+     INFO_PRINTF1(_L("c:\\private\\10003a3f\\import\\apps is created successfully or already exists"));
+     
+     //Make sure that the target file does not exist.
+     DeleteFileL(fs, KAppRscTargetPath);
+
+     // Copy TestUpdRegAppUninstallation_reg.rsc from z:\ to c:\private\10003a3f\import\apps\.
+     err = fs.CopyFileL(KAppRscSourcePath, KAppRscTargetPath);
+     TEST(err == KErrNone);
+     INFO_PRINTF1(_L("Successfully copied TestUpdRegAppUninstallation_reg.rsc from Z:\\system\\data to c:\\private\\10003a3f\\import\\apps"));
+
+     //Wait till the applist is updated.
+     WaitForAppListUpdateL();
+
+     CServiceRegistry* registry = CServiceRegistry::NewL();
+     CleanupStack::PushL(registry);
+     
+     TUid appUid = {0x10207f80};
+     TUid resultUid={KNullUidValue};    
+     TDataType dataType (KLitMimeType);
+     
+     //Test whether 0x10207f80 application is in application list.
+     TApaAppInfo appInfo;
+     TEST(aLs.GetAppInfo(appInfo,appUid)==KErrNone);
+
+     //Set 0x10207f80 as default application for "mime/updregappuninstall" MIME type.
+     registry->SetDefault(KOpenServiceUid,dataType, appUid);
+     registry->GetDefault(KOpenServiceUid,dataType, resultUid);
+     TEST(appUid==resultUid);
+     
+     TDataType upgDataType(KLitUpgradeAppMimeType);
+     err=aLs.AppForDataType(upgDataType,resultUid);
+     TEST(resultUid.iUid==KNullUidValue);
+ 
+     DeleteFileL(fs, KAppRscTargetPath);
+     
+     err = fs.CopyFileL(KUpgradeAppRscSourcePath, KAppRscTargetPath);
+     TEST(err == KErrNone);
+     INFO_PRINTF1(_L("Successfully copied TestUpgradeUpdRegAppUninstallation_reg.rsc from Z:\\system\\data to c:\\private\\10003a3f\\import\\apps"));
+
+     //Change the modified time of the file to current time
+     RFs aFs;
+     TEST(aFs.Connect()==KErrNone);
+     TTime modifiedTime(0);
+     modifiedTime.HomeTime();
+     TEST(aFs.SetModified(KAppRscTargetPath, modifiedTime)==KErrNone);
+     aFs.Close();
+     
+     //Wait till the applist is updated.
+     WaitForAppListUpdateL();
+    
+     //Check the application is not removed from the application list
+     TEST(aLs.GetAppInfo(appInfo,appUid)==KErrNone);
+     
+     //Check data mappings related to upgraded applicaiton is not removed.
+     TEST(registry->GetDefault(KOpenServiceUid,dataType, resultUid)==KErrNone);
+     TEST(resultUid==appUid);
+     
+     err=aLs.AppForDataType(upgDataType,resultUid);
+     TEST((err==KErrNone) && (resultUid==appUid));
+     
+     DeleteFileL(fs,KAppRscTargetPath);
+
+     CleanupStack::PopAndDestroy(registry);
+     CleanupStack::PopAndDestroy(&fs);  
+    }
+
+
+//Deletes the file if it exists.
+TInt CT_ServiceRegistryTestStep::DeleteFileL(RSmlTestUtils &aFs, const TDesC &aFileName)
+    {
+    TInt fileExists = EFalse;
+    TInt err;
+    aFs.IsFilePresent(aFileName, fileExists);
+    if (fileExists)
+        {
+        aFs.ChangeFilePermissionL(aFileName);
+        err=aFs.DeleteFileL(aFileName);
+        if(err==KErrNone)
+            INFO_PRINTF2(_L("Removed file %S"), &aFileName);
+        else
+            INFO_PRINTF2(_L("Failed to remove file %S"), &aFileName);
+        }
+    else
+        {
+        err=KErrNotFound;
+        }
+
+    return(err);
+}
+
+//Wait till the application list is updated.
+void CT_ServiceRegistryTestStep::WaitForAppListUpdateL()
+    {
+     CTestApplistChangeObserver* obs = new(ELeave) CTestApplistChangeObserver();
+     CleanupStack::PushL(obs);
+     CApaAppListNotifier* notif = CApaAppListNotifier::NewL(obs, CActive::EPriorityHigh);
+     CleanupStack::PushL(notif);
+     obs->iNotifier = notif;
+     CActiveScheduler::Start();
+     
+     CleanupStack::PopAndDestroy(notif);  
+     CleanupStack::PopAndDestroy(obs);     
+     INFO_PRINTF1(_L("Applicaiton list is updated."));     
+    }
--- a/localisation/apparchitecture/tef/T_ServiceRegistryStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ServiceRegistryStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,8 +22,9 @@
 #if (!defined __T_SERVICEREGISTRY_STEP_H__)
 #define __T_SERVICEREGISTRY_STEP_H__
 
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include <apgnotif.h>
+#include "appfwk_test_utils.h"
 
 class RApaLsSession;
 
@@ -45,6 +44,9 @@
 	void TestAssociation1L();
 	void TestAppForDataTypeAndServiceL(RApaLsSession& aLs);
     void TestUpdateOfServiceRegistryOnAppUninstallationL(RApaLsSession& aLs);   
+    void TestServiceRegistryOnAppUpgradeL(RApaLsSession& aLs);
+    TInt DeleteFileL(RSmlTestUtils &aFs, const TDesC &aFileName);
+    void WaitForAppListUpdateL();
     CActiveScheduler* iScheduler;    
     };
     
@@ -54,6 +56,6 @@
     void HandleAppListEvent(TInt aEvent);
 public:
     CApaAppListNotifier* iNotifier;
-    };
-	
+    };	
 #endif
+
--- a/localisation/apparchitecture/tef/T_ServicesStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ServicesStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -23,6 +21,9 @@
 
 #include <barsread.h>
 #include "T_ServicesStep.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
 _LIT(KCompleted, "Completed.");
 _LIT8(KLitPlainText,"text/plain");
@@ -1358,3 +1359,4 @@
 	// Waits till the data type mappings are restored from the data store ini file
 	iApaLsSession.WaitForTypeStoreUpdate();
 	}
+
--- a/localisation/apparchitecture/tef/T_ServicesStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_ServicesStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file 
  @internalComponent - Internal Symbian test code 
@@ -74,3 +72,7 @@
 	};
 
 #endif
+
+
+
+
--- a/localisation/apparchitecture/tef/T_StartAppStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_StartAppStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -141,6 +139,7 @@
 
 void CT_StartAppTestStep::RunTestCasesL()
 	{
+	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestStartApp8L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestStartApp1L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestStartApp2L(), iApaLsSession.FlushRecognitionCache() );
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestStartApp3L(), iApaLsSession.FlushRecognitionCache() );
@@ -148,7 +147,6 @@
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestStartApp5L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestStartApp6L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestStartApp7L(), NO_CLEANUP);
-	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestStartApp8L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, TestStartApp9L(), NO_CLEANUP);
 	// The following two APIs InsertDataMappingL() & DeleteDataMappingL(), update the type store on the server side.
 	// This update takes place on the server side while the test case is still running, which causes the heap check to fail.
@@ -197,9 +195,27 @@
 	_LIT(KLitWibble,"wibble");
 	cmdLn->SetExecutableNameL(filename);
 	cmdLn->SetTailEndL(KLitDogfish);
-	TInt ret = iApaLsSession.StartApp(*cmdLn); // explicit
+	TThreadId startAppThreadID;
+	TInt ret = iApaLsSession.StartApp(*cmdLn,startAppThreadID); // explicit
 	TEST(ret==KErrNone);
 
+	//we need to close the started thread, if appropiate
+	if (ret==KErrNone)	
+		{
+		RThread thread;
+		User::LeaveIfError(thread.Open(startAppThreadID));
+		CleanupClosePushL(thread);
+
+		RProcess process;
+		User::LeaveIfError(thread.Process(process));
+		CleanupClosePushL(process);
+
+		process.Kill(0);
+		
+		CleanupStack::PopAndDestroy(&process);
+		CleanupStack::PopAndDestroy(&thread);
+		}
+	
 	// start a non-existant app
 	cmdLn->SetExecutableNameL(KLitWibble);
 
@@ -591,14 +607,26 @@
 	info.Set(RProcess());
 	
 	info.iCaps.HasCapability(ECapabilityWriteDeviceData) ? TEST(err==KErrNone) :  TEST(err==KErrPermissionDenied);
+
+ 	TRequestStatus status;
 	
+ 	//Register for notification when data type mappings are restored from the data store ini file
+ 	iApaLsSession.NotifyOnDataMappingChange(status);
+  	
 	err=iApaLsSession.InsertDataMappingIfHigher(TDataType(KLitPlainText), KPriHigh, KUidTestApp, added);
 	INFO_PRINTF2(_L("returned, %d"), err);
 	info.iCaps.HasCapability(ECapabilityWriteDeviceData) ? TEST(err==KErrNone && added)  :  TEST(err==KErrPermissionDenied);
+	
 	if (err==KErrNone)
 		{
 		// Waits till the data type mappings are restored from the data store ini file
-		iApaLsSession.WaitForTypeStoreUpdate();
+		User::WaitForRequest(status);	
+		TEST(status.Int()==KErrNone);		
+		}
+	else
+		{		
+		iApaLsSession.CancelNotifyOnDataMappingChange();
+		TEST(status.Int()==KErrCancel);
 		}
 	INFO_PRINTF1(_L("Test RApaLsSession::InsertDataMapping....Check data type mapping addition....Done"));
 	}
@@ -654,17 +682,29 @@
 	{
 	INFO_PRINTF1(_L("Test RApaLsSession::DeleteDataMapping....Check data type mapping deletion"));
 
+	TRequestStatus status;
+	
+ 	//Register for notification when data type mappings are restored from the data store ini file
+ 	iApaLsSession.NotifyOnDataMappingChange(status);
+ 	
 	TInt err=iApaLsSession.DeleteDataMapping(TDataType(KLitPlainText));
 	INFO_PRINTF2(_L("returned, %d"), err);
 	TSecurityInfo info;
 	info.Set(RProcess());
 	
 	info.iCaps.HasCapability(ECapabilityWriteDeviceData) ? TEST(err==KErrNone) :  TEST(err==KErrPermissionDenied);
-	if(err==KErrNone)
-	{
-	// Waits till the data type mappings are restored from the data store ini file
-	iApaLsSession.WaitForTypeStoreUpdate();	
-	}
+
+	if (err==KErrNone)
+		{
+		// Waits till the data type mappings are restored from the data store ini file
+		User::WaitForRequest(status);	
+		TEST(status.Int()==KErrNone);		
+		}
+	else
+		{		
+		iApaLsSession.CancelNotifyOnDataMappingChange();
+		TEST(status.Int()==KErrCancel);
+		}
 	INFO_PRINTF1(_L("Test RApaLsSession::DeleteDataMapping....Check data type mapping deletion....Done"));
 	}
 	
@@ -696,3 +736,4 @@
 	CleanupStack::PopAndDestroy(&testIpc);
 	INFO_PRINTF1(_L("Test IpcFuzz DEF116002 Completed"));
 	}
+
--- a/localisation/apparchitecture/tef/T_StartAppStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_StartAppStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -25,7 +23,7 @@
 #define __T_DATATYPEMAPPINGS_STEP_H__
 
 #include "testableapalssession.h"
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 
 _LIT(KT_StartAppStep,"T_StartApp");
 
--- a/localisation/apparchitecture/tef/T_StartDocStep.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_StartDocStep.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -141,3 +139,5 @@
 
 	return TestStepResult();
 }
+
+
--- a/localisation/apparchitecture/tef/T_StartDocStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_StartDocStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,7 +22,7 @@
 #if (!defined __T_STARTDOCSTEP_H__)
 #define __T_STARTDOCSTEP_H__
 
-#include <TestExecuteStepBase.h>
+#include <test/testexecutestepbase.h>
 
 class CT_StartDocStep : public CTestStep
 	{
@@ -36,3 +34,5 @@
 
 _LIT(KT_StartDocStep, "T_StartDoc");
 #endif
+
+
--- a/localisation/apparchitecture/tef/T_SysStartApparcStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_SysStartApparcStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -23,7 +21,7 @@
 #include <s32file.h>
 
 #include "T_SysStartApparcStep.h"
-#include "tssaac\tssaac.h"
+#include "tssaac/tssaac.h"
 
 _LIT(KApparcPanicFile,"c:\\T_SSAAC_PanicResultFile.txt");
 
--- a/localisation/apparchitecture/tef/T_SysStartApparcStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_SysStartApparcStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -23,8 +21,8 @@
 #if (!defined __T_SYSSTARTAPPARCSTEP_H__)
 #define __T_SYSSTARTAPPARCSTEP_H__
 
-#include "ApparcTestServer.h"
-#include "tssaac\SysStartApparcTestCases.h"  // KApparcResultFile
+#include "apparctestserver.h"
+#include "tssaac/SysStartApparcTestCases.h"  // KApparcResultFile
 
 #define KTestResultPass 1
 
@@ -67,3 +65,4 @@
 	};
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_WgnamStep.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_WgnamStep.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -203,6 +201,16 @@
 	TEST(apaWindowGroupName->AppUid()==uid);
 	INFO_PRINTF1(_L("\n"));
 	// User::After(2000000);
+	
+	// RDebug::Print(_L("Block 5a"));
+	INFO_PRINTF1(_L("Test setting appUid starting with 0"));
+	const TUid uid1={ 0x00000111 };
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	INFO_PRINTF2(_L("Setting app uid to %x\n"), uid1.iUid);
+	apaWindowGroupName->SetAppUid(uid1);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->AppUid()==uid1);
+	INFO_PRINTF1(_L("\n"));
 
 	// test setting caption
 	// RDebug::Print(_L("Block 6"));
@@ -328,3 +336,5 @@
 
 	return TestStepResult();
 }
+
+
--- a/localisation/apparchitecture/tef/T_WgnamStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_WgnamStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -23,7 +21,7 @@
 #if (!defined __T_WGNAM_STEP_H__)
 #define __T_WGNAM_STEP_H__
 #include <w32std.h>
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 //!  A CT_WgnamStep test class. 
 /*!
@@ -47,3 +45,4 @@
 _LIT(KT_WgnamStep,"T_Wgnam");
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_WindowChainingStep.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_WindowChainingStep.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -130,3 +128,5 @@
 	__UHEAP_MARKEND;
 	return TestStepResult();
 }
+
+
--- a/localisation/apparchitecture/tef/T_WindowChainingStep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_WindowChainingStep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,7 +22,7 @@
 #if (!defined __T_WINDOWCHAININGSTEP_H__)
 #define __T_WINDOWCHAININGSTEP_H__
 
-#include <TestExecuteStepBase.h>
+#include <test/testexecutestepbase.h>
 
 class CT_WindowChainingStep : public CTestStep
 	{
@@ -37,3 +35,5 @@
 
 _LIT(KT_WindowChainingStep, "T_WindowChaining");
 #endif
+
+
--- a/localisation/apparchitecture/tef/T_groupNametest.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupNametest.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -25,10 +23,13 @@
 
 
 #include "testableapalssession.h"
-#include <APAID.H>
+#include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "T_groupNametest.h"
-#include "ApparcTestServer.h"
-#include "TestExecuteStepBase.h"
+#include "apparctestserver.h"
+#include <test/testexecutestepbase.h>
 
 // CT_GroupNameStep
 
@@ -122,3 +123,7 @@
 	return TestStepResult();
 
 	}
+
+
+
+
--- a/localisation/apparchitecture/tef/T_groupNametest.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupNametest.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,7 +22,7 @@
 #if (!defined __T_groupNametest_H__)
 #define __T_groupNametest_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 //  A CT_GroupNameStep test class. 
 
@@ -43,3 +41,4 @@
 _LIT(KT_GroupNameStep, "T_GroupName");
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_groupNametest_ver1.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupNametest_ver1.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -25,10 +23,13 @@
 
 
 #include "testableapalssession.h"
-#include <APAID.H>
+#include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "T_groupNametest_ver1.h"
-#include "ApparcTestServer.h"
-#include "TestExecuteStepBase.h"
+#include "apparctestserver.h"
+#include <test/testexecutestepbase.h>
 
 // CT_GroupNameStep_ver1
 
@@ -113,3 +114,7 @@
 	return TestStepResult();
 
 	}
+
+
+
+
--- a/localisation/apparchitecture/tef/T_groupNametest_ver1.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupNametest_ver1.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,7 +22,7 @@
 #if (!defined __T_groupNametest_ver1_H__)
 #define __T_groupNametest_ver1_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 //  A CT_GroupNameStep_ver1 test class. 
 
@@ -43,3 +41,4 @@
 
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_groupNametest_ver2.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupNametest_ver2.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,18 +17,19 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
 */
 
 #include "testableapalssession.h"
-#include "APAID.H"
+#include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include "T_groupNametest_ver2.h"
-#include "ApparcTestServer.h"
-#include "TestExecuteStepBase.h"
+#include "apparctestserver.h"
+#include <test/testexecutestepbase.h>
 
 // CT_GroupNameStep_ver2
 
@@ -107,3 +108,7 @@
 	return TestStepResult();
 
 	}
+
+
+
+
--- a/localisation/apparchitecture/tef/T_groupNametest_ver2.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupNametest_ver2.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -23,7 +21,7 @@
 #if (!defined __T_groupNametest_ver2_H__)
 #define __T_groupNametest_ver2_H__
 
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 
 //  A CT_GroupNameStep_ver2 test class. 
 
@@ -42,3 +40,4 @@
 
 
 #endif
+
--- a/localisation/apparchitecture/tef/T_groupname_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupname_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file T_groupname_loc.rss
  @internalComponent - Internal Symbian test code
@@ -45,9 +43,11 @@
 					{
 					caption = "T_groupname";
 					number_of_icons = 1;
-					icon_file = "file:///c/resource/apps/tcheckiconapp.xyz";
+					icon_file = "file://c/resource/apps/tcheckiconapp.xyz";
 					}
 				};
 			}
 		};
 	}	
+
+
--- a/localisation/apparchitecture/tef/T_groupname_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupname_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file T_groupname_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/T_groupnamever1_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupnamever1_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file T_groupname1_loc.rss
  @internalComponent - Internal Symbian test code
@@ -35,3 +33,5 @@
 			}
 		};
 	}	
+
+
--- a/localisation/apparchitecture/tef/T_groupnamever1_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupnamever1_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file T_groupname1_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/T_groupnamever2_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupnamever2_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file T_groupname2_loc.rss
  @internalComponent - Internal Symbian test code
 */
 
 
-#include <AppInfo_NoLocalisableGroupName.rh>
+#include "AppInfo_NoLocalisableGroupName.rh"
 
 RESOURCE LOCALISABLE_APP_INFO__NO_GROUP_NAME // use this STRUCT rather than LOCALISABLE_APP_INFO, to test whether Apparc copes with the group-name being missing
 	{
@@ -35,3 +33,5 @@
 			}
 		};
 	}	
+
+
--- a/localisation/apparchitecture/tef/T_groupnamever2_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_groupnamever2_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,14 +13,12 @@
 // Description:
 //
 
-
-
 /**
  @file T_groupname2_reg.rss
  @internalComponent - Internal Symbian test code
 */
 
-#include <AppInfo.rh>
+#include <appinfo.rh>
 
 UID2 KUidAppRegistrationResourceFile
 
--- a/localisation/apparchitecture/tef/TestTrustedPriorityApp1_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TestTrustedPriorityApp1_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TestTrustedPriorityApp1_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TestTrustedPriorityApp2_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TestTrustedPriorityApp2_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TestTrustedPriorityApp2_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TestUnTrustedPriorityApp1_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TestUnTrustedPriorityApp1_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TestUnTrustedPriorityApp1_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/TestUnTrustedPriorityApp2_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/TestUnTrustedPriorityApp2_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file TestUnTrustedPriorityApp2_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/UnProctectedUidApp.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/UnProctectedUidApp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -25,17 +23,17 @@
 #include <eikapp.h>
 #include <eikdoc.h>
 #include <eikenv.h>
-#include <EIKSTART.H>
+#include <eikstart.h>
 
 /** KTUnProtectedAppTestPassed is a number chosen at random to be used as an exit reason
     for UnProtectedApp.exe's application thread to signify that the test passed */
 const TInt KTUnProtectedAppTestPassed = 1234;
 
-///////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -54,11 +52,11 @@
 	{
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -80,11 +78,11 @@
     return new(ELeave) CExampleAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
--- a/localisation/apparchitecture/tef/UnProctectedUidApp.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/UnProctectedUidApp.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,16 +13,12 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
-
 // using relative paths for sourcepath and user includes
 TARGET        unproctecteduidapp.exe
 TARGETTYPE    exe
@@ -34,26 +30,27 @@
 VENDORID 0x70000001
 
 SOURCEPATH    .
-SOURCE		unproctecteduidapp.cpp
+SOURCE		UnProctectedUidApp.cpp
 
 SOURCEPATH		.
 
-start resource	unproctecteduidapp.rss
+start resource	UnProctectedUidApp.rss
 HEADER
 targetpath 		/resource/apps
 end
 
 // Application exe registration resource file
-resource	unproctecteduidapp_reg.rss
-start resource	unproctecteduidapp_reg.rss
+resource	UnProctectedUidApp_reg.rss
+start resource	UnProctectedUidApp_reg.rss
 targetpath 	/private/10003a3f/apps
 lang		sc
 end
 
 USERINCLUDE   .
-SYSTEMINCLUDE /epoc32/include
-SYSTEMINCLUDE /epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE /epoc32/include/techview
 
 LIBRARY       euser.lib apparc.lib eikcore.lib cone.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/UnProctectedUidApp.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/UnProctectedUidApp.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -23,8 +21,8 @@
 
 NAME UNPR
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
@@ -59,3 +57,4 @@
 		MENU_ITEM { command=EEikCmdExit; txt="Close"; }
         };
     }
+
--- a/localisation/apparchitecture/tef/UnProctectedUidApp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/UnProctectedUidApp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/app_CTRL.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/app_CTRL.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -32,22 +30,22 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <apgcli.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
-#include <App_CTRL.rsg>
+#include <app_ctrl.rsg>
 #include "App_CTRL.hrh"
 
 #include <eikstart.h>
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -105,11 +103,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -167,11 +165,11 @@
 	{
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -194,11 +192,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -233,3 +231,6 @@
 	{
 	return EikStart::RunApplication(NewApplication);
 	}
+
+
+
--- a/localisation/apparchitecture/tef/app_CTRL.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/app_CTRL.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
@@ -18,9 +18,7 @@
 // App_CTRL.MMP for test component App_CTRL (released in APPARC)
 //
 
-#include <platform_paths.hrh>
-
-target		APP_CTRL.EXE
+target		app_ctrl.exe
 TARGETTYPE 	exe
 
 UID             0x100039CE 0x13008ACE
@@ -31,16 +29,16 @@
 SOURCEPATH	.	
 
 // your public include directory should be here
-systeminclude   ../inc
-systeminclude   /epoc32/include
-systeminclude   /epoc32/include/techview
+userinclude   ../inc
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude   /epoc32/include/techview
 
 // Application exe specific resource which is localised to the application
 resource  	App_CTRL.rss
 start resource  App_CTRL.rss
-targetpath	/Resource/apps
+targetpath	/resource/apps
 lang 		sc
 end
 
@@ -52,17 +50,19 @@
 end
 
 // Application localisable resource file
-resource  	App_CTRL_loc.rss
-start resource 	App_CTRL_loc.rss
-targetpath 	/Resource/apps
+resource  	App_ctrl_loc.RSS
+start resource 	App_ctrl_loc.RSS
+targetpath 	/resource/apps
 lang		sc
 end
 
-SOURCE		App_CTRL.CPP
+SOURCE		app_CTRL.CPP
 
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
\ No newline at end of file
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/app_CTRL2.CPP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/app_CTRL2.CPP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -32,20 +30,20 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <apgcli.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
-#include <App_CTRL2.rsg>
+#include <app_ctrl2.rsg>
 #include "App_CTRL2.hrh"
 #include <eikstart.h>
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -103,11 +101,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -164,11 +162,11 @@
 	{
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -192,11 +190,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -231,3 +229,6 @@
 	{
 	return EikStart::RunApplication(NewApplication);
 	}
+
+
+
--- a/localisation/apparchitecture/tef/app_CTRL2.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/app_CTRL2.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
@@ -18,9 +18,7 @@
 // App_CTRL2.MMP for test component App_CTRL2 (released in APPARC)
 //
 
-#include <platform_paths.hrh>
-
-target		APP_CTRL2.EXE
+target		app_ctrl2.exe
 TARGETTYPE 	exe
 
 CAPABILITY 	All -Tcb
@@ -31,19 +29,19 @@
 SOURCEPATH	.	
 
 // your public include directory should be here
-systeminclude   ../inc
-systeminclude   /epoc32/include
-systeminclude   /epoc32/include/techview
-systeminclude   /epoc32/include/kernel
+userinclude   ../inc
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude   /epoc32/include/techview
+//systeminclude   /epoc32/include/kernel
 
-source          App_CTRL2.CPP
+source          app_CTRL2.CPP
 
 // Application exe specific resource which is localised to the application
 resource	App_CTRL2.rss
 start resource	App_CTRL2.rss
-targetpath	/Resource/apps
+targetpath	/resource/apps
 lang		sc
 end
 
@@ -55,8 +53,10 @@
 end
 
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
\ No newline at end of file
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib 
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/apparctestserver.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/apparctestserver.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,19 +13,18 @@
 // Description:
 //
 
-#include <platform_paths.hrh>
-
-target			apparctestserver.EXE
+target			apparctestserver.exe
 targettype		exe
 UID             0x1000007A 0x101F289C
 CAPABILITY  	AllFiles WriteDeviceData PowerMgmt Protserv SwEvent
 
 
-SYSTEMINCLUDE   /EPOC32/INCLUDE /EPOC32/INCLUDE/TECHVIEW /EPOC32/INCLUDE/TEST
-systeminclude /epoc32/include/ecom
-systeminclude  ../tef
-
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE   /epoc32/include/techview
+//systeminclude /epoc32/include/ecom
+USERINCLUDE  ../tef
+USERINCLUDE  ../inc
 
 SOURCEPATH		../tef
 SOURCE			apparctestserver.cpp
@@ -33,12 +32,12 @@
 //-------START 
 
 SOURCE		T_Foreground.cpp
-SOURCE		T_ProStep.cpp T_OOMStep.cpp T_File1Step.cpp T_File2Step.cpp T_File3Step.cpp
+SOURCE		T_ProStep.cpp T_OOMStep.cpp T_File2Step.cpp T_File3Step.cpp
 SOURCE		T_BackupStep.cpp T_MdrStep.cpp
-SOURCE		T_Serv2Step.cpp  T_Serv3Step.cpp
-SOURCE		T_MRUStep.cpp T_WgnamStep.cpp
-SOURCE		T_CmdlnStep.cpp T_RApaLsSessionStep.cpp 
-SOURCE		T_ExeStep.cpp T_NotifStep.cpp
+SOURCE		T_Serv2Step.CPP  T_Serv3Step.cpp
+SOURCE		T_MRUStep.CPP T_WgnamStep.CPP
+SOURCE		T_CmdlnStep.CPP T_RApaLsSessionStep.cpp 
+SOURCE		T_ExeStep.CPP T_NotifStep.cpp
 SOURCE		T_CaptionStep.cpp T_LocaleStep.cpp 
 SOURCE		T_AutoMMCReaderOpen.cpp
    
@@ -53,8 +52,8 @@
 SOURCE		T_groupNametest.cpp
 SOURCE		T_groupNametest_ver1.cpp
 SOURCE		T_groupNametest_ver2.cpp
-SOURCE		T_windowchainingstep.cpp
-SOURCE		T_AppList.CPP
+SOURCE		T_WindowChainingStep.CPP
+SOURCE		T_AppList.cpp
 SOURCE		T_SysStartApparcStep.cpp
 SOURCE		T_ProcStep.cpp
 SOURCE		T_DataMappingPersistenceA.cpp
@@ -63,12 +62,10 @@
 SOURCE		T_NonNativeAppsStep.cpp
 SOURCE		T_IntegritySupportStep.cpp
 SOURCE		T_IntegritySupportRebootStep.cpp
-SOURCE		T_ApsScan.CPP
+SOURCE		T_ApsScan.cpp
 SOURCE		T_EndTaskStep.cpp
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
 SOURCE		T_AppListFileUpdateStep.cpp
 SOURCE		T_AppListFileBootStep.cpp
-#endif
 SOURCE		testableapalssession.cpp
 SOURCE		t_largestackstep.cpp
 SOURCE		T_DataTypeMappingWithSid1.cpp
@@ -78,6 +75,7 @@
 SOURCE		t_servicebasestep.cpp
 SOURCE		T_RecUpgrade.cpp
 
+
 resource		t_rapalssessionstep.rss
 start resource	t_rapalssessionstep.rss
 TARGETPATH		/system/test/t_rapalssessionstep
@@ -91,7 +89,7 @@
 lang		sc
 end
 
-start resource	serverapp_reg.RSS
+start resource	serverapp_reg.rss
 targetpath	/private/10003a3f/apps
 lang		sc
 end
@@ -121,12 +119,12 @@
 lang		sc
 end
 
-start resource	openservice1a.RSS
+start resource	openservice1a.rss
 targetpath	/private/10003a3f/apps
 lang		sc
 end
 
-start resource	openservice1b.RSS
+start resource	openservice1b.rss
 targetpath	/private/10003a3f/apps
 lang		sc
 end
@@ -139,7 +137,7 @@
 // END resource files for service registration and discovery tests
 
 
-start resource	TCtrlPnlApp_reg.RSS
+start resource	TCtrlPnlApp_reg.rss
 targetpath	/private/10003a3f/apps
 lang		sc
 end
@@ -223,13 +221,16 @@
 USERINCLUDE	 	../tef
 userinclude		../../uiftestfw/inc
 
-LIBRARY		CONE.LIB WS32.LIB APPFWK_TEST_APPUI.LIB EUSER.LIB ECOM.LIB
-LIBRARY		TESTEXECUTEUTILS.LIB  TestExecuteLogClient.LIB
-LIBRARY		APPARC.LIB EFSRV.LIB ESTOR.LIB GDI.LIB FBSCLI.LIB
-LIBRARY     	APFILE.LIB APGRFX.LIB  BAFL.LIB APMIME.LIB APSERV.LIB
-LIBRARY		EIKCORE.LIB APPFWK_TEST_UTILS.LIB SERVICEREGISTRY.LIB
+LIBRARY		cone.lib ws32.lib appfwk_test_appui.lib euser.lib ecom.lib
+LIBRARY		testexecuteutils.lib  testexecutelogclient.lib
+LIBRARY		apparc.lib efsrv.lib estor.lib gdi.lib fbscli.lib
+LIBRARY     	apfile.lib apgrfx.lib  bafl.lib apmime.lib apserv.lib
+LIBRARY		eikcore.lib appfwk_test_utils.lib serviceregistry.lib
+LIBRARY		aplist.lib
 LIBRARY     ticonloaderandiconarrayforleaks.lib centralrepository.lib
 // We're quite heavy on the stack... 4k in WinS isn't enough...
 EPOCSTACKSIZE	0xf000
 
 VENDORID 0x70000001
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/apparctestserver.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/apparctestserver.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,12 +11,11 @@
 // Contributors:
 //
 // Description:
+// apparctestserver.cpp
 //
 
-
-
 /**
- @file
+ @file apparctestserver.cpp
  @test
  @internalComponent - Internal Symbian test code 
 */
@@ -24,22 +23,21 @@
 #include <basched.h>
 #include <eikenv.h>
 #include <eikappui.h>
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eiklabel.h>
+#include <mw/eiklabel.h>
 #include <eikfctry.h>
 #include <coecntrl.h>
 #include <barsread.h>
-#include <eiktbar.h>
-#include <eikmenub.h>
+#include <mw/eiktbar.h>
+#include <mw/eikmenub.h>
 
-#include "appfwk_test_AppUi.h"
-#include "ApparcTestServer.h"
+#include "appfwk_test_appui.h"
+#include "apparctestserver.h"
 #include "t_foreground.h"
 #include "T_ProStep.h"
 #include "T_OOMStep.h"
-#include "T_File1Step.h"
 #include "T_File2Step.h"
 #include "T_File3Step.h"
 #include "T_BackupStep.h"
@@ -80,10 +78,8 @@
 #include "T_ApsScan.h"
 #include "T_EndTaskStep.h"
 #include "T_RecUpgrade.h"
-#ifdef SYMBIAN_APPARC_APPINFO_CACHE
 #include "T_AppListFileBootStep.h"
 #include "T_AppListFileUpdateStep.h"
-#endif //SYMBIAN_APPARC_APPINFO_CACHE
 #include "t_largestackstep.h"
 #include "t_drivenotification.h"
 #include "t_mimecontentpolicystep.h"
@@ -134,10 +130,6 @@
 	else if(aStepName == KT_OOMStep)
 		{
 		testStep = new CT_OOMStep();
-		}	
-	else if(aStepName == KT_File1Step)
-		{
-		testStep = new CT_File1Step();
 		}
 	else if(aStepName == KT_File2Step)
 		{
@@ -310,7 +302,6 @@
 		{
 		testStep = new CTEndTaskStep();
 		}	
-	#ifdef SYMBIAN_APPARC_APPINFO_CACHE
 	else if (aStepName == KT_AppListFileUpdate)
 		{
 		testStep = new CT_AppListFileUpdateStep();
@@ -327,7 +318,6 @@
 		{
 		testStep = new CT_AppListFileBootStep(3);
 		}
-	#endif //SYMBIAN_APPARC_APPINFO_CACHE
 	else if (aStepName == KT_LargeStackStep)
 		{
 		testStep = new CT_LargeStackStep();
@@ -348,7 +338,7 @@
 		{
 		testStep = new CT_RecUpgradeStep();
 		}
-	
+
 	return testStep;
 	}
 
--- a/localisation/apparchitecture/tef/apparctestserver.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/apparctestserver.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -25,9 +23,9 @@
 #if (!defined __APPARTESTSERVER_H__)
 #define __APPARTESTSERVER_H__
 
-#include <TestExecuteStepBase.h>
-#include <TestExecuteServerBase.h>
-#include <testexecutelog.h>
+#include <test/testexecutestepbase.h>
+#include <test/testexecuteserverbase.h>
+#include <test/testexecutelog.h>
 
 class CApparctestServer : public CTestServer
 	{
@@ -37,3 +35,5 @@
 	};
 
 #endif
+
+
--- a/localisation/apparchitecture/tef/m_ctrl_v2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/m_ctrl_v2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
@@ -19,9 +19,7 @@
 // New style APP/EXE built for a secure environment
 //
 
-#include <platform_paths.hrh>
-
-target 		M_CTRL.EXE
+target 		m_ctrl.exe
 TARGETTYPE 	exe
 
 targetpath	/sys/bin
@@ -34,18 +32,18 @@
 SOURCEPATH	.
 
 
-systeminclude   ../INC 		
-systeminclude   /EPOC32/INCLUDE
-systeminclude   /EPOC32/INCLUDE/techview
-
-MW_LAYER_SYSTEMINCLUDE
+userinclude   ../inc
+ 		
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude   /epoc32/include/techview
 
 userinclude     .
 
 // Application exe specific resource which is localised to the application
 resource  	M_CTRL.rss
 start resource  M_CTRL.rss
-targetpath	/Resource/apps
+targetpath	/resource/apps
 lang 		sc
 end
 
@@ -56,18 +54,19 @@
 end
 
 // Application localisable resource file
-start resource 	M_CTRL_loc.rss
-targetpath 	/Resource/apps
+start resource 	M_CTRL_loc.RSS
+targetpath 	/resource/apps
 lang		sc
 end
 
 SOURCE		M_CTRL_V2.CPP
 
-LIBRARY 	APPARC.LIB 
-LIBRARY 	CONE.LIB
-LIBRARY 	EFSRV.LIB
-LIBRARY 	EIKCORE.LIB
-LIBRARY 	EUSER.LIB 
-LIBRARY 	GDI.LIB
-LIBRARY 	APPFWK_TEST_APPUI.LIB 
+LIBRARY 	apparc.lib 
+LIBRARY 	cone.lib
+LIBRARY 	efsrv.lib
+LIBRARY 	eikcore.lib
+LIBRARY 	euser.lib 
+LIBRARY 	gdi.lib
+LIBRARY 	appfwk_test_appui.lib 
 
+SMPSAFE
--- a/localisation/apparchitecture/tef/openservice1a.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/openservice1a.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file operservice1a.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/openservice1b.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/openservice1b.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file operservice1b.rss
  @internalComponent - Internal Symbian test code
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/scripts/apparctest_T_Caption.script	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,32 @@
+//
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+//! @file
+//! @SYMTestCaseID		API-APPFWK-T_Caption_TestCApaSystemControlListL-0001
+//! @SYMTestCaseDesc		Check (short)caption by means of a control on the list CApaSystemControlList
+//! @SYMTestPriority 		High
+//! @SYMTestStatus 		3. Released
+//! @SYMTestActions		The test creates a CApaSystemControlList and checks the value of (short)caption
+   				by creating a CApaSystemControl from index 0 of CApaSystemControlList
+//! @SYMTestExpectedResults	The (short)caption is set to a value not null (length is not zero)
+
+START_TESTCASE API-APPFWK-T_Caption_TestCApaSystemControlListL-0001
+
+PRINT Run T_Caption Apparc test
+//
+LOAD_SUITE ApparcTestServer
+RUN_TEST_STEP 800 ApparcTestServer T_Caption
+
+END_TESTCASE API-APPFWK-T_Caption_TestCApaSystemControlListL-0001
--- a/localisation/apparchitecture/tef/scripts/setup_smoketest_language.script	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/scripts/setup_smoketest_language.script	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 // Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/scripts/smoketest_language.script	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/scripts/smoketest_language.script	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 // Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -24,6 +24,6 @@
 //!	@SYMTestCaseID		SMOKE_LANGUAGE_0001
 //!	@SYMTestCaseDesc	Set a new language
 
-RUN_TEST_STEP 100 ApparcTestServer T_Caption
+RUN_TEST_STEP 	100 	ApparcTestServer T_Caption
 
-END_TESTCASE			SMOKE_LANGUAGE_0001
\ No newline at end of file
+END_TESTCASE			SMOKE_LANGUAGE_0001
--- a/localisation/apparchitecture/tef/serverapp2_reg.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/serverapp2_reg.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file serverapp2_reg.rss
  @internalComponent - Internal Symbian test code
@@ -34,3 +32,6 @@
 		SERVICE_INFO { uid = 0x01020333;}
 		};
 	}
+
+
+
--- a/localisation/apparchitecture/tef/serverapp3_reg.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/serverapp3_reg.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file serverapp3_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/serverapp4_reg.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/serverapp4_reg.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file serverapp4_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/serverapp6_reg.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/serverapp6_reg.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file serverapp6_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/serverapp7_reg.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/serverapp7_reg.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file serverapp7_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/serverapp_loc.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/serverapp_loc.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file serverapp_loc.rss
  @internalComponent - Internal Symbian test code
@@ -53,3 +51,4 @@
 	{
 	name = "Localised text for service UID 0x01020305";
 	}
+
--- a/localisation/apparchitecture/tef/serverapp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/serverapp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file serverapp_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/tAppLaunchChecker.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tAppLaunchChecker.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -18,23 +18,23 @@
 // 
 //
 
-
-
-
 /**
  @file 
  @internalComponent - Internal Symbian test code
 */
 
-#include <ImplementationProxy.h>
+#include <ecom/implementationproxy.h>
 #include "tAppLaunchChecker.h"
 #include <apacmdln.h>
-#include <W32STD.H>
+#include <w32std.h>
 #include <apgtask.h>
 #include <coemain.h>
 #include <apaid.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaidpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apgcli.h>
-#include "..\tef\tRuleBasedApps\RuleBasedUID.H"
+#include "../tef/tRuleBasedApps/RuleBasedUID.H"
 
 
 // Define the interface UIDs
--- a/localisation/apparchitecture/tef/tAppLaunchChecker.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tAppLaunchChecker.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -23,7 +21,7 @@
 #ifndef __TAPPLUNCHCHEKER_H__
 #define __TAPPLUNCHCHEKER_H__
 
-#include "..\inc\ApLaunchChecker.h"
+#include "../inc/ApLaunchChecker.h"
 
 class CTAppLaunchChecker : public CAppLaunchChecker
 	{
--- a/localisation/apparchitecture/tef/tAppLaunchChecker2.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tAppLaunchChecker2.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -18,17 +18,14 @@
 // 
 //
 
-
-
-
 /**
  @file 
  @internalComponent - Internal Symbian test code
 */
 
-#include <ImplementationProxy.h>
+#include <ecom/implementationproxy.h>
 #include "tAppLaunchChecker2.h"
-#include "..\tef\tRuleBasedApps\RuleBasedUID.H"
+#include "../tef/tRuleBasedApps/RuleBasedUID.H"
 
 
 // Define the interface UIDs
--- a/localisation/apparchitecture/tef/tAppLaunchChecker2.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tAppLaunchChecker2.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -24,7 +22,7 @@
 #define __TAPPLUNCHCHEKER2_H__
 
 
-#include "..\inc\ApLaunchChecker.h"
+#include "../inc/ApLaunchChecker.h"
 #include <apgtask.h>
 
 class CTAppLaunchChecker2 : public CAppLaunchChecker
@@ -38,3 +36,4 @@
 	};
 
 #endif
+
--- a/localisation/apparchitecture/tef/tRuleBasedApps/RuleBasedUID.H	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/RuleBasedUID.H	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -29,3 +27,4 @@
 const TUid KUidApp4 = {0X10210F77};
 
 #endif
+
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,9 +25,6 @@
 // 
 //
 
-
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -35,26 +32,26 @@
 
 #include <coeccntx.h>
 #include <eikenv.h>
-#include <eikAppui.h>
-#include <eikApp.h>
+#include <eikappui.h>
+#include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <eikstart.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
-#include <tRuleBasedApp1.rsg>
+#include <trulebasedapp1.rsg>
 #include "tRuleBasedApp.hrh"
 
 const TInt KLeft 	= 0; // Display app window on the left
 const TInt KCentre 	= 1; // Display app window in the centre
 const TInt KRight 	= 2; // Display app window on the right
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CTRuleBasedApplication : public CEikApplication
 	{
@@ -63,11 +60,11 @@
 	TUid AppDllUid() const;
 	};
 	
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedAppView : public CCoeControl
  	{
 public:
@@ -87,11 +84,11 @@
 	HBufC* iRuleBasedText;
  	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedAppUi : public CEikAppUi
 	{
 public:
@@ -106,11 +103,11 @@
 	CTRuleBasedAppView* iAppView;
 	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedDocument : public CEikDocument
 	{
 public:
@@ -122,11 +119,11 @@
 	CEikAppUi* CreateAppUiL();
 	};
 
-//////////////////////////////////////////////////////////////////////
+//
 //
 // Application Document class - CTRuleBasedAppDocument
 //
-//////////////////////////////////////////////////////////////////////
+//
 
 /**
 The constructor of the document class just passes the
@@ -151,12 +148,12 @@
  	return new(ELeave) CTRuleBasedAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Source for the implementation of the 
 // Application view class - CTRuleBasedAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 
 // Constructor for the view.
@@ -270,11 +267,11 @@
 	gc.DiscardFont();
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Application UI class - CTRuleBasedAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 /**
 The second phase constructor of the Application UI class.
@@ -320,12 +317,12 @@
 	delete iAppView;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the
 // Application class - CTRuleBasedApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 const TUid KUidRuleBasedApp = { 0x1020D6FC};
 
@@ -390,3 +387,4 @@
 	return EikStart::RunApplication( NewApplication, aCommandLine );
 	}
 #endif
+
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
 // using relative paths for sourcepath and user includes
 CAPABILITY NONE
 epocstacksize 		0x5000
@@ -24,7 +22,7 @@
 TARGETPATH		/sys/bin
 
 
-TARGET			tRuleBasedApp1.exe
+TARGET			trulebasedapp1.exe
 TARGETTYPE		exe
 
 
@@ -39,10 +37,9 @@
 
 USERINCLUDE   		.
 
-SYSTEMINCLUDE 		/epoc32/include
-SYSTEMINCLUDE 		/epoc32/include/techview
-
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 		/epoc32/include/techview
 
 LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib bitgdi.lib fntstr.lib fbscli.lib gdi.lib
 
@@ -55,3 +52,5 @@
 START RESOURCE		tRuleBasedApp1_reg.rss
 TARGETPATH		/private/10003a3f/apps
 END
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -22,10 +20,10 @@
 
 NAME GUBA
 
-#include <eikon.rh>
+#include <mw/eikon.rh>
 #include <appinfo.rh>
-#include <eikon.rsg>
-#include <eikcore.rsg>
+#include <mw/eikon.rsg>
+#include <uiklafgt/eikcore.rsg>
 #include <fontids.h>
 #include <gulfont.hrh>
 
@@ -67,7 +65,7 @@
 	};  
     }
 
-/////TKAS
+//TKAS
 RESOURCE TBUF r_appname_default_file
 	{
 	buf="tRuleBasedApp1";
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp1_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -14,7 +14,7 @@
 //
 
 #include <appinfo.rh>
-#include <tRuleBasedApp1.rsg>
+#include <trulebasedapp1.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 
@@ -26,4 +26,4 @@
 	localisable_resource_file="\\resource\\apps\\tRuleBasedApp1";
 	localisable_resource_id=R_LAI;
 	
-	}
+	}
\ No newline at end of file
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,9 +25,6 @@
 // 
 //
 
-
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -35,26 +32,26 @@
 
 #include <coeccntx.h>
 #include <eikenv.h>
-#include <eikAppui.h>
-#include <eikApp.h>
+#include <eikappui.h>
+#include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <eikstart.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
-#include <tRuleBasedApp2.rsg>
+#include <trulebasedapp2.rsg>
 #include "tRuleBasedApp.hrh"
 
 //const TInt KLeft 	= 0; // Display app window on the left
 const TInt KCentre 	= 1; // Display app window in the centre
 const TInt KRight 	= 2; // Display app window on the right
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CTRuleBasedApplication : public CEikApplication
 	{
@@ -63,11 +60,11 @@
 	TUid AppDllUid() const;
 	};
 	
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedAppView : public CCoeControl
  	{
 public:
@@ -87,11 +84,11 @@
 	HBufC* iRuleBasedText;
  	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedAppUi : public CEikAppUi
 	{
 public:
@@ -106,11 +103,11 @@
 	CTRuleBasedAppView* iAppView;
 	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedDocument : public CEikDocument
 	{
 public:
@@ -122,11 +119,11 @@
 	CEikAppUi* CreateAppUiL();
 	};
 
-//////////////////////////////////////////////////////////////////////
+//
 //
 // Application Document class - CTRuleBasedAppDocument
 //
-//////////////////////////////////////////////////////////////////////
+//
 
 /**
 The constructor of the document class just passes the
@@ -151,12 +148,12 @@
  	return new(ELeave) CTRuleBasedAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Source for the implementation of the 
 // Application view class - CTRuleBasedAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 
 // Constructor for the view.
@@ -270,11 +267,11 @@
 	gc.DiscardFont();
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Application UI class - CTRuleBasedAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 /**
 The second phase constructor of the Application UI class.
@@ -320,12 +317,12 @@
 	delete iAppView;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the
 // Application class - CTRuleBasedApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 const TUid KUidRuleBasedApp = { 0X1020D6FD };
 
@@ -390,3 +387,4 @@
 	return EikStart::RunApplication( NewApplication, aCommandLine );
 	}
 #endif
+
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
 // using relative paths for sourcepath and user includes
 CAPABILITY NONE
 epocstacksize 		0x5000
@@ -24,7 +22,7 @@
 TARGETPATH		/sys/bin
 
 
-TARGET			tRuleBasedApp2.exe
+TARGET			trulebasedapp2.exe
 TARGETTYPE		exe
 
 
@@ -39,10 +37,9 @@
 
 USERINCLUDE   		.
 
-SYSTEMINCLUDE 		/epoc32/include
-SYSTEMINCLUDE 		/epoc32/include/techview
-
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 		/epoc32/include/techview
 
 LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib bitgdi.lib fntstr.lib fbscli.lib gdi.lib
 
@@ -55,3 +52,5 @@
 START RESOURCE		tRuleBasedApp2_reg.rss
 TARGETPATH		/private/10003a3f/apps
 END
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -22,10 +20,10 @@
 
 NAME GUBA
 
-#include <eikon.rh>
+#include <mw/eikon.rh>
 #include <appinfo.rh>
-#include <eikon.rsg>
-#include <eikcore.rsg>
+#include <mw/eikon.rsg>
+#include <uiklafgt/eikcore.rsg>
 #include <fontids.h>
 #include <gulfont.hrh>
 
@@ -67,7 +65,7 @@
 	};  
     }
 
-/////TKAS
+//TKAS
 RESOURCE TBUF r_appname_default_file
 	{
 	buf="tRuleBasedApp2";
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp2_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,7 +16,7 @@
 //
 
 #include <appinfo.rh>
-#include <tRuleBasedApp2.rsg>
+#include <trulebasedapp2.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 
@@ -28,4 +28,4 @@
 	localisable_resource_file="\\resource\\apps\\tRuleBasedApp2";
 	localisable_resource_id=R_LAI;
 	
-	}
+	}
\ No newline at end of file
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,9 +25,6 @@
 // 
 //
 
-
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -35,26 +32,26 @@
 
 #include <coeccntx.h>
 #include <eikenv.h>
-#include <eikAppui.h>
-#include <eikApp.h>
+#include <eikappui.h>
+#include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <eikstart.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
-#include <tRuleBasedApp3.rsg>
+#include <trulebasedapp3.rsg>
 #include "tRuleBasedApp.hrh"
 
 //const TInt KLeft 	= 0; // Display app window on the left
 const TInt KCentre 	= 1; // Display app window in the centre
 const TInt KRight 	= 2; // Display app window on the right
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CTRuleBasedApplication : public CEikApplication
 	{
@@ -63,11 +60,11 @@
 	TUid AppDllUid() const;
 	};
 	
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedAppView : public CCoeControl
  	{
 public:
@@ -87,11 +84,11 @@
 	HBufC* iRuleBasedText;
  	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedAppUi : public CEikAppUi
 	{
 public:
@@ -106,11 +103,11 @@
 	CTRuleBasedAppView* iAppView;
 	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedDocument : public CEikDocument
 	{
 public:
@@ -122,11 +119,11 @@
 	CEikAppUi* CreateAppUiL();
 	};
 
-//////////////////////////////////////////////////////////////////////
+//
 //
 // Application Document class - CTRuleBasedAppDocument
 //
-//////////////////////////////////////////////////////////////////////
+//
 
 /**
 The constructor of the document class just passes the
@@ -151,12 +148,12 @@
  	return new(ELeave) CTRuleBasedAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Source file for the implementation of the
 // Application view class - CTRuleBasedAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 
 // Constructor for the view.
@@ -270,11 +267,11 @@
 	gc.DiscardFont();
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Application UI class - CTRuleBasedAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 /**
 The second phase constructor of the Application UI class.
@@ -320,12 +317,12 @@
 	delete iAppView;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the
 // Application class - CTRuleBasedApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 const TUid KUidRuleBasedApp = { 0X1020D6FE };
 
@@ -390,3 +387,4 @@
 	return EikStart::RunApplication( NewApplication, aCommandLine );
 	}
 #endif
+
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
 // using relative paths for sourcepath and user includes
 CAPABILITY NONE
 epocstacksize 		0x5000
@@ -24,7 +22,7 @@
 TARGETPATH		/sys/bin
 
 
-TARGET			tRuleBasedApp3.exe
+TARGET			trulebasedapp3.exe
 TARGETTYPE		exe
 
 
@@ -39,10 +37,9 @@
 
 USERINCLUDE   		.
 
-SYSTEMINCLUDE 		/epoc32/include
-SYSTEMINCLUDE 		/epoc32/include/techview
-
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 		/epoc32/include/techview
 
 LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib bitgdi.lib fntstr.lib fbscli.lib gdi.lib
 
@@ -55,3 +52,5 @@
 START RESOURCE		tRuleBasedApp3_reg.rss
 TARGETPATH		/private/10003a3f/apps
 END
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -24,10 +22,10 @@
 
 NAME GUBA
 
-#include <eikon.rh>
+#include <mw/eikon.rh>
 #include <appinfo.rh>
-#include <eikon.rsg>
-#include <eikcore.rsg>
+#include <mw/eikon.rsg>
+#include <uiklafgt/eikcore.rsg>
 #include <fontids.h>
 #include <gulfont.hrh>
 
@@ -69,7 +67,7 @@
 	};  
     }
 
-/////TKAS
+//TKAS
 RESOURCE TBUF r_appname_default_file
 	{
 	buf="tRuleBasedApp3";
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp3_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,7 +17,7 @@
 
 
 #include <appinfo.rh>
-#include <tRuleBasedApp3.rsg>
+#include <trulebasedapp3.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 
@@ -29,4 +29,4 @@
 	localisable_resource_file="\\resource\\apps\\tRuleBasedApp3";
 	localisable_resource_id=R_LAI;
 	
-	}
+	}
\ No newline at end of file
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,9 +25,6 @@
 // 
 //
 
-
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -35,26 +32,26 @@
 
 #include <coeccntx.h>
 #include <eikenv.h>
-#include <eikAppui.h>
-#include <eikApp.h>
+#include <eikappui.h>
+#include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 #include <eikstart.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
-#include <tRuleBasedApp4.rsg>
+#include <trulebasedapp4.rsg>
 #include "tRuleBasedApp.hrh"
 
 //const TInt KLeft 	= 0; // Display app window on the left
 const TInt KCentre 	= 1; // Display app window in the centre
 const TInt KRight 	= 2; // Display app window on the right
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CTRuleBasedApplication : public CEikApplication
 	{
@@ -63,11 +60,11 @@
 	TUid AppDllUid() const;
 	};
 	
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedAppView : public CCoeControl
  	{
 public:
@@ -87,11 +84,11 @@
 	HBufC* iRuleBasedText;
  	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedAppUi : public CEikAppUi
 	{
 public:
@@ -106,11 +103,11 @@
 	CTRuleBasedAppView* iAppView;
 	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CTRuleBasedDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CTRuleBasedDocument : public CEikDocument
 	{
 public:
@@ -122,11 +119,11 @@
 	CEikAppUi* CreateAppUiL();
 	};
 
-//////////////////////////////////////////////////////////////////////
+//
 //
 // Application Document class - CTRuleBasedAppDocument
 //
-//////////////////////////////////////////////////////////////////////
+//
 
 /**
 The constructor of the document class just passes the
@@ -151,12 +148,12 @@
  	return new(ELeave) CTRuleBasedAppUi;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Source for the implementation of the 
 // Application view class - CTRuleBasedAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 
 // Constructor for the view.
@@ -270,11 +267,11 @@
 	gc.DiscardFont();
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Application UI class - CTRuleBasedAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 /**
 The second phase constructor of the Application UI class.
@@ -320,12 +317,12 @@
 	delete iAppView;
 	}
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the
 // Application class - CTRuleBasedApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 const TUid KUidRuleBasedApp = { 0X10210F77 }; 
 
@@ -390,3 +387,4 @@
 	return EikStart::RunApplication( NewApplication, aCommandLine );
 	}
 #endif
+
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
 // using relative paths for sourcepath and user includes
 CAPABILITY NONE
 epocstacksize 		0x5000
@@ -24,7 +22,7 @@
 TARGETPATH		/sys/bin
 
 
-TARGET			tRuleBasedApp4.exe
+TARGET			trulebasedapp4.exe
 TARGETTYPE		exe
 
 
@@ -38,10 +36,9 @@
 
 USERINCLUDE   		.
 
-SYSTEMINCLUDE 		/epoc32/include
-SYSTEMINCLUDE 		/epoc32/include/techview
-
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 		/epoc32/include/techview
 
 LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib bitgdi.lib fntstr.lib fbscli.lib gdi.lib
 
@@ -54,3 +51,5 @@
 START RESOURCE		tRuleBasedApp4_reg.rss
 TARGETPATH		/private/10003a3f/apps
 END
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -23,10 +21,10 @@
 
 NAME GUBA
 
-#include <eikon.rh>
+#include <mw/eikon.rh>
 #include <appinfo.rh>
-#include <eikon.rsg>
-#include <eikcore.rsg>
+#include <mw/eikon.rsg>
+#include <uiklafgt/eikcore.rsg>
 #include <fontids.h>
 #include <gulfont.hrh>
 
@@ -68,7 +66,7 @@
 	};  
     }
 
-/////TKAS
+//TKAS
 RESOURCE TBUF r_appname_default_file
 	{
 	buf="tRuleBasedApp4";
--- a/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tRuleBasedApps/tRuleBasedApp4_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -19,7 +19,7 @@
 
 
 #include <appinfo.rh>
-#include <tRuleBasedApp4.rsg>
+#include <trulebasedapp4.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 
@@ -31,4 +31,4 @@
 	localisable_resource_file="\\resource\\apps\\tRuleBasedApp4";
 	localisable_resource_id=R_LAI;
 	
-	}
+	}
\ No newline at end of file
--- a/localisation/apparchitecture/tef/t_abstractnonnativeappsstep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_abstractnonnativeappsstep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code  
@@ -23,6 +21,9 @@
 #include "t_abstractnonnativeappsstep.h"
 
 #include <apgicnfl.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
 
 CT_AbstractNonNativeAppsTestStep::CT_AbstractNonNativeAppsTestStep()
 	{
@@ -40,7 +41,7 @@
 	TEST(error==KErrNone);
 	}
 
-void CT_AbstractNonNativeAppsTestStep::CleanupAndReset(RTestableApaLsSession& aSession, const TTestAppDetails& aApp)
+void CT_AbstractNonNativeAppsTestStep::CleanupAndResetL(RTestableApaLsSession& aSession, const TTestAppDetails& aApp)
 	{
 	// make sure we're starting from a clean sheet
 	CompleteDeregisterL(aSession, aApp);
--- a/localisation/apparchitecture/tef/t_abstractnonnativeappsstep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_abstractnonnativeappsstep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -24,8 +22,8 @@
 #ifndef T_ABSTRACT_NONNATIVEAPPS_STEP_H
 #define T_ABSTRACT_NONNATIVEAPPS_STEP_H
 
-#include <testexecutestepbase.h>
-#include  <appfwk_test_utils.h>
+#include <test/testexecutestepbase.h>
+#include "appfwk_test_utils.h"
 #include "testableapalssession.h"
 
 const TInt KApplicationType = 0x102081A0;
@@ -54,7 +52,7 @@
 
 protected:
 	void doAbstractNonNativeAppsTestStepPreambleL();
-	static void CleanupAndReset(RTestableApaLsSession& aSession, const TTestAppDetails& aApp);
+	static void CleanupAndResetL(RTestableApaLsSession& aSession, const TTestAppDetails& aApp);
 	static void CallRegisterL(RTestableApaLsSession& aSession, const TTestAppDetails& aApp);
 	static void CompleteRegisterL(RTestableApaLsSession& aSession, const TTestAppDetails& aApp);
 	static void CallDeregisterL(RTestableApaLsSession& aSession, const TTestAppDetails& aApp);
--- a/localisation/apparchitecture/tef/t_drivenotification.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_drivenotification.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -20,8 +20,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -274,3 +272,4 @@
 	INFO_PRINTF1(_L("T_DriveNotification Completed."));
 	return TestStepResult();
 	}
+
--- a/localisation/apparchitecture/tef/t_drivenotification.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_drivenotification.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -23,7 +21,7 @@
 
 #if (!defined __T_DRIVENOTIFICATION_H__)
 #define __T_DRIVENOTIFICATION_H__
-#include "ApparcTestServer.h"
+#include "apparctestserver.h"
 #include <apgnotif.h>
 #include <apgcli.h>
 #include <eikenv.h>
--- a/localisation/apparchitecture/tef/t_largestackstep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_largestackstep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,20 +13,22 @@
 // Description:
 // The following test case is used to test whether or not Apparc can handle loading applications with excessively large stack frames.
 // 
+//t_largestackstep.cpp
 //
 
-
-
 /**
- @file
+ @file t_largestackstep.cpp
  @internalComponent - Internal Symbian test code
 */
 
 #include <apgcli.h>
 #include <apacmdln.h>
 #include <apgicnfl.h>
-#include "../apserv/APSCLSV.H"
-#include "T_LargeStackStep.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apgicnflpartner.h>
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "../apserv/apsclsv.h"
+#include "t_largestackstep.h"
 
 const TUid KLargeStackAppUid = {0x10282B27};
 
@@ -84,9 +86,6 @@
 	commandline->SetCommandL(EApaCommandRunWithoutViews);
 	TEST(iApaLsSession.StartApp(*commandline)==KErrNone);
 	
-	INFO_PRINTF1(_L("Test running the application via the legacy recogniser code."));
-	TEST(iApaLsSession.TestExeRecognizerL(*commandline)==KErrNone);
-
 	INFO_PRINTF1(_L("Test running the application via StartDocument."));
 	TThreadId threadId;
 	TEST(iApaLsSession.StartDocument(_L("z:\fakename.doc"), KLargeStackAppUid, threadId, RApaLsSession::ELaunchNewApp)==KErrNone);
--- a/localisation/apparchitecture/tef/t_largestackstep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_largestackstep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,7 +22,7 @@
 #ifndef		__T_LARGESTACK_H
 #define		__T_LARGESTACK_H
 
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 
 _LIT(KT_LargeStackStep, "T_LargeStack");
 
--- a/localisation/apparchitecture/tef/t_mimecontentpolicystep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_mimecontentpolicystep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -22,6 +20,11 @@
 */
 
 #include "t_mimecontentpolicystep.h"
+#include <centralrepository.h>
+#include <apmstd.h>
+
+//Closed content and extension information repository UID
+const TUid KClosedContentAndExtensionInfoRepositoryUID={0x10003A3F};
 
 _LIT(KPathjpg1, "z:\\system\\data\\type-r.jpg");
 _LIT(KPathjpg2, "z:\\system\\data\\propelli.jpg");
@@ -78,6 +81,7 @@
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, CCPTestIsDRMEnvelopeFileHandleL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, CCPTestIsClosedFileFileHandleL(), iApaLsSession.FlushRecognitionCache());
 	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, CCPOOMTestL(), iApaLsSession.FlushRecognitionCache());
+	HEAP_TEST_LS_SESSION(iApaLsSession, 0, 0, CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnlyL(), NO_CLEANUP);
 	}
 
 /**
@@ -91,8 +95,9 @@
  
    @SYMTestStatus Implemented
   
-   @SYMTestActions Closed types are the mime types which are listed in the ApfMimeContentPolicy.rss file.
+   @SYMTestActions Closed types are the mime types which are listed in the 10003a3f repository file.
    Calls CApfMimeContentPolicy::IsClosedType(const TDesC& aMimeType); for different closed and non-closed mime types.
+   And also it tests whether invalid mime types are not added to the list.
   
    @SYMTestExpectedResults The test checks whether IsClosedType returns ETrue for the Closed Mime types and EFalse for non-closed Mime types
  */
@@ -122,7 +127,17 @@
 	_LIT(KMimeType20, "video/mpeg");
 	_LIT(KMimeType21, "video/quicktime");
 	_LIT(KMimeType22, "video/mpeg4-generic");
-								    
+		
+    //Invalid mime types
+    _LIT(KMimeType23, "/test");
+    _LIT(KMimeType24, "test");
+    _LIT(KMimeType25, "test/");
+    _LIT(KMimeType26, "/test/");
+    _LIT(KMimeType27, "test/testmime/");
+    _LIT(KMimeType28, "/test/testmime");
+    _LIT(KMimeType29, "test\\testmime");      
+
+    
   
 	INFO_PRINTF1(_L("Tests the MIME types found on closed content list"));
     
@@ -194,6 +209,27 @@
   	
   	TEST(!iCcp->IsClosedType(KMimeType22));
   	INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType22);
+  	
+    TEST(!iCcp->IsClosedType(KMimeType23));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType23);
+   
+    TEST(!iCcp->IsClosedType(KMimeType24));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType24);
+  
+    TEST(!iCcp->IsClosedType(KMimeType25));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType25);
+
+    TEST(!iCcp->IsClosedType(KMimeType26));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType26);
+
+    TEST(!iCcp->IsClosedType(KMimeType27));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType27);
+    
+    TEST(!iCcp->IsClosedType(KMimeType28));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType28); 
+    
+    TEST(!iCcp->IsClosedType(KMimeType29));
+    INFO_PRINTF2(_L("%S is not Closed Type"), &KMimeType29);    
   	}
 
 /**
@@ -207,8 +243,9 @@
  
    @SYMTestStatus Implemented
   
-   @SYMTestActions Closed file extensions are the file extensions which are listed in the ApfMimeContentPolicy.rss file.
+   @SYMTestActions Closed file extensions are the file extensions which are listed in the 10003a3f repository.
    Calls CApfMimeContentPolicy::IsClosedExtension(const TDesC& aFileExtension); for different closed and non-closed File Extensions.
+   And also it tests whether invalid closed extensions are not added to the list.
   
    @SYMTestExpectedResults The test checks whether IsClosedExtension returns ETrue for the Closed File Extensions and EFalse for non-closed File Extensions.
  */
@@ -231,6 +268,9 @@
 	_LIT(KExtension14, ".sis7");
 	_LIT(KExtension15, ".0sis");
 	_LIT(KExtension16, ".gif");
+	
+	//Invalid extension
+    _LIT(KExtension17, "tst");	
 
     INFO_PRINTF1(_L("Tests the extensions found on closed content list"));
 	
@@ -284,6 +324,9 @@
 	
 	TEST(!iCcp->IsClosedExtension(KExtension16));
 	INFO_PRINTF2(_L("%S is not Closed Extension"), &KExtension16);
+	
+    TEST(!iCcp->IsClosedExtension(KExtension17));
+    INFO_PRINTF2(_L("%S is not Closed Extension"), &KExtension17);	
 	}
 
 /**
@@ -324,7 +367,7 @@
  
    @SYMTestStatus Implemented
   
-   @SYMTestActions Closed files are files whose file extensions are listed in the ApfMimeContentPolicy.rss file.
+   @SYMTestActions Closed files are files whose file extensions are listed in the 10003a3f repository.
    Calls CApfMimeContentPolicy::IsClosedFileL(const TDesC& aFileName); for different Closed and non-closed files.
    Calls CApfMimeContentPolicy::IsClosedFileL(const TDesC& aFileName); with file which is already open and checks whether \n
    call succeeds.
@@ -429,7 +472,7 @@
  
    @SYMTestStatus Implemented
   
-   @SYMTestActions Closed files are files whose file extensions are listed in the ApfMimeContentPolicy.rss file.
+   @SYMTestActions Closed files are files whose file extensions are listed in the 10003a3f repository.
    Calls CApfMimeContentPolicy::IsClosedFileL(RFile& aFileHandle); for different Closed and non-closed files.
      
    @SYMTestExpectedResults The test checks whether IsClosedFileL() returns EFalse for Files which are not closed and\n
@@ -510,3 +553,59 @@
 	__UHEAP_RESET;	
 	INFO_PRINTF1(_L("OOM test Completed"));	
 	}
+
+
+/**
+   @SYMTestCaseID APPFWK-APPARC-0108
+
+   @SYMREQ REQ410-2692
+ 
+   @SYMTestCaseDesc Tests Closed content and extension information repository is not writable.
+  
+   @SYMTestPriority High 
+ 
+   @SYMTestStatus Implemented
+  
+   @SYMTestActions Calls create, get, set, reset, delete functions on the repository. Checks only read operations are allowed.
+     
+   @SYMTestExpectedResults Tests should complete without any failure.
+ */
+
+void CT_MimeContentPolicyStep::CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnlyL()
+    {
+    INFO_PRINTF1(_L("Testcase CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnly...."));   
+    CRepository *cenrep=CRepository::NewL(KClosedContentAndExtensionInfoRepositoryUID);  
+    CleanupStack::PushL(cenrep);
+    TInt newKeyValue=0x00010000;
+    //This key already exists in the default Closed content and extension information repository
+    TInt existingKey=0x1;
+    TBuf<KMaxDataTypeLength> keyData;
+    TInt err=KErrNone;
+    
+    INFO_PRINTF1(_L("Testing creation of key in the repository"));
+    err=cenrep->Create(newKeyValue, 0);
+    TEST(err==KErrPermissionDenied);
+    INFO_PRINTF2(_L("Error code while creating a key: %d"), err);
+    
+    INFO_PRINTF1(_L("Testing setting value of an existing key in the repository"));    
+    err=cenrep->Set(existingKey, 0);
+    TEST(err==KErrPermissionDenied);
+    INFO_PRINTF2(_L("Error code while setting a value of an existing key: %d"), err);
+    
+    INFO_PRINTF1(_L("Testing getting value of an existing key in the repository"));
+    err=cenrep->Get(existingKey, keyData);
+    TEST(err==KErrNone);
+    INFO_PRINTF2(_L("Error code while getting a value of an existing key: %d"), err);
+    
+    INFO_PRINTF1(_L("Testing resetting value of an existing key in the repository"));
+    err=cenrep->Reset(existingKey);
+    TEST(err==KErrPermissionDenied);
+    INFO_PRINTF2(_L("Error code while reseting a value of existing key: %d"), err);
+
+    INFO_PRINTF1(_L("Testing deleting an existing key in the repository"));
+    err=cenrep->Delete(existingKey);
+    TEST(err==KErrPermissionDenied);
+    INFO_PRINTF2(_L("Error code while deleting an existing key: %d"), err);
+    CleanupStack::PopAndDestroy(cenrep);
+    INFO_PRINTF1(_L("Testcase CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnly completed...."));    
+    }
--- a/localisation/apparchitecture/tef/t_mimecontentpolicystep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_mimecontentpolicystep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -25,8 +23,8 @@
 #define __T_MIMECONTENTPOLICY_STEP_H__
 
 #include "testableapalssession.h"
-#include "appfwk_test_AppUi.h"
-#include <ApfMimeContentPolicy.h>
+#include "appfwk_test_appui.h"
+#include <apfmimecontentpolicy.h>
 
 _LIT(KT_MimeContentPolicyStep,"t_mimecontentpolicy");
 
@@ -48,6 +46,7 @@
     // aIsDRMEnvelope is ETrue for DRM Envelope and EFalse for ClosedFile
     TBool DoCCPTestUsingFileHandleL(const TDesC &aName, TBool aIsDRMEnvelope);
     void CCPOOMTestL();
+    void CCPTestIsClosedContentAndExtenstionInfoRepositoryReadOnlyL();
 
 private:
 	CApfMimeContentPolicy* iCcp;
--- a/localisation/apparchitecture/tef/t_rapalssessionstep.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_rapalssessionstep.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file r_rapalssessionstep.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/t_servicebasestep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_servicebasestep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,7 +22,7 @@
 #include "t_servicebasestep.h"
 #include <apaserverapp.h>
 #include <w32std.h>
-#include <appfwk_test.h>
+#include "appfwk_test.h"
 #include "testableapalssession.h"
 #include "../tef/TNonNative/TNNApp1.h"
 
@@ -87,7 +85,6 @@
 	
 	return result;
 	}
-	
 TInt RTstServiceApp::DoTestTransferWithUnconnectedSessionL(TUid aServiceUid, TBool aPassingFileByHandle, const TDesC& aFileNameWithoutDriveOrPath)
 	{ // static
 	//create the first session object
--- a/localisation/apparchitecture/tef/t_servicebasestep.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_servicebasestep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/t_winchainChild.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_winchainChild.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -24,8 +24,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -40,21 +38,21 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
-#include <eikstart.h> ////TKAS added for exe-app
+#include <mw/eikmenup.h>
+#include <eikstart.h> //TKAS added for exe-app
 
 #include <eikserverapp.h> // REikAppServiceBase
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
 //  Test stuff
-#include "twindowchaining.h"
+#include "TWindowChaining.h"
 
 class CPackagerAppUi;
 
 
-////////////////////////////////////////////////////////////////////////
+//
 // CMyAppService
-////////////////////////////////////////////////////////////////////////
+//
 class CMyAppService : public CApaAppServiceBase
 	{
 private:
@@ -63,9 +61,9 @@
 	};
 	
 
-////////////////////////////////////////////////////////////////////////
+//
 // CMyEikAppServer
-////////////////////////////////////////////////////////////////////////	
+//	
 class CMyEikAppServer : public CEikAppServer
 	{
 private:
@@ -73,11 +71,11 @@
 	};
 
 	
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CChainChildApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CChainChildApplication : public CEikApplication
 	{
 public:
@@ -95,11 +93,11 @@
 	TUid AppDllUid() const;
 	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CChainChildAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CChainChildAppUi : public CEikAppUi
     {
 public:
@@ -123,11 +121,11 @@
 	};
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CChainChildDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CChainChildDocument : public CEikDocument
 	{
 public:
@@ -141,3 +139,4 @@
 
 
 #endif // T_WINCHAINCHILD
+
--- a/localisation/apparchitecture/tef/t_winchainChild.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_winchainChild.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,13 +15,11 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
 epocstacksize 		0x5000
 
 TARGETPATH		/sys/bin
 
-TARGET			t_winchainChild.exe
+TARGET			t_winchainchild.exe
 TARGETTYPE		exe
 
 UID           		0x100039CE 0X10009e9f
@@ -33,16 +31,16 @@
 SOURCE        		t_winchainChild_Application.cpp
 
 USERINCLUDE   		.
+USERINCLUDE   	../tef
 
-SYSTEMINCLUDE 		/epoc32/include
-SYSTEMINCLUDE 		/epoc32/include/techview
-SYSTEMINCLUDE		/epoc32/include/test
-SYSTEMINCLUDE   	../tef
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 		/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
-
-LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib ws32.lib APPFWK_TEST_APPUI.LIB
+LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib ws32.lib appfwk_test_appui.lib
 
 START RESOURCE		t_winchainChild_reg.rss
 TARGETPATH		/private/10003a3f/apps
 END
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/t_winchainChild_Application.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_winchainChild_Application.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,14 +16,12 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
 */
 
-#include "t_winChainChild.h"
+#include "t_winchainChild.h"
 
 
 /**   The function is called by the UI framework to ask for the
@@ -205,3 +203,4 @@
 
 
     
+
--- a/localisation/apparchitecture/tef/t_winchainChild_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_winchainChild_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file t_winchainChild_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/t_winchainLaunch.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_winchainLaunch.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -20,8 +20,6 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
@@ -36,22 +34,22 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
-#include <eikstart.h> ////TKAS added for exe-app
+#include <mw/eikmenup.h>
+#include <eikstart.h> //TKAS added for exe-app
 
 #include <eikserverapp.h> // REikAppServiceBase
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
 //  Test stuff
-#include "twindowchaining.h"
+#include "TWindowChaining.h"
 
 class CPackagerAppUi;
 	
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CChainLaunchApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CChainLaunchApplication : public CEikApplication
 	{
@@ -63,11 +61,11 @@
 	};
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CChainLaunchAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CChainLaunchAppUi : public CEikAppUi, REikAppServiceBase
     {
 public:
@@ -91,11 +89,11 @@
 	};
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CChainLaunchDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CChainLaunchDocument : public CEikDocument
 	{
 public:
@@ -109,3 +107,4 @@
 
 
 #endif // T_WINCHAINLAUNCH
+
--- a/localisation/apparchitecture/tef/t_winchainLaunch.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_winchainLaunch.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,13 +15,11 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
 epocstacksize 		0x5000
 
 TARGETPATH		/sys/bin
 
-TARGET			t_winchainLaunch.exe
+TARGET			t_winchainlaunch.exe
 TARGETTYPE		exe
 
 UID           		0x100039CE 0X10009f9a
@@ -33,16 +31,16 @@
 SOURCE        		t_winchainLaunch_Application.cpp
 
 USERINCLUDE   		.
+USERINCLUDE   	../tef
 
-SYSTEMINCLUDE 		/epoc32/include
-SYSTEMINCLUDE 		/epoc32/include/techview
-SYSTEMINCLUDE		/epoc32/include/test
-SYSTEMINCLUDE   	../tef
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 		/epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
-
-LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib ws32.lib APPFWK_TEST_APPUI.LIB
+LIBRARY       		euser.lib apparc.lib cone.lib eikcore.lib ws32.lib appfwk_test_appui.lib
 
 START RESOURCE		t_winchainLaunch_reg.rss
 TARGETPATH		/private/10003a3f/apps
 END
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/t_winchainLaunch_Application.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_winchainLaunch_Application.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,13 +16,12 @@
 // 
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
 */
-#include "t_winChainLaunch.h"
+//
+#include "t_winchainLaunch.h"
 
 /**   The function is called by the UI framework to ask for the
       application's UID. The returned value is defined by the
--- a/localisation/apparchitecture/tef/t_winchainLaunch_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/t_winchainLaunch_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file t_winchainLaunch_reg.rss
  @internalComponent - Internal Symbian test code
--- a/localisation/apparchitecture/tef/tapparctestapp_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tapparctestapp_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file 
  @test
@@ -36,3 +34,4 @@
 			}
 		};
 	}
+
--- a/localisation/apparchitecture/tef/testableapalssession.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/testableapalssession.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,19 +13,18 @@
 // Description:
 // RTestableApaLsSession is used to make it possible to heap test a RApaLsSession
 // 
+// testableapalssession.cpp
 //
 
-
-
 /**
- @file
+ @file testableapalssession.cpp
  @internalComponent - Internal Symbian test code 
 */
 
 
 
 #include "testableapalssession.h"
-#include "../apserv/APSCLSV.H"
+#include "../apserv/apsclsv.h"
 
 
 /**
--- a/localisation/apparchitecture/tef/testableapalssession.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/testableapalssession.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/testapp/testforceregistrationapp1/testforceregistrationapp1.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,23 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// testforceregistrationapp1.cpp
+//
+
+
+#include<e32def.h>
+
+TInt E32Main()
+{
+return(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/testapp/testforceregistrationapp1/testforceregistrationapp1.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,37 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// testforceregistrationapp1.mmp
+//
+
+target          testforceregistrationapp1.exe
+targettype      EXE
+UID             0x1000007a 0x102826E0
+
+
+systeminclude   /epoc32/include
+
+source	 ./testforceregistrationapp1.cpp
+
+
+START RESOURCE      testforceregistrationapp1_reg.rss
+    TARGETPATH      \apparctest
+END
+
+START RESOURCE      testforceregistrationapp1_loc.rss
+    TARGETPATH      \apparctest
+END
+
+library  euser.lib
+
+SMPSAFE
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/testapp/testforceregistrationapp1/testforceregistrationapp1_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,30 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// testforceregistrationapp1_loc.rss
+//
+
+#include <appinfo.rh>
+
+RESOURCE LOCALISABLE_APP_INFO
+	{
+	short_caption = "TestForceReg";
+	caption_and_icon = 
+		{
+		CAPTION_AND_ICON_INFO
+			{
+			caption = "TestForceRegistration";
+			number_of_icons = 0;
+			}
+		};
+	}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/testapp/testforceregistrationapp1/testforceregistrationapp1_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,26 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// testforceregistrationapp1_reg.rss
+//
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x102826E0
+
+RESOURCE APP_REGISTRATION_INFO 
+    {
+    app_file="testforceregistrationapp1";
+    localisable_resource_file="\\resource\\apps\\testforceregistrationapp1_loc";    
+    }
\ No newline at end of file
--- a/localisation/apparchitecture/tef/testapp/testupdregappuninstallation/testupdregappuninstallation.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/testapp/testupdregappuninstallation/testupdregappuninstallation.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/testapp/testupdregappuninstallation/testupdregappuninstallation.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/testapp/testupdregappuninstallation/testupdregappuninstallation.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
@@ -24,14 +24,15 @@
 targettype      EXE
 UID             0x1000007a 0x10207f80
 
-
-systeminclude   /epoc32/include
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 source	 ./TestUpdRegAppUninstallation.cpp
 
 
 START RESOURCE      testupdregappuninstallation_reg.rss
-    TARGETPATH      c:\private\10003a3f\import\apps
+    TARGETPATH      /private/10003a3f/import/apps
 END
 
 library  euser.lib
+
+SMPSAFE
\ No newline at end of file
--- a/localisation/apparchitecture/tef/testapp/testupdregappuninstallation/testupdregappuninstallation_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/testapp/testupdregappuninstallation/testupdregappuninstallation_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/testapp/testupgradeupdregappuninstallation/testupgradeupdregappuninstallation.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,21 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include<e32def.h>
+
+TInt E32Main()
+{
+return(0);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/testapp/testupgradeupdregappuninstallation/testupgradeupdregappuninstallation.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+//
+// testupdregappuninstallation.mmp
+//
+
+
+target          testupdregappuninstallation.exe
+CAPABILITY 		All -Tcb
+targettype      EXE
+UID            	0x1000007a 0x10207f7f
+
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+source	 ./testupgradeupdregappuninstallation.cpp
+
+
+START RESOURCE      testupgradeupdregappuninstallation_reg.rss
+    TARGETPATH      /private/10003a3f/import/apps
+END
+
+library  euser.lib
+
+SMPSAFE
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/testapp/testupgradeupdregappuninstallation/testupgradeupdregappuninstallation_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,31 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x10207f80
+
+RESOURCE APP_REGISTRATION_INFO 
+    {
+    app_file="TestUpdRegAppUninstallation";
+
+	// MIME types
+	datatype_list= 
+		{
+		DATATYPE { priority=EDataTypePriorityNormal; type="mime/updregappuninstall"; },
+		DATATYPE { priority=EDataTypePriorityNormal; type="mime/upgradeupdregappuninstall"; }
+		}; 
+    }
--- a/localisation/apparchitecture/tef/ticoncaptionoverride.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverride.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/ticoncaptionoverride.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverride.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @internalComponent - Internal Symbian test code
@@ -28,7 +26,7 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 #include <w32std.h>
 
 const TUid KUidTestIconCapOverride = {0x2001B674};
@@ -90,3 +88,5 @@
     };
 
 #endif // __TICONCAPTIONOVERRIDE_H__
+
+
--- a/localisation/apparchitecture/tef/ticoncaptionoverride.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverride.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,12 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code 
 */
 
-#include <platform_paths.hrh>
 
 TARGET        	ticoncaptionoverride.exe
 TARGETTYPE    	exe
@@ -36,10 +33,8 @@
 SOURCE        	ticoncaptionoverride.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
-
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
 //reg added for Datacaging
 START RESOURCE	ticoncaptionoverride_reg.rss
@@ -65,7 +60,9 @@
 START BITMAP 	ticoncapoverride02.m02
 TARGETPATH 		/resource/apps
 SOURCEPATH 		../tdatasrc
-SOURCE 			c8,1 DEF25.BMP DEF25M.BMP DEF25.BMP DEF25M.BMP DEF50.BMP DEF50M.BMP
+SOURCE 			c8,1 def25.bmp def25m.bmp def25.bmp def25m.bmp def50.bmp def50m.bmp
 END
 
 LIBRARY 	euser.lib apparc.lib eikcore.lib cone.lib 
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/ticoncaptionoverride.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverride.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,8 +22,8 @@
 
 NAME TICO
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 
 #include "TSTAPP.hrh"
 
--- a/localisation/apparchitecture/tef/ticoncaptionoverride01.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverride01.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/ticoncaptionoverride02.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverride02.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/ticoncaptionoverride03.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverride03.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/ticoncaptionoverride_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverride_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -46,3 +44,4 @@
 			}
 		};		
 	}
+
--- a/localisation/apparchitecture/tef/ticoncaptionoverride_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverride_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -38,3 +36,4 @@
 	embeddability=KAppEmbeddable;
 	newfile = KAppDoesNotSupportNewFile;
 	}
+
--- a/localisation/apparchitecture/tef/ticoncaptionoverridesc.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/ticoncaptionoverridesc.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/tlargestack/tlargestackapp.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tlargestack/tlargestackapp.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -31,11 +29,12 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
 #include <tlargestackapp.rsg>
 #include "tlargestackapp.hrh"
 
 #endif
+
--- a/localisation/apparchitecture/tef/tlargestack/tlargestackapp.hrh	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tlargestack/tlargestackapp.hrh	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -29,3 +27,4 @@
 	EExampleItem1,
 	EExampleItem2
 	};
+
--- a/localisation/apparchitecture/tef/tlargestack/tlargestackapp.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tlargestack/tlargestackapp.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,15 +13,12 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
 
 TARGET        tlargestackapp.exe
 TARGETTYPE    exe
@@ -33,14 +30,14 @@
 SOURCEPATH    .
 SOURCE        tlargestackapp_main.cpp
 USERINCLUDE   .
-SYSTEMINCLUDE /epoc32/include
-SYSTEMINCLUDE /epoc32/include/techview
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE /epoc32/include/techview
 
 START RESOURCE	tlargestackapp.rss
 HEADER
-TARGETPATH		/Resource/Apps
+TARGETPATH		/resource/apps
 end
 
 START RESOURCE	tlargestackapp_reg.rss
@@ -48,3 +45,5 @@
 END
 
 LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/tlargestack/tlargestackapp.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tlargestack/tlargestackapp.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,8 +22,8 @@
 
 NAME TEAP
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 #include <appinfo.rh>
 
 #include "tlargestackapp.hrh"
@@ -72,3 +70,4 @@
 RESOURCE TBUF r_example_text_Item0 { buf="Item 0"; }
 RESOURCE TBUF r_example_text_Item1 { buf="Item 1"; }
 RESOURCE TBUF r_example_text_Item2 { buf="Item 2"; }
+
--- a/localisation/apparchitecture/tef/tlargestack/tlargestackapp_main.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tlargestack/tlargestackapp_main.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -37,3 +35,5 @@
 	array[1]=array[0]+1;		// just a line to get rid of the warning in the build
 	return KErrNone;
 	}
+
+
--- a/localisation/apparchitecture/tef/tlargestack/tlargestackapp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tlargestack/tlargestackapp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -27,11 +25,11 @@
 const TUid KNotifyDrivesAppUid = { 0xA0003376 };
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the application class - CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 TUid CExampleApplication::AppDllUid() const
 	{
@@ -44,11 +42,11 @@
 	}
 	
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the appui class - CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 void CExampleAppUi::ConstructL()
     {
@@ -73,11 +71,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the view class - CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 CExampleAppView::CExampleAppView()
 	{
@@ -143,11 +141,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the document class - CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 CExampleDocument::CExampleDocument(CEikApplication& aApp)
 		: CEikDocument(aApp)
--- a/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -28,15 +26,15 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
-#include <eikon.hrh>
+#include <mw/eikmenup.h>
+#include <mw/eikon.hrh>
 #include <tnotifydrivesapp.rsg>
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -46,11 +44,11 @@
 	TUid AppDllUid() const;
 	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -68,11 +66,11 @@
     };
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -88,11 +86,11 @@
 	};
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -106,3 +104,4 @@
 
 
 #endif
+
--- a/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,16 +15,12 @@
 // 
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
-
 TARGET        		tnotifydrivesapp.exe
 TARGETTYPE    		exe
 TARGETPATH      	/sys/bin
@@ -35,21 +31,22 @@
 SOURCE		tnotifydrivesapp.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
-
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
 SOURCEPATH	.
-RESOURCE 	tnotifydrivesapp.RSS
-START RESOURCE	tnotifydrivesapp.RSS
-TARGETPATH	/System/Data
+RESOURCE 	tnotifydrivesapp.rss
+START RESOURCE	tnotifydrivesapp.rss
+TARGETPATH	/system/data
 LANG		SC
 END
 
 SOURCEPATH	.
 START RESOURCE	tnotifydrivesapp_reg.rss
-TARGETPATH /System/Data
+TARGETPATH /system/data
 END
 
 LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -23,8 +21,8 @@
 
 NAME TEAP
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 #include <appinfo.rh>
 
 RESOURCE RSS_SIGNATURE { }
@@ -33,4 +31,4 @@
 
 RESOURCE EIK_APP_INFO
 	{
-	}
+	}
\ No newline at end of file
--- a/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tnotifydrivesapp/tnotifydrivesapp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/trecupgrade/a000b461.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/trecupgrade/a000b461.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -12,10 +12,9 @@
 //
 // Description:
 // 0xA000B461.rss
-// 
 //
 
-#include <registryinfo.rh>
+#include <ecom/registryinfo.rh>
 
 
 RESOURCE REGISTRY_INFO r_registry
--- a/localisation/apparchitecture/tef/trecupgrade/recupgrade.MMP	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/trecupgrade/recupgrade.MMP	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -12,7 +12,6 @@
 //
 // Description:
 // recupgrade.dll Symbian OS new MIME type recognizer
-// 
 //
 
 
@@ -29,13 +28,16 @@
 VENDORID 	0x70000001
 CAPABILITY	All -Tcb
 
-systeminclude   /epoc32/include /epoc32/include/ecom /epoc32/include/test
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+//systeminclude   /epoc32/include/ecom
 
 SOURCEPATH	.
 source		recupgrade.cpp
 
 library         euser.lib apmime.lib efsrv.lib
 
-start resource a000b461.rss
+start resource A000B461.rss
 target recupgrade.rsc
 end
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/trecupgrade/recupgrade.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/trecupgrade/recupgrade.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,16 +13,16 @@
 // Description:
 //
 
-#include <implementationproxy.h>
+#include <ecom/implementationproxy.h>
 
 #include "recupgrade.h"
 #include "upgconstants.h"
 
-/////////////////////////////////////////////////
+//
 
 const TInt KMaxBufferLength=1024; // maximum amount of buffer space we will ever use
 
-/////////////////////////////////////////////////
+//
 
 /*
 DLL entry point
--- a/localisation/apparchitecture/tef/trecupgrade/recupgrade.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/trecupgrade/recupgrade.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/localisation/apparchitecture/tef/trecupgrade/upgconstants.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/trecupgrade/upgconstants.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,14 +25,17 @@
 
 
 _LIT(KUpgDocPath, "Z:\\system\\data\\TApsRecogUpgradeTest.upg");
+_LIT(KUprDocPath, "Z:\\system\\data\\TApsRecogUpgradeTest.upr");
 _LIT(KUpgRscTargetDir,"C:\\resource\\plugins\\");
 _LIT(KUpgDllTargetDir,"C:\\sys\\bin\\");
 _LIT(KUpgRscSourcePath, "Z:\\system\\data\\recupgrade.rsc");
+_LIT(KUprRscSourcePath, "Z:\\system\\data\\recupgrade2.rsc");
 _LIT(KUpgRscTargetPath,"C:\\resource\\plugins\\recupgrade.rsc");
 _LIT(KUpgDllTargetPath, "C:\\sys\\bin\\recupgrade.dll");
-_LIT(KUpgDllSourcePathWinscw, "Z:\\system\\data\\recupgrade_winscw_rel.dll");
 _LIT(KUpgDllSourcePathArmv5, "Z:\\system\\data\\recupgrade_armv5_rel.dll");
+_LIT(KUprDllSourcePathArmv5, "Z:\\system\\data\\recupgrade2_armv5_rel.dll");
 _LIT8(KMimeUpgType,"mime/upg");
+_LIT8(KMimeUprType,"mime/upr");
 
 #define KUidUpgradeRecognizerValue 0xA000B461
 
--- a/localisation/apparchitecture/tef/tssaac/SysStartApparcTestCases.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/SysStartApparcTestCases.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -22,12 +22,11 @@
 // As nearly all these test cases panic at the first client-server call and so execution of these test cases
 // will never reach the end of the function.
 // 
+// sysstartapparctestcases.cpp
 //
 
-
-
 /**
- @file
+ @file sysstartapparctestcases.cpp
  @test
  @internalComponent - Internal Symbian test code
 */
@@ -35,7 +34,7 @@
 #include <apacmdln.h>
 #include <s32file.h>
 
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include "T_SysStartApparcStep.h"
 #include "SysStartApparcTestCases.h"
 #include "TRApaLsSessionStartAppTest.h"
--- a/localisation/apparchitecture/tef/tssaac/SysStartApparcTestCases.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/SysStartApparcTestCases.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -84,3 +82,4 @@
 	};
 
 #endif
+
--- a/localisation/apparchitecture/tef/tssaac/scripts/emulator/sysstart_apparc_checkEpocWind.bat	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/scripts/emulator/sysstart_apparc_checkEpocWind.bat	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of the License "Eclipse Public License v1.0"
+@rem under the terms of "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
 @rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
 @rem
--- a/localisation/apparchitecture/tef/tssaac/scripts/emulator/sysstart_apparc_run.bat	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/scripts/emulator/sysstart_apparc_run.bat	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of the License "Eclipse Public License v1.0"
+@rem under the terms of "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
 @rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
 @rem
@@ -23,19 +23,20 @@
 
 :test
 	set TEST_CASE=%1
-	set TESTCASE_NUMBER=%2
-	set EPOCWIND_COPY=\epoc32\winscw\c\logs\testexecute\apparctest_%TEST_CASE%_epocwind.out
+	set TEST_BOOTMODE=%2
+	set TESTCASE_NUMBER=%3
+	set EPOCWIND_COPY=\epoc32\winscw\c\logs\testexecute\apparctest_%TEST_CASE%_epocwind_%TEST_BOOTMODE%.out
 	set EPOCWIND_ORIG=%TEMP%\epocwind.out
 
-	call z\apparctest\sysstart_apparc_setup.bat install   %TEST_CASE% %TESTCASE_NUMBER%
+	call z\apparctest\sysstart_apparc_setup.bat inst   %TEST_CASE% %TEST_BOOTMODE% %TESTCASE_NUMBER%
 
 	echo testexecute.exe z:\apparctest\apparctest_%TEST_CASE%.script
 	testexecute.exe z:\apparctest\apparctest_%TEST_CASE%.script
 
-	call z\apparctest\sysstart_apparc_setup.bat uninstall %TEST_CASE% 
+	call z\apparctest\sysstart_apparc_setup.bat uninst %TEST_CASE% %TEST_BOOTMODE%
 
 	copy %EPOCWIND_ORIG% %EPOCWIND_COPY% >NUL
-	call :updateTestSummary
+	call :updateTestSummary %TEST_BOOTMODE%
 goto :EOF
 
 :checkLog
@@ -48,33 +49,50 @@
 	type %SEARCH_FILE% | find /c %SEARCH_STRING%>%TEMP_FILE%
 	for /f "delims=\" %%i in ('type %TEMP_FILE%') do set LOG_COUNT=%%i
 	del %TEMP_FILE%
-	if "%EXPECTED_COUNT%" ==  "%LOG_COUNT%" goto :EOF
-	if "%EXPECTED_COUNT%" NEQ "%LOG_COUNT%" set TEST_RESULT_FLAG=FAIL
+	if %EXPECTED_COUNT% ==  %LOG_COUNT% goto :EOF
+	if %EXPECTED_COUNT% NEQ %LOG_COUNT% set TEST_RESULT_FLAG=FAIL
 goto :EOF
 
 :updateTestSummary
 	set TEST_RESULT_FLAG=PASS
-	call :checkLog \epoc32\winscw\c\logs\testexecute\apparctest_%TEST_CASE%.htm "%TEST_CASE% ***Result = PASS" 1
+	set TEST_BOOTMODE = %1
+	ren \epoc32\winscw\c\logs\testexecute\apparctest_%TEST_CASE%.htm apparctest_%TEST_CASE%_%TEST_BOOTMODE%.htm > NUL
+	call :checkLog \epoc32\winscw\c\logs\testexecute\apparctest_%TEST_CASE%_%TEST_BOOTMODE%.htm "%TEST_CASE% ***Result = PASS" 1
 	echo %TEST_CASE% - %TEST_RESULT_FLAG% >> %SYSSTART_APPARCTEST_SUMMARY%
 goto :EOF
 
 :skipFunctions 
     
 :: SysStart Apparc Function call tests
-call :test T_TestStartApp1L		01  
-call :test T_TestStartApp2L		02        
-call :test T_TestStartApp3L		03     
-call :test T_TestStartApp4L		04	   
-call :test T_TestStartApp5L		05     
-call :test T_TestStartApp6L		06     
-call :test T_TestGetAllApps		07     
-call :test T_TestInsertDataTypeL	08
-call :test T_TestAppForDataTypeL	09 
-call :test T_TestDeleteDataTypeL	10 
-call :test T_TestServiceDiscovery	11  
-call :test T_TestGetAppInfo     	12
-call :test T_TestAppCount	    	13
-call :test T_TestCreateDoc      	14
-call :test T_TestLocalisedCaptionL	29
+call :test T_TestStartApp1L		fb	01  
+call :test T_TestStartApp1L		ss	01  
+call :test T_TestStartApp2L		fb	02        
+call :test T_TestStartApp2L		ss	02        
+call :test T_TestStartApp3L		fb	03     
+call :test T_TestStartApp3L		ss	03     
+call :test T_TestStartApp4L		fb	04 
+call :test T_TestStartApp4L		ss	04 
+call :test T_TestStartApp5L		fb	05     
+call :test T_TestStartApp5L		ss	05     
+call :test T_TestStartApp6L		fb	06     
+call :test T_TestStartApp6L		ss	06     
+call :test T_TestGetAllApps		fb	07     
+call :test T_TestGetAllApps		ss	07     
+call :test T_TestInsertDataTypeL	fb	08
+call :test T_TestInsertDataTypeL	ss	08
+call :test T_TestAppForDataTypeL	fb	09 
+call :test T_TestAppForDataTypeL	ss	09 
+call :test T_TestDeleteDataTypeL	fb	10 
+call :test T_TestDeleteDataTypeL	ss	10 
+call :test T_TestServiceDiscovery	fb	11  
+call :test T_TestServiceDiscovery	ss	11  
+call :test T_TestGetAppInfo     	fb	12
+call :test T_TestGetAppInfo     	ss	12
+call :test T_TestAppCount	    	fb	13
+call :test T_TestAppCount	    	ss	13
+call :test T_TestCreateDoc      	fb	14
+call :test T_TestCreateDoc      	ss	14
+call :test T_TestLocalisedCaptionL	fb	29
+call :test T_TestLocalisedCaptionL	ss	29
 
 endlocal
--- a/localisation/apparchitecture/tef/tssaac/scripts/emulator/sysstart_apparc_setup.bat	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/scripts/emulator/sysstart_apparc_setup.bat	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of the License "Eclipse Public License v1.0"
+@rem under the terms of "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
 @rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
 @rem
@@ -18,27 +18,41 @@
 
 :: Initialise local variables
 set COMMAND_CHOICE=%1
-set RSC_LOCATION=Z\private\10205C44
 set TEST_CASE=%2
-set TESTCASE_NUMBER=%3
-set TEST_RSC=%RSC_LOCATION%\tssaac_emulator.RSC
-set TEST_EXE_RSC=%RSC_LOCATION%\tssaac_tapp_emulator.RSC
-set SM0_RSC=%RSC_LOCATION%\SSCForStartupMode0.RSC
+set TEST_BOOTMODE=%3
+set TESTCASE_NUMBER=%4
+
+set FALLBACK_RSC_LOCATION=Z\private\10205C44
+set FALLBACK_TEST_RSC=%FALLBACK_RSC_LOCATION%\tssaac_emulator.RSC
+set FALLBACK_TEST_EXE_RSC=%FALLBACK_RSC_LOCATION%\tssaac_tapp_emulator.RSC
+set FALLBACK_SM0_RSC=%FALLBACK_RSC_LOCATION%\SSCForStartupMode0.RSC
+
+set SSMA_RSC_LOCATION=Z\private\2000d75b\startup\0
+set SSMA_RSC_NAME=0
+set SSMA_RSC_LOCATION_ORIGINAL=Z\private\2000d75b\startup\0.original
+set SSMA_RSC_NAME_ORIGINAL=0.original
+set SSMA_SM0_RSC=%SSMA_RSC_LOCATION%\gsastartupcmdlist0.rsc
+set SSMA_RSC_TEST_LOCATION=Z\private\2000d75b\startup\test\tssaac_emulator_ssma.RSC
+set SSMA_RSC_TEST_EXE_LOCATION=Z\private\2000d75b\startup\test\tssaac_tapp_emulator_ssma.RSC
+set SSMA_SM0_RSC_LOCATION=Z\private\2000d75b\startup\test\gsastartupcmdlist0.rsc
+
 
 set TESTCASE_CONFIG=z\apparctest\TestCaseConfig.txt
 set EPOCWIND=%TEMP%\epocwind.out
 set TESTNONPANIC_RESULT_FILE=\epoc32\winscw\c\SysStartApparc_TestNonPanic.txt
 
-goto :%COMMAND_CHOICE%
+set CHOICE=%COMMAND_CHOICE%%TEST_BOOTMODE%
+goto :%CHOICE%
 
-:install
-	if not exist "%TEST_RSC%" echo SysStart Test: ERROR - test resource file does not exist & goto :EOF
-	if not exist "%TEST_EXE_RSC%" echo SysStart Test: ERROR - test resource file does not exist & goto :EOF
+:instfb
+	if exist "%SSMA_RSC_LOCATION%" ren %SSMA_RSC_LOCATION% %SSMA_RSC_NAME_ORIGINAL%
+	if not exist "%FALLBACK_TEST_RSC%" echo SysStart Test: ERROR - test resource file does not exist & goto :EOF
+	if not exist "%FALLBACK_TEST_EXE_RSC%" echo SysStart Test: ERROR - test resource file does not exist & goto :EOF
 
-	if not exist %SM0_RSC%.original copy %SM0_RSC% %SM0_RSC%.original > NUL
+	if not exist %FALLBACK_SM0_RSC%.original copy %FALLBACK_SM0_RSC% %FALLBACK_SM0_RSC%.original > NUL
 	
-	if /i "%TEST_CASE%" NEQ "T_TestLocalisedCaptionL" copy %TEST_RSC% %SM0_RSC% > NUL
-	if /i "%TEST_CASE%" == "T_TestLocalisedCaptionL" copy %TEST_EXE_RSC% %SM0_RSC% > NUL
+	if /i "%TEST_CASE%" NEQ "T_TestLocalisedCaptionL" copy %FALLBACK_TEST_RSC% %FALLBACK_SM0_RSC% > NUL
+	if /i "%TEST_CASE%" == "T_TestLocalisedCaptionL" copy %FALLBACK_TEST_EXE_RSC% %FALLBACK_SM0_RSC% > NUL
 	
 	if exist %TESTCASE_CONFIG% del %TESTCASE_CONFIG%
 	if exist %TESTNONPANIC_RESULT_FILE% del %TESTNONPANIC_RESULT_FILE%
@@ -47,8 +61,43 @@
 
 goto :EOF
 
-:uninstall
-	call :restore	
+:uninstfb
+	if exist %SSMA_RSC_LOCATION_ORIGINAL% ren %SSMA_RSC_LOCATION_ORIGINAL% %SSMA_RSC_NAME% > NUL
+	if exist %FALLBACK_SM0_RSC%.original copy %FALLBACK_SM0_RSC%.original %FALLBACK_SM0_RSC% > NUL
+	if exist %FALLBACK_SM0_RSC%.original del %FALLBACK_SM0_RSC%.original
+
+	:: TestStartApp1L and TestLocalisedCaptionL are the only non-paniccing test cases
+	if /i %TEST_CASE% == "T_TestStartApp1L" goto :bypass
+	if /i %TEST_CASE% == "T_TestLocalisedCaptionL" goto :bypass
+
+	call :test
+	:bypass
+	if exist %EPOCROOT%epoc32\winscw\c\T_SSAAC_PanicResultFile.txt del %EPOCROOT%epoc32\winscw\c\T_SSAAC_PanicResultFile.txt
+goto :EOF
+
+:instss
+	if not exist "%SSMA_RSC_TEST_LOCATION%" echo Ssma Test: ERROR - test resource file does not exist %SSMA_RSC_TEST_LOCATION% & goto :EOF
+	if not exist "%SSMA_RSC_TEST_EXE_LOCATION%" echo Ssma Test: ERROR - test resource file does not exist %SSMA_RSC_TEST_EXE_LOCATION% & goto :EOF
+
+	if exist %SSMA_SM0_RSC% copy %SSMA_SM0_RSC% %SSMA_SM0_RSC_LOCATION% > NUL
+	if exist %SSMA_SM0_RSC% del %SSMA_SM0_RSC%
+
+	
+	if /i "%TEST_CASE%" NEQ "T_TestLocalisedCaptionL" copy %SSMA_RSC_TEST_LOCATION% %SSMA_SM0_RSC% > NUL
+	if /i "%TEST_CASE%" == "T_TestLocalisedCaptionL" copy %SSMA_RSC_TEST_EXE_LOCATION% %SSMA_SM0_RSC% > NUL
+	
+	if exist %TESTCASE_CONFIG% del %TESTCASE_CONFIG%
+	if exist %TESTNONPANIC_RESULT_FILE% del %TESTNONPANIC_RESULT_FILE%
+
+	echo Test Case %TEST_CASE%=%TESTCASE_NUMBER% > %TESTCASE_CONFIG%
+
+goto :EOF
+
+:uninstss
+	if exist %SSMA_SM0_RSC_LOCATION% copy %SSMA_SM0_RSC_LOCATION% %SSMA_SM0_RSC% > NUL
+
+	if exist %SSMA_SM0_RSC_LOCATION% del %SSMA_SM0_RSC_LOCATION%
+
 	:: TestStartApp1L and TestLocalisedCaptionL are the only non-paniccing test cases
 	if /i "%TEST_CASE%" == "T_TestStartApp1L" goto :bypass
 	if /i "%TEST_CASE%" == "T_TestLocalisedCaptionL" goto :bypass
--- a/localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_buildrom.bat	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_buildrom.bat	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of the License "Eclipse Public License v1.0"
+@rem under the terms of "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
 @rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
 @rem
--- a/localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_checkEpocWind.bat	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_checkEpocWind.bat	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of the License "Eclipse Public License v1.0"
+@rem under the terms of "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
 @rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
 @rem
--- a/localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_insertlog.pl	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_insertlog.pl	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 # Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
+# under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_run.bat	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/scripts/hardware/sysstart_apparc_run.bat	Tue Aug 03 10:20:34 2010 +0100
@@ -2,7 +2,7 @@
 @rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
-@rem under the terms of the License "Eclipse Public License v1.0"
+@rem under the terms of "Eclipse Public License v1.0"
 @rem which accompanies this distribution, and is available
 @rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
 @rem
--- a/localisation/apparchitecture/tef/tssaac/tssaac.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -16,8 +16,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -157,8 +155,13 @@
 
 	CActiveScheduler* theScheduler = new (ELeave) CActiveScheduler();
 	CleanupStack::PushL(theScheduler);
-	CActiveScheduler::Install(theScheduler);
+	CActiveScheduler::Install(theScheduler);	
+
+#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+	CApparcFuncInSystart *starter = CApparcFuncInSystart::NewLC(KDmHierarchyIdStartup, KSM2AppServicesDomain3);
+#else
 	CApparcFuncInSystart *starter = CApparcFuncInSystart::NewLC(KDmHierarchyIdStartup, KAppServicesDomain3);
+#endif
 
 	starter->Start();
 
--- a/localisation/apparchitecture/tef/tssaac/tssaac.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/tssaac/tssaac.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -17,8 +17,6 @@
 // 
 //
 
-#include <platform_paths.hrh>
-
 TARGET          tssaac.exe
 TARGETTYPE      exe
 TARGETPATH      /sys/bin
@@ -28,14 +26,22 @@
 CAPABILITY      AllFiles WriteDeviceData
 
 #if defined(WINS)
-// startup with tssaac application for emulator
+// startup with tssaac application for emulator for fallback.
 START RESOURCE	tssaac_emulator.rss
-TARGETPATH		/private/10205C44
+TARGETPATH		/private/10205c44
 END
+
+#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+// startup with tssaac application for emulator for ssma.
+START RESOURCE tssaac_emulator_ssma.rss
+TARGETPATH		/private/2000d75b/startup/test
+END
+#endif //SYMBIAN_SYSTEM_STATE_MANAGEMENT
+
 #else
 // startup with tssaac application for hardware
 START RESOURCE	tssaac_hardware.rss
-TARGETPATH		/private/10205C44
+TARGETPATH		\private\10205C44
 END
 #endif
 
@@ -48,18 +54,22 @@
 USERINCLUDE     ../../tef
 USERINCLUDE     ../../../uiftestfw/inc
 
-SYSTEMINCLUDE   /EPOC32/INCLUDE
-SYSTEMINCLUDE   /EPOC32/INCLUDE/TEST
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
 
-MW_LAYER_SYSTEMINCLUDE
+#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+SYSTEMINCLUDE   /epoc32/include/ssm
+#endif //SYMBIAN_SYSTEM_STATE_MANAGEMENT
 
-LIBRARY         EUSER.LIB 
-LIBRARY         EFSRV.LIB
-LIBRARY         DOMAINCLI.LIB
-LIBRARY         ESTOR.LIB
+LIBRARY         euser.lib 
+LIBRARY         efsrv.lib
+LIBRARY         domaincli.lib
+LIBRARY         estor.lib
 
-LIBRARY     	APGRFX.LIB
-LIBRARY			APPARC.LIB
-LIBRARY			APPFWK_TEST_APPUI.LIB
-LIBRARY			TESTEXECUTEUTILS.LIB
-LIBRARY			APMIME.LIB
+LIBRARY     	apgrfx.lib
+LIBRARY			apparc.lib
+LIBRARY			appfwk_test_appui.lib
+LIBRARY			testexecuteutils.lib
+LIBRARY			apmime.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/tssaac/tssaac_emulator.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_emulator.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -33,9 +33,9 @@
 
 #include "startup.rh"
 
-/////////////////////////////////////////////
+//
 // ENTRY POINT
-/////////////////////////////////////////////
+//
 
 // THIS MUST BE THE FIRST RESOURCE. The system relies on
 // this having a resource ID of 1
@@ -44,13 +44,13 @@
 	{
 	entry_point = r_startup_state_critical_static; 
 	}
-/////////////////////////////////////////////
+//
 
 
 
-/////////////////////////////////////////////
+//
 // CRITICAL-STATIC startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_critical_static
 	{
 	id = EStartupStateCriticalStatic;
@@ -109,9 +109,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // CRITICAL-DYNAMIC startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_critical_dynamic
 	{
 	id = EStartupStateCriticalDynamic;
@@ -147,9 +147,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // Networking-CRITICAL startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO  r_startup_state_networking_critical
 	{
 	id = EStartupStateNetworkingCritical;   
@@ -180,9 +180,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // NON-CRITICAL startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_non_critical
 	{
 	id = EStartupStateNonCritical;
@@ -225,3 +225,5 @@
 			}
 		};
 	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_emulator_ssma.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,311 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Generic Startup Architecture Startup State command lists for Normal Startup resource file for Techview.
+// 
+//
+
+#include <ssm/ssmcmd.rh>
+#include <ssm/ssmsubstates.hrh>
+#include <ssm/cmdpersistreboots.rh>
+#include <ssm/cmdpersistreboots.hrh>
+
+UID2 KUidSsmCommandListResourceFile
+
+// SSM_COMMAND_LIST_ROOT must be the first resource in a command list resource file.
+// The SSM relies on this having a resource ID of 1.
+RESOURCE SSM_COMMAND_LIST_ROOT
+	{
+	command_list_mapping = r_command_list_mapping;
+	}
+
+RESOURCE SSM_COMMAND_LIST_MAPPING r_command_list_mapping
+	{
+	mappings =
+		{
+		SSM_COMMANDLISTID_TO_RESOURCEID
+			{
+			command_list_id = ESsmStartupSubStateCriticalStatic;
+			resource_id = r_critical_static_commands;
+			},
+		SSM_COMMANDLISTID_TO_RESOURCEID
+			{
+			command_list_id = ESsmStartupSubStateCriticalDynamic;
+			resource_id = r_critical_dynamic_commands;
+			},
+		SSM_COMMANDLISTID_TO_RESOURCEID
+			{
+			command_list_id = ESsmStartupSubStateNetworkingCritical;
+			resource_id = r_networking_critical_commands;
+			},
+		SSM_COMMANDLISTID_TO_RESOURCEID
+			{
+			command_list_id = ESsmStartupSubStateNonCritical;
+			resource_id = r_non_critical_commands;
+			}
+		};
+	}
+
+
+RESOURCE SSM_COMMAND_LIST r_critical_static_commands
+   	{
+	commands =
+		{
+		r_increment_boot_count
+		, r_command_publish_system_state
+		, r_command_ssmutilsrv
+		, r_command_sysmon
+		, r_command_sysagt2svr
+		, r_command_fbserv
+		, r_command_wserv
+		, r_command_set_splash_property
+		, r_command_start_splash
+		, r_command_eiksrvs
+		, r_command_tzserver
+		, r_command_tssaac
+		};
+	}
+
+RESOURCE SSM_COMMAND_LIST r_critical_dynamic_commands
+   	{
+	commands =
+		{
+		r_command_publish_system_state
+		, r_command_initialise_locale
+		, r_command_apparc
+		, r_command_shell
+		, r_command_multiple_wait
+		, r_command_remove_splash_property
+		};
+	}
+
+RESOURCE SSM_COMMAND_LIST r_networking_critical_commands
+   	{
+	commands =
+		{
+		r_command_publish_system_state
+		, r_command_c32start
+		, r_command_msexe
+		, r_command_watcher
+		};
+	}
+
+RESOURCE SSM_COMMAND_LIST r_non_critical_commands
+   	{
+	commands =
+		{
+		r_command_publish_system_state
+		, r_command_system_ams
+		, r_command_swidaemon
+		, r_command_cntsrv
+		, r_command_agsvexe
+		, r_command_fotaagent
+		, r_command_schexe
+		, r_command_ama_starter
+		};
+	}
+
+
+RESOURCE SSM_START_PROCESS_INFO r_command_ssmutilsrv
+	{
+	severity = ECmdCriticalSeverity;
+	name = "ssmutilsrv.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	retries = 2;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_sysmon
+	{
+	severity = ECmdCriticalSeverity;
+	name = "sysmon.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	retries = 2;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_sysagt2svr
+	{
+	severity = ECmdCriticalSeverity;
+	name = "SysAgt2Svr.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	retries = 2;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_fbserv
+	{
+	severity = ECmdCriticalSeverity;
+	name = "fbserv.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	retries = 1;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_wserv
+	{
+	severity = ECmdCriticalSeverity;
+	name = "wserv.exe";
+	args = "-NoShell";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_command_set_splash_property
+	{
+	severity = ECmdCriticalSeverity;
+	category = 0x2000D75B;
+	key = 0x01;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_start_splash
+	{
+	severity = ECmdCriticalSeverity;
+	name = "splash.exe";
+	execution_behaviour = ESsmFireAndForget;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_eiksrvs
+	{
+	severity = ECmdCriticalSeverity;
+	name = "eiksrvs.exe";
+	args = "-OnlyStartDependentServers";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_tssaac
+	{
+	severity = ECmdCriticalSeverity;
+	name = "tssaac.exe";
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_tzserver
+	{
+	severity = ECmdCriticalSeverity;
+	name = "tzserver.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_initialise_locale
+	{
+	name = "initialiselocale.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_apparc
+	{
+	severity = ECmdCriticalSeverity;
+	name = "apsexe.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_APP_INFO r_command_shell
+	{
+	severity = ECmdCriticalSeverity;
+	name = "shell.exe";
+	execution_behaviour = ESsmDeferredWaitForSignal;
+	viewless = 1;
+	}
+
+RESOURCE SSM_MULTIPLE_WAIT r_command_multiple_wait
+	{
+	timeout = 20000;
+	}
+
+RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_command_remove_splash_property
+	{
+	severity = ECmdCriticalSeverity;
+	category = 0x2000D75B;
+	key = 0x01;
+	value = 1;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_c32start
+	{
+	severity = ECmdCriticalSeverity;
+	name = "c32start.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_msexe
+	{
+	severity = ECmdCriticalSeverity;
+	name = "msexe.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_watcher
+	{
+	severity = ECmdCriticalSeverity;
+	name = "watcher.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_system_ams
+	{
+	name = "SystemAMS.exe";
+	args = "-boot";
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_swidaemon
+	{
+	severity = ECmdCriticalSeverity;
+	name = "swidaemon.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_cntsrv
+	{
+	severity = ECmdCriticalSeverity;
+	name = "cntsrv.exe";
+	args = "-nontransient";
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_agsvexe
+	{
+	severity = ECmdCriticalSeverity;
+	name = "agsvexe.exe";
+	args = "-nontransient";
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_fotaagent
+	{
+	name = "fotaagent.exe";
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_schexe
+	{
+	name = "schexe.exe";
+	args = "sysstartschexe";
+	}
+
+RESOURCE SSM_START_AMA_STARTER r_command_ama_starter
+	{
+	severity = ECmdIgnoreFailure;
+	dsc_id = 0x2000836D;		// removing this id will cause a rcomp failure unless dsc_id is #defined in ssmcmd.rh file.
+	}
+
+RESOURCE SSM_PUBLISH_SYSTEM_STATE r_command_publish_system_state
+	{
+	severity = ECmdCriticalSeverity;
+	}
+
+RESOURCE SSM_START_CUSTOM_COMMAND r_increment_boot_count
+	{
+	severity = ECmdCriticalSeverity;
+	execution_behaviour = ESsmWaitForSignal;
+	dllname = "cmncustomcmds.dll";
+	ordinal = 1; // Persist reboots custom command is at ordinal 1
+	dll_data = r_increment;
+	}
+
+RESOURCE SSM_COMMAND_PERSIST_REBOOTS r_increment
+	{
+	val = EIncrementBootCount;
+	}
+
--- a/localisation/apparchitecture/tef/tssaac/tssaac_hardware.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_hardware.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -33,9 +33,9 @@
 
 #include "startup.rh"
 
-/////////////////////////////////////////////
+//
 // ENTRY POINT
-/////////////////////////////////////////////
+//
 
 // THIS MUST BE THE FIRST RESOURCE. The system relies on
 // this having a resource ID of 1
@@ -44,13 +44,13 @@
 	{
 	entry_point = r_startup_state_critical_static; 
 	}
-/////////////////////////////////////////////
+//
 
 
 
-/////////////////////////////////////////////
+//
 // CRITICAL-STATIC startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_critical_static
 	{
 	id = EStartupStateCriticalStatic;
@@ -108,9 +108,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // CRITICAL-DYNAMIC startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_critical_dynamic
 	{
 	id = EStartupStateCriticalDynamic;
@@ -146,9 +146,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // Networking-CRITICAL startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO  r_startup_state_networking_critical
 	{
 	id = EStartupStateNetworkingCritical;   
@@ -179,9 +179,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // NON-CRITICAL startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_non_critical
 	{
 	id = EStartupStateNonCritical;
@@ -229,3 +229,5 @@
 			}
 		};
 	}
+
+
--- a/localisation/apparchitecture/tef/tssaac/tssaac_tapp.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_tapp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -14,12 +14,11 @@
 // This is a Startup State Aware (SSA) test application used to
 // test apparc StartApp and StartDocument functionality.
 // 
+// tssaac_tapp.cpp
 //
 
-
-
 /**
- @file
+ @file tssaac_tapp.cpp
  @test
  @internalComponent  Internal Symbian test code
 */
@@ -32,9 +31,9 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
 #include <tssaac_tapp.rsg>
 
@@ -42,16 +41,16 @@
 #include <s32file.h>
 #include "tssaac.h"
 #include <apacmdln.h>
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include "tstapp.h"
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -108,11 +107,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -148,11 +147,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -174,11 +173,11 @@
 	}
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CSysatartApparc
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CSysatartApparc : public CEikApplication
 	{
--- a/localisation/apparchitecture/tef/tssaac/tssaac_tapp.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_tapp.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,16 +13,12 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent  Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
-
 target			tssaac_tapp.exe
 TARGETTYPE 		exe
 targetpath		/sys/bin
@@ -33,8 +29,14 @@
 #if defined(WINS)
 // startup with tssaac application for emulator
 START RESOURCE	tssaac_tapp_emulator.rss
-TARGETPATH		/private/10205C44
+TARGETPATH		/private/10205c44
 END
+#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+// startup with tssaac application for emulator for ssma.
+START RESOURCE tssaac_tapp_emulator_ssma.rss
+TARGETPATH		/private/2000d75b/startup/test
+END
+#endif //SYMBIAN_SYSTEM_STATE_MANAGEMENT
 #else
 // startup with tssaac application for hardware
 START RESOURCE	tssaac_tapp_hardware.rss
@@ -49,11 +51,14 @@
 USERINCLUDE     ../../tef
 USERINCLUDE     ../../../uiftestfw/inc
 
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
-SYSTEMINCLUDE   /epoc32/include/test
 
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
+
+#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+SYSTEMINCLUDE   /epoc32/include/ssm
+#endif //SYMBIAN_SYSTEM_STATE_MANAGEMENT
 
 // Application exe specific resource which is localised to the application
 RESOURCE		tssaac_tapp.rss
@@ -75,10 +80,12 @@
 END
 
 
-LIBRARY       	APPARC.LIB
-LIBRARY       	CONE.LIB 
-LIBRARY       	EFSRV.LIB
-LIBRARY       	EIKCORE.LIB 
-LIBRARY       	ESTOR.LIB
-LIBRARY       	EUSER.LIB
-LIBRARY       	GDI.LIB
+LIBRARY       	apparc.lib
+LIBRARY       	cone.lib 
+LIBRARY       	efsrv.lib
+LIBRARY       	eikcore.lib 
+LIBRARY       	estor.lib
+LIBRARY       	euser.lib
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/tssaac/tssaac_tapp.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_tapp.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,7 +22,7 @@
 
 NAME WWWW
 
-#include <eikon.rh>
+#include <mw/eikon.rh>
 #include <appinfo.rh>
 
 RESOURCE RSS_SIGNATURE { }
@@ -34,3 +32,4 @@
 RESOURCE EIK_APP_INFO
 	{
 	}
+
--- a/localisation/apparchitecture/tef/tssaac/tssaac_tapp_emulator.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_tapp_emulator.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -21,9 +21,9 @@
 
 #include "startup.rh"
 
-/////////////////////////////////////////////
+//
 // ENTRY POINT
-/////////////////////////////////////////////
+//
 
 // THIS MUST BE THE FIRST RESOURCE. The system relies on
 // this having a resource ID of 1
@@ -32,13 +32,13 @@
 	{
 	entry_point = r_startup_state_critical_static; 
 	}
-/////////////////////////////////////////////
+//
 
 
 
-/////////////////////////////////////////////
+//
 // CRITICAL-STATIC startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_critical_static
 	{
 	id = EStartupStateCriticalStatic;
@@ -93,9 +93,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // CRITICAL-DYNAMIC startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_critical_dynamic
 	{
 	id = EStartupStateCriticalDynamic;
@@ -137,9 +137,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // Networking-CRITICAL startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO  r_startup_state_networking_critical
 	{
 	id = EStartupStateNetworkingCritical;   
@@ -170,9 +170,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // NON-CRITICAL startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_non_critical
 	{
 	id = EStartupStateNonCritical;
@@ -227,3 +227,5 @@
 			}
 		};
 	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_tapp_emulator_ssma.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,316 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Modified default resource file to test apparc functionality
+// during critical startup
+// WARNING: Any changes made to this resource file must be
+// checked against the sysstart apparc test cases listed
+// T_TestLocalisedCaptionL      
+// 
+//
+
+#include <ssm/ssmcmd.rh>
+#include <ssm/ssmsubstates.hrh>
+#include <ssm/cmdpersistreboots.rh>
+#include <ssm/cmdpersistreboots.hrh>
+
+UID2 KUidSsmCommandListResourceFile
+
+// SSM_COMMAND_LIST_ROOT must be the first resource in a command list resource file.
+// The SSM relies on this having a resource ID of 1.
+RESOURCE SSM_COMMAND_LIST_ROOT
+	{
+	command_list_mapping = r_command_list_mapping;
+	}
+
+RESOURCE SSM_COMMAND_LIST_MAPPING r_command_list_mapping
+	{
+	mappings =
+		{
+		SSM_COMMANDLISTID_TO_RESOURCEID
+			{
+			command_list_id = ESsmStartupSubStateCriticalStatic;
+			resource_id = r_critical_static_commands;
+			},
+		SSM_COMMANDLISTID_TO_RESOURCEID
+			{
+			command_list_id = ESsmStartupSubStateCriticalDynamic;
+			resource_id = r_critical_dynamic_commands;
+			},
+		SSM_COMMANDLISTID_TO_RESOURCEID
+			{
+			command_list_id = ESsmStartupSubStateNetworkingCritical;
+			resource_id = r_networking_critical_commands;
+			},
+		SSM_COMMANDLISTID_TO_RESOURCEID
+			{
+			command_list_id = ESsmStartupSubStateNonCritical;
+			resource_id = r_non_critical_commands;
+			}
+		};
+	}
+
+
+RESOURCE SSM_COMMAND_LIST r_critical_static_commands
+   	{
+	commands =
+		{
+		r_increment_boot_count
+		, r_command_publish_system_state
+		, r_command_ssmutilsrv
+		, r_command_sysmon
+		, r_command_sysagt2svr
+		, r_command_fbserv
+		, r_command_wserv
+		, r_command_set_splash_property
+		, r_command_start_splash
+		, r_command_eiksrvs
+		, r_command_tzserver
+		, r_command_tssaacapp
+		};
+	}
+
+RESOURCE SSM_COMMAND_LIST r_critical_dynamic_commands
+   	{
+	commands =
+		{
+		r_command_publish_system_state
+		, r_command_initialise_locale
+		, r_command_apparc
+		, r_command_shell
+		, r_command_multiple_wait
+		, r_command_remove_splash_property
+		};
+	}
+
+RESOURCE SSM_COMMAND_LIST r_networking_critical_commands
+   	{
+	commands =
+		{
+		r_command_publish_system_state
+		, r_command_c32start
+		, r_command_msexe
+		, r_command_watcher
+		};
+	}
+
+RESOURCE SSM_COMMAND_LIST r_non_critical_commands
+   	{
+	commands =
+		{
+		r_command_publish_system_state
+		, r_command_system_ams
+		, r_command_swidaemon
+		, r_command_cntsrv
+		, r_command_agsvexe
+		, r_command_fotaagent
+		, r_command_schexe
+		, r_command_ama_starter
+		};
+	}
+
+
+RESOURCE SSM_START_PROCESS_INFO r_command_ssmutilsrv
+	{
+	severity = ECmdCriticalSeverity;
+	name = "ssmutilsrv.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	retries = 2;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_sysmon
+	{
+	severity = ECmdCriticalSeverity;
+	name = "sysmon.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	retries = 2;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_sysagt2svr
+	{
+	severity = ECmdCriticalSeverity;
+	name = "SysAgt2Svr.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	retries = 2;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_fbserv
+	{
+	severity = ECmdCriticalSeverity;
+	name = "fbserv.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	retries = 1;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_wserv
+	{
+	severity = ECmdCriticalSeverity;
+	name = "wserv.exe";
+	args = "-NoShell";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_command_set_splash_property
+	{
+	severity = ECmdCriticalSeverity;
+	category = 0x2000D75B;
+	key = 0x01;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_start_splash
+	{
+	severity = ECmdCriticalSeverity;
+	name = "splash.exe";
+	execution_behaviour = ESsmFireAndForget;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_eiksrvs
+	{
+	severity = ECmdCriticalSeverity;
+	name = "eiksrvs.exe";
+	args = "-OnlyStartDependentServers";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_tssaacapp
+	{
+	severity = ECmdCriticalSeverity;
+	name = "tssaac_tapp.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_tzserver
+	{
+	severity = ECmdCriticalSeverity;
+	name = "tzserver.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_initialise_locale
+	{
+	name = "initialiselocale.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_apparc
+	{
+	severity = ECmdCriticalSeverity;
+	name = "apsexe.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_APP_INFO r_command_shell
+	{
+	severity = ECmdCriticalSeverity;
+	name = "shell.exe";
+	execution_behaviour = ESsmDeferredWaitForSignal;
+	viewless = 1;
+	}
+
+RESOURCE SSM_MULTIPLE_WAIT r_command_multiple_wait
+	{
+	timeout = 20000;
+	}
+
+RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_command_remove_splash_property
+	{
+	severity = ECmdCriticalSeverity;
+	category = 0x2000D75B;
+	key = 0x01;
+	value = 1;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_c32start
+	{
+	severity = ECmdCriticalSeverity;
+	name = "c32start.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_msexe
+	{
+	severity = ECmdCriticalSeverity;
+	name = "msexe.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_watcher
+	{
+	severity = ECmdCriticalSeverity;
+	name = "watcher.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_system_ams
+	{
+	name = "SystemAMS.exe";
+	args = "-boot";
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_swidaemon
+	{
+	severity = ECmdCriticalSeverity;
+	name = "swidaemon.exe";
+	execution_behaviour = ESsmWaitForSignal;
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_cntsrv
+	{
+	severity = ECmdCriticalSeverity;
+	name = "cntsrv.exe";
+	args = "-nontransient";
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_agsvexe
+	{
+	severity = ECmdCriticalSeverity;
+	name = "agsvexe.exe";
+	args = "-nontransient";
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_fotaagent
+	{
+	name = "fotaagent.exe";
+	}
+
+RESOURCE SSM_START_PROCESS_INFO r_command_schexe
+	{
+	name = "schexe.exe";
+	args = "sysstartschexe";
+	}
+
+RESOURCE SSM_START_AMA_STARTER r_command_ama_starter
+	{
+	severity = ECmdIgnoreFailure;
+	dsc_id = 0x2000836D;		// removing this id will cause a rcomp failure unless dsc_id is #defined in ssmcmd.rh file.
+	}
+
+RESOURCE SSM_PUBLISH_SYSTEM_STATE r_command_publish_system_state
+	{
+	severity = ECmdCriticalSeverity;
+	}
+
+RESOURCE SSM_START_CUSTOM_COMMAND r_increment_boot_count
+	{
+	severity = ECmdCriticalSeverity;
+	execution_behaviour = ESsmWaitForSignal;
+	dllname = "cmncustomcmds.dll";
+	ordinal = 1; // Persist reboots custom command is at ordinal 1
+	dll_data = r_increment;
+	}
+
+RESOURCE SSM_COMMAND_PERSIST_REBOOTS r_increment
+	{
+	val = EIncrementBootCount;
+	}
+
--- a/localisation/apparchitecture/tef/tssaac/tssaac_tapp_hardware.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_tapp_hardware.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -21,9 +21,9 @@
 
 #include "startup.rh"
 
-/////////////////////////////////////////////
+//
 // ENTRY POINT
-/////////////////////////////////////////////
+//
 
 // THIS MUST BE THE FIRST RESOURCE. The system relies on
 // this having a resource ID of 1
@@ -32,13 +32,13 @@
 	{
 	entry_point = r_startup_state_critical_static; 
 	}
-/////////////////////////////////////////////
+//
 
 
 
-/////////////////////////////////////////////
+//
 // CRITICAL-STATIC startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_critical_static
 	{
 	id = EStartupStateCriticalStatic;
@@ -92,9 +92,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // CRITICAL-DYNAMIC startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_critical_dynamic
 	{
 	id = EStartupStateCriticalDynamic;
@@ -136,9 +136,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // Networking-CRITICAL startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO  r_startup_state_networking_critical
 	{
 	id = EStartupStateNetworkingCritical;   
@@ -169,9 +169,9 @@
 		};
 	}
 
-/////////////////////////////////////////////
+//
 // NON-CRITICAL startup state
-/////////////////////////////////////////////
+//
 RESOURCE STATE_INFO r_startup_state_non_critical
 	{
 	id = EStartupStateNonCritical;
@@ -226,3 +226,5 @@
 			}
 		};
 	}
+
+
--- a/localisation/apparchitecture/tef/tssaac/tssaac_tapp_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_tapp_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/tssaac/tssaac_tapp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tssaac/tssaac_tapp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/tstapp01.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tstapp01.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -32,3 +30,5 @@
 rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstappview01.m01"
 rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstappview02.k"
 rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.xyz"
+
+
--- a/localisation/apparchitecture/tef/tstapp02.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tstapp02.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -32,3 +30,5 @@
 rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstappview01.m02"
 rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstappview"
 rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.mbm"
+
+
--- a/localisation/apparchitecture/tef/tstapp03.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tstapp03.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -32,3 +30,5 @@
 rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstapp.mbm"
 rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstapp.mbm"
 rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.xyz"
+
+
--- a/localisation/apparchitecture/tef/tstapp04.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tstapp04.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -32,3 +30,5 @@
 rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstapp.mbm"
 rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstapp.mbm"
 rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.xyz"
+
+
--- a/localisation/apparchitecture/tef/tstapp05.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tstapp05.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -32,3 +30,5 @@
 rls_string STRING_r_tstapp_view1_icon_file "z:\\resource\\apps\\tstapp.mbm"
 rls_string STRING_r_tstapp_view2_icon_file "z:\\resource\\apps\\tstapp.mbm"
 rls_string STRING_r_tstapp_view3_icon_file "z:\\resource\\apps\\tstappviewneg.xyz"
+
+
--- a/localisation/apparchitecture/tef/tstapp_Reg.RSS	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tstapp_Reg.RSS	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/tstapp_loc.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tstapp_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
--- a/localisation/apparchitecture/tef/tstappsc.rls	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tstappsc.rls	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -30,3 +28,4 @@
 
 rls_string STRING_r_tstapp_icon_file "z:\\resource\\apps\\tstapp.mbm"
 rls_string STRING_r_tstapp_view_icon_file "z:\\resource\\apps\\tstapp.mbm"
+
--- a/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -29,11 +27,11 @@
 const TUid KUidUpgradeIconApp = { 0xA0003195 };
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the application class - CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 TUid CExampleApplication::AppDllUid() const
 	{
@@ -46,11 +44,11 @@
 	}
 	
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the appui class - CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 void CExampleAppUi::ConstructL()
     {
@@ -75,11 +73,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the view class - CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 CExampleAppView::CExampleAppView()
 	{
@@ -145,11 +143,11 @@
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // Implementation of the document class - CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 CExampleDocument::CExampleDocument(CEikApplication& aApp)
 		: CEikDocument(aApp)
--- a/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -31,19 +29,19 @@
 #include <eikappui.h>
 #include <eikapp.h>
 #include <eikdoc.h>
-#include <eikmenup.h>
+#include <mw/eikmenup.h>
 
-#include <eikon.hrh>
+#include <mw/eikon.hrh>
 
 #include <tupgradeiconapp.rsg>
 
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleApplication
 //
-////////////////////////////////////////////////////////////////////////
+//
 
 class CExampleApplication : public CEikApplication
 	{
@@ -53,11 +51,11 @@
 	TUid AppDllUid() const;
 	};
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppView
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppView : public CCoeControl
     {
 public:
@@ -75,11 +73,11 @@
     };
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleAppUi
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleAppUi : public CEikAppUi
     {
 public:
@@ -95,11 +93,11 @@
 	};
 
 
-////////////////////////////////////////////////////////////////////////
+//
 //
 // CExampleDocument
 //
-////////////////////////////////////////////////////////////////////////
+//
 class CExampleDocument : public CEikDocument
 	{
 public:
@@ -113,3 +111,4 @@
 
 
 #endif
+
--- a/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,16 +15,12 @@
 // 
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code
 */
 
-#include <platform_paths.hrh>
-
 TARGET        		tupgradeiconapp.exe
 TARGETTYPE    		exe
 TARGETPATH      	/sys/bin
@@ -36,14 +32,13 @@
 SOURCE		tupgradeiconapp.cpp
 
 USERINCLUDE   	.
-SYSTEMINCLUDE 	/epoc32/include
-SYSTEMINCLUDE 	/epoc32/include/techview
-
-MW_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE_SYMBIAN
+//SYSTEMINCLUDE 	/epoc32/include/techview
 
 SOURCEPATH	.
-RESOURCE 	tupgradeiconapp.RSS
-START RESOURCE	tupgradeiconapp.RSS
+RESOURCE 	tupgradeiconapp.rss
+START RESOURCE	tupgradeiconapp.rss
 TARGETPATH	/resource/apps
 LANG		SC
 END
@@ -55,3 +50,5 @@
 
 
 LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib gdi.lib
+
+SMPSAFE
--- a/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -24,8 +22,8 @@
 
 NAME TEAP
 
-#include <eikon.rh>
-#include <eikcore.rsg>
+#include <mw/eikon.rh>
+#include <uiklafgt/eikcore.rsg>
 #include <appinfo.rh>
 
 RESOURCE RSS_SIGNATURE { }
--- a/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp_reg.rss	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/tupgradeiconapp/tupgradeiconapp_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -22,7 +20,7 @@
 */
 
 #include <appinfo.rh>
-#include <TUpgradeIconApp.rsg>
+#include <tupgradeiconapp.rsg>
 
 UID2 KUidAppRegistrationResourceFile
 UID3 	0xA0003195 // application UID
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/zerosizedicon_loc.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,38 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// ZeroSizedIcon_loc.rss
+// 
+
+
+/**
+  @file ZeroSizedIcon_loc.rss
+  @internalComponent - Internal Symbian test code
+ */
+
+
+#include <appinfo.rh>
+
+RESOURCE LOCALISABLE_APP_INFO
+	{
+	group_name = "";
+	caption_and_icon = 
+		{
+		CAPTION_AND_ICON_INFO
+			{
+			caption = "ZeroSizedIcon";
+			number_of_icons = 3; 
+			icon_file = "c:\\resource\\apps\\ZeroSizedIcon.mbm";
+			}
+		};
+	}	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/zerosizedicon_reg.rss	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,34 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// ZeroSizedIcon_reg.rss
+//
+
+/**
+  @file ZeroSizedIcon_reg.rss
+  @internalComponent - Internal Symbian test code
+ */
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+
+UID3 0xABCD0000 // application UID
+
+RESOURCE APP_REGISTRATION_INFO 
+	{	
+	app_file = "zerosizedicontestapp";
+	localisable_resource_file="\\Resource\\Apps\\ZeroSizedIcon_loc";
+	}
+
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/zerosizedicontestapp.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,29 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// zerosizedicontestapp.cpp
+// 
+
+/**  @file
+	 @internalComponent - Internal Symbian test code
+*/
+
+
+#include <eikstart.h>
+
+GLDEF_C TInt E32Main()
+	{
+	return KErrNone;
+	}
+	
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/zerosizedicontestapp.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,51 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// zerosizedicontestapp.mmp
+//
+
+target		zerosizedicontestapp.exe
+TARGETTYPE 	exe
+	
+targetpath	/sys/bin
+UID           	0x100039CE 0xABCD0000
+VENDORID 	0x70000001
+
+SOURCEPATH    	.
+SOURCE		zerosizedicontestapp.cpp
+
+USERINCLUDE   	.
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+// Application exe specific resource which is localised to the application
+RESOURCE	zerosizedicon_loc.rss
+start resource	zerosizedicon_loc.rss
+targetpath	/apparctest
+lang		sc
+end
+
+
+// Application exe registration resource file
+START RESOURCE	zerosizedicon_reg.rss
+TARGETPATH	/apparctest
+lang		sc
+END
+
+ 
+LIBRARY       	apparc.lib  
+LIBRARY       	cone.lib 
+LIBRARY       	eikcore.lib
+LIBRARY       	euser.lib 
+LIBRARY       	gdi.lib
+
+SMPSAFE
--- a/localisation/uiftestfw/bwins/APPFWK_TEST_APPUIU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/bwins/APPFWK_TEST_APPUIU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 EXPORTS
 	??0CAutoTestManager@@AAE@PAVMAutoTestApp@@@Z @ 1 NONAME ; CAutoTestManager::CAutoTestManager(class MAutoTestApp *)
-	??0CTestAppUi@@QAE@PAVCTestStep@@ABVTDesC16@@HHH@Z @ 2 NONAME ; CTestAppUi::CTestAppUi(class CTestStep *, class TDesC16 const &, int, int, int)
-	??0CTestCoeAppUi@@QAE@PAVCTestStep@@@Z @ 3 NONAME ; CTestCoeAppUi::CTestCoeAppUi(class CTestStep *)
+	__E32Dll @ 2 NONAME ABSENT ; CTestAppUi::CTestAppUi(class CTestStep *, class TDesC16 const &, int, int, int)
+	__E32Dll @ 3 NONAME ABSENT ; CTestCoeAppUi::CTestCoeAppUi(class CTestStep *)
 	??1CAutoTestManager@@UAE@XZ @ 4 NONAME ; CAutoTestManager::~CAutoTestManager(void)
 	??1CTestAppUi@@UAE@XZ @ 5 NONAME ; CTestAppUi::~CTestAppUi(void)
 	??1CTestCoeAppUi@@UAE@XZ @ 6 NONAME ; CTestCoeAppUi::~CTestCoeAppUi(void)
@@ -15,4 +15,15 @@
 	?SetTestCaseNumber@CAutoTestManager@@QAEXH@Z @ 14 NONAME ; void CAutoTestManager::SetTestCaseNumber(int)
 	?StartAutoTest@CAutoTestManager@@QAEXXZ @ 15 NONAME ; void CAutoTestManager::StartAutoTest(void)
 	?CloseAllPanicWindowsL@@YAXXZ @ 16 NONAME ; void CloseAllPanicWindowsL(void)
+	??0CTestAppUi@@QAE@PAVCTmsTestStep@@ABVTDesC16@@HHH@Z @ 17 NONAME ; CTestAppUi::CTestAppUi(class CTmsTestStep *, class TDesC16 const &, int, int, int)
+	??0CTestCoeAppUi@@QAE@PAVCTmsTestStep@@@Z @ 18 NONAME ; CTestCoeAppUi::CTestCoeAppUi(class CTmsTestStep *)
+	?RecordTestResultL@CTmsTestStep@@QAEXXZ @ 19 NONAME ; void CTmsTestStep::RecordTestResultL(void)
+	?MultipleResultsForSameID@CTmsTestStep@@QAEXH@Z @ 20 NONAME ; void CTmsTestStep::MultipleResultsForSameID(int)
+	??0CTmsTestStep@@QAE@XZ @ 21 NONAME ; CTmsTestStep::CTmsTestStep(void)
+	?MQCTest@CTmsTestStep@@QAEXHPBEH@Z @ 22 NONAME ; void CTmsTestStep::MQCTest(int, unsigned char const *, int)
+	??1CTmsTestStep@@UAE@XZ @ 23 NONAME ; CTmsTestStep::~CTmsTestStep(void)
+	?SetTestStepID@CTmsTestStep@@QAEXABVTDesC16@@@Z @ 24 NONAME ; void CTmsTestStep::SetTestStepID(class TDesC16 const &)
+	?MQCTestL@CTmsTestStep@@QAEXHPBEH@Z @ 25 NONAME ; void CTmsTestStep::MQCTestL(int, unsigned char const *, int)
+	?CloseTMSGraphicsStep@CTmsTestStep@@QAEXXZ @ 26 NONAME ; void CTmsTestStep::CloseTMSGraphicsStep(void)
+	?SetOverallTestStepID@CTmsTestStep@@QAEXABVTDesC16@@@Z @ 27 NONAME ; void CTmsTestStep::SetOverallTestStepID(class TDesC16 const &)
 
--- a/localisation/uiftestfw/eabi/APPFWK_TEST_APPUIU.DEF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/eabi/APPFWK_TEST_APPUIU.DEF	Tue Aug 03 10:20:34 2010 +0100
@@ -1,32 +1,45 @@
 EXPORTS
 	_Z20PreallocateHALBufferv @ 1 NONAME
-	_ZN10CTestAppUi10ConstructLEv @ 2 NONAME
-	_ZN10CTestAppUi15ProcessCommandLEi @ 3 NONAME
-	_ZN10CTestAppUiC2EP9CTestStepRK7TDesC16iii @ 4 NONAME
-	_ZN10CTestAppUiD0Ev @ 5 NONAME
-	_ZN10CTestAppUiD1Ev @ 6 NONAME
-	_ZN10CTestAppUiD2Ev @ 7 NONAME
-	_ZN13CTestCoeAppUi10ConstructLEv @ 8 NONAME
-	_ZN13CTestCoeAppUiC2EP9CTestStep @ 9 NONAME
-	_ZN13CTestCoeAppUiD0Ev @ 10 NONAME
-	_ZN13CTestCoeAppUiD1Ev @ 11 NONAME
-	_ZN13CTestCoeAppUiD2Ev @ 12 NONAME
-	_ZN16CAutoTestManager13StartAutoTestEv @ 13 NONAME
-	_ZN16CAutoTestManager17SetTestCaseNumberEi @ 14 NONAME
-	_ZN16CAutoTestManager18FinishAllTestCasesENS_11TTestResultE @ 15 NONAME
-	_ZN16CAutoTestManager4NewLEP12MAutoTestApp @ 16 NONAME
-	_ZN16CAutoTestManagerC1EP12MAutoTestApp @ 17 NONAME
-	_ZN16CAutoTestManagerC2EP12MAutoTestApp @ 18 NONAME
-	_ZN16CAutoTestManagerD0Ev @ 19 NONAME
-	_ZN16CAutoTestManagerD1Ev @ 20 NONAME
-	_ZN16CAutoTestManagerD2Ev @ 21 NONAME
-	_ZNK10CTestAppUi10ReduceRectER5TRect @ 22 NONAME
-	_ZTI10CTestAppUi @ 23 NONAME ; #<TI>#
-	_ZTI13CTestCoeAppUi @ 24 NONAME ; #<TI>#
-	_ZTI16CAutoTestManager @ 25 NONAME ; #<TI>#
-	_ZTV10CTestAppUi @ 26 NONAME ; #<VT>#
-	_ZTV13CTestCoeAppUi @ 27 NONAME ; #<VT>#
-	_ZTV16CAutoTestManager @ 28 NONAME ; #<VT>#
-	_ZThn24_N10CTestAppUi15ProcessCommandLEi @ 29 NONAME ; #<thunk>#
-	_Z21CloseAllPanicWindowsLv @ 30 NONAME
+	_Z21CloseAllPanicWindowsLv @ 2 NONAME
+	_ZN10CTestAppUi10ConstructLEv @ 3 NONAME
+	_ZN10CTestAppUi15ProcessCommandLEi @ 4 NONAME
+	_ZN10CTestAppUiC2EP12CTmsTestStepRK7TDesC16iii @ 5 NONAME
+	_ZN10CTestAppUiD0Ev @ 6 NONAME
+	_ZN10CTestAppUiD1Ev @ 7 NONAME
+	_ZN10CTestAppUiD2Ev @ 8 NONAME
+	_ZN12CTmsTestStep13SetTestStepIDERK7TDesC16 @ 9 NONAME
+	_ZN12CTmsTestStep17RecordTestResultLEv @ 10 NONAME
+	_ZN12CTmsTestStep20CloseTMSGraphicsStepEv @ 11 NONAME
+	_ZN12CTmsTestStep20SetOverallTestStepIDERK7TDesC16 @ 12 NONAME
+	_ZN12CTmsTestStep24MultipleResultsForSameIDEi @ 13 NONAME
+	_ZN12CTmsTestStep7MQCTestEiPKhi @ 14 NONAME
+	_ZN12CTmsTestStep8MQCTestLEiPKhi @ 15 NONAME
+	_ZN12CTmsTestStepC2Ev @ 16 NONAME
+	_ZN12CTmsTestStepD0Ev @ 17 NONAME
+	_ZN12CTmsTestStepD1Ev @ 18 NONAME
+	_ZN12CTmsTestStepD2Ev @ 19 NONAME
+	_ZN13CTestCoeAppUi10ConstructLEv @ 20 NONAME
+	_ZN13CTestCoeAppUiC2EP12CTmsTestStep @ 21 NONAME
+	_ZN13CTestCoeAppUiD0Ev @ 22 NONAME
+	_ZN13CTestCoeAppUiD1Ev @ 23 NONAME
+	_ZN13CTestCoeAppUiD2Ev @ 24 NONAME
+	_ZN16CAutoTestManager13StartAutoTestEv @ 25 NONAME
+	_ZN16CAutoTestManager17SetTestCaseNumberEi @ 26 NONAME
+	_ZN16CAutoTestManager18FinishAllTestCasesENS_11TTestResultE @ 27 NONAME
+	_ZN16CAutoTestManager4NewLEP12MAutoTestApp @ 28 NONAME
+	_ZN16CAutoTestManagerC1EP12MAutoTestApp @ 29 NONAME
+	_ZN16CAutoTestManagerC2EP12MAutoTestApp @ 30 NONAME
+	_ZN16CAutoTestManagerD0Ev @ 31 NONAME
+	_ZN16CAutoTestManagerD1Ev @ 32 NONAME
+	_ZN16CAutoTestManagerD2Ev @ 33 NONAME
+	_ZNK10CTestAppUi10ReduceRectER5TRect @ 34 NONAME
+	_ZTI10CTestAppUi @ 35 NONAME
+	_ZTI12CTmsTestStep @ 36 NONAME
+	_ZTI13CTestCoeAppUi @ 37 NONAME
+	_ZTI16CAutoTestManager @ 38 NONAME
+	_ZTV10CTestAppUi @ 39 NONAME
+	_ZTV12CTmsTestStep @ 40 NONAME
+	_ZTV13CTestCoeAppUi @ 41 NONAME
+	_ZTV16CAutoTestManager @ 42 NONAME
+	_ZThn24_N10CTestAppUi15ProcessCommandLEi @ 43 NONAME
 
--- a/localisation/uiftestfw/group/BLD.INF	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/group/BLD.INF	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -25,11 +25,15 @@
 PRJ_TESTMMPFILES
 ../group/appfwk_test_AppUi.mmp
 ../group/appfwk_test_utils.mmp
+//../group/appfwk_test_utils_server.mmp
+//../group/appfwk_test_dummytest.mmp
 
 PRJ_TESTEXPORTS
-../group/Smoketest_Uitestfw.iby              /epoc32/rom/include/Smoketest_Uitestfw.iby
+// TestFramework IBY files
+../group/Smoketest_uitestfw.iby		/epoc32/rom/include/Smoketest_uitestfw.iby
 
 // TestFramework INCLUDE files
-../inc/appfwk_test.h 				/epoc32/include/test/appfwk_test.h
-../inc/appfwk_test_AppUi.h			/epoc32/include/test/appfwk_test_appui.h
-../inc/appfwk_test_utils.h 			/epoc32/include/test/appfwk_test_utils.h
+../inc/appfwk_test.h 				MW_LAYER_PLATFORM_EXPORT_PATH(test/appfwk_test.h)
+../inc/appfwk_test_AppUi.h			MW_LAYER_PLATFORM_EXPORT_PATH(test/appfwk_test_appui.h)
+../inc/appfwk_test_utils.h 			MW_LAYER_PLATFORM_EXPORT_PATH(test/appfwk_test_utils.h)
+../inc/appfwk_tmsteststep.h 		MW_LAYER_PLATFORM_EXPORT_PATH(test/appfwk_tmsteststep.h)
--- a/localisation/uiftestfw/group/Smoketest_Uitestfw.iby	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/group/Smoketest_Uitestfw.iby	Tue Aug 03 10:20:34 2010 +0100
@@ -1,10 +1,7 @@
 #ifndef SMOKETEST_UITESTFW_IBY
 #define SMOKETEST_UITESTFW_IBY
 
-file=ABI_DIR\DEBUG_DIR\appfwk_test_AppUi.dll	System\libs\appfwk_test_AppUi.dll
+file=ABI_DIR\DEBUG_DIR\appfwk_test_appui.dll	System\libs\appfwk_test_appui.dll
 file=ABI_DIR\DEBUG_DIR\appfwk_test_utils.dll	System\libs\appfwk_test_utils.dll
 
-data=EPOCROOT##epoc32\data\z\smoketest\smoketest_language.script 	      smoketest\smoketest_language.script
-data=EPOCROOT##epoc32\data\z\smoketest\setup_smoketest_language.script 	      smoketest\setup_smoketest_language.script
-
 #endif //SMOKETEST_UITESTFW_IBY
--- a/localisation/uiftestfw/group/app-framework_testframework.history.xml	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/group/app-framework_testframework.history.xml	Tue Aug 03 10:20:34 2010 +0100
@@ -1,5 +1,9 @@
 <?xml version="1.0"?>
 <relnotes schema="1.0.0" name="INTEGRATIONTEST" purpose="" type="component">
+  <revision major="1" functional="0" minor="1" date="20080801">
+    <ref name="125721" type="defect"/>
+    <description>Testframework source classification is changed from Test UI to Tools.</description>
+  </revision>
   <revision major="1" functional="0" minor="0" date="20070831">
     <ref name="110932" type="defect"/>
     <description>Appended GfxTransEffect batch file</description>
--- a/localisation/uiftestfw/group/app-framework_testframework.mrp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/group/app-framework_testframework.mrp	Tue Aug 03 10:20:34 2010 +0100
@@ -5,7 +5,5 @@
 notes_source	\component_defs\release.src
 
 
-#  == IPR section auto-inserted from distribution.policy files  ==
 ipr T 
 
-# == end auto-inserted section ==
--- a/localisation/uiftestfw/group/appfwk_test_AppUi.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/group/appfwk_test_AppUi.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,17 +13,13 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
  @internalComponent - Internal Symbian test code 
 */
 
-#include <platform_paths.hrh>
-
-TARGET          appfwk_test_AppUi.dll
+TARGET          appfwk_test_appui.dll
 TARGETTYPE      DLL
 TARGETPATH      /sys/bin  
 UID				0x1100008D 0x11003B3C
@@ -31,26 +27,27 @@
 
 CAPABILITY		All -tcb
 
-SYSTEMINCLUDE   /epoc32/include 
-SYSTEMINCLUDE	/epoc32/include/techview
-SYSTEMINCLUDE   /epoc32/include/test
-
-MW_LAYER_SYSTEMINCLUDE
+APP_LAYER_SYSTEMINCLUDE 
 
 USERINCLUDE	../inc
 
 SOURCEPATH	../src
-SOURCE 		appfwk_test_AppUi.CPP
+SOURCE 		appfwk_test_AppUi.cpp
+SOURCE 		appfwk_tmsteststep.cpp
 
-LIBRARY		EUSER.LIB
-LIBRARY		CONE.LIB
-LIBRARY		BAFL.LIB
-LIBRARY		EFSRV.LIB
-LIBRARY		ESTOR.LIB
-LIBRARY		EGUL.LIB
-LIBRARY		EIKCORE.LIB
-LIBRARY		EIKCOCTL.LIB
-LIBRARY		HAL.LIB
-LIBRARY		WS32.LIB 
+LIBRARY		euser.lib
+LIBRARY		cone.lib
+LIBRARY		bafl.lib
+LIBRARY		efsrv.lib
+LIBRARY		estor.lib
+LIBRARY		egul.lib
+LIBRARY		eikcore.lib
+LIBRARY		eikcoctl.lib
+LIBRARY		hal.lib
+LIBRARY		ws32.lib 
+LIBRARY		testexecuteutils.lib
 
 DEFFILE 	APPFWK_TEST_APPUI.DEF
+
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/group/appfwk_test_dummytest.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,71 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The purpose of this dummy test is two fold
+// EMULATOR - It is the first (empty) test to run (successive emulator star-ups are afterwards faster) 
+// HARDWARE - Exports the needed resource file to add eshell to the startup sequence, as required in DABS
+// 
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+
+TARGET          appfwk_test_dummytest.exe
+TARGETTYPE      exe
+TARGETPATH      /sys/bin  
+UID				0x1000008D 0x10101010
+VENDORID        0x70000001
+
+CAPABILITY		none
+
+
+MW_LAYER_SYSTEMINCLUDE 
+OS_LAYER_SYSTEMINCLUDE 
+
+USERINCLUDE	../inc
+
+
+SOURCEPATH	../src
+SOURCE 		appfwk_test_dummytest.cpp
+
+#if defined(WINS)
+// No special resource file required for emulator since eshell is not required.
+#else
+#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+sourcepath ../resource/hardware
+// Resource file for overnight DABS automated hardware testing
+// Full techview bootup + eshell
+START RESOURCE	gsastartupcmdlist7_target.rss
+TARGETPATH		/private/2000d75b/startup/7
+END
+#endif // SYMBIAN_SYSTEM_STATE_MANAGEMENT
+sourcepath ../resource/hardware
+// Resource file for overnight DABS automated hardware testing
+// Full techview bootup + eshell
+START RESOURCE	SSCForStartupMode7_target.rss
+TARGETPATH	/private/10205c44
+END
+
+#endif // WINS
+
+
+LIBRARY		euser.lib
+
+
+
+
+
+SMPSAFE
--- a/localisation/uiftestfw/group/appfwk_test_utils.mmp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/group/appfwk_test_utils.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -15,8 +15,6 @@
 // 
 //
 
-
-
 /**
  @file
  @test
@@ -31,15 +29,18 @@
 
 CAPABILITY 	all
 
-SYSTEMINCLUDE 	/epoc32/include
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 USERINCLUDE	../inc
 
 SOURCEPATH	../src
 SOURCE		appfwk_test_utils.cpp
 
-LIBRARY		EUSER.lib
+LIBRARY		euser.lib
 
 DEFFILE 	APPFWK_TEST_UTILS.DEF
 
 EPOCSTACKSIZE	32000
+
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/group/appfwk_test_utils_server.mmp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,44 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+
+TARGET			appfwk_test_utils_server.exe
+TARGETTYPE		EXE
+TARGETPATH      /sys/bin
+UID				0 	0x10009FBD
+VENDORID 		0x70000001
+
+CAPABILITY 		all
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+USERINCLUDE	../inc
+
+SOURCEPATH	../src
+SOURCE		appfwk_test_utils_server_main.cpp
+SOURCE		appfwk_test_utils_server.cpp
+
+LIBRARY		euser.lib
+LIBRARY		efsrv.lib
+
+EPOCSTACKSIZE	32000
+
+
+SMPSAFE
Binary file localisation/uiftestfw/group/mulscreens.ini has changed
Binary file localisation/uiftestfw/group/mulscreens_changetracking.ini has changed
--- a/localisation/uiftestfw/inc/appfwk_test.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/inc/appfwk_test.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -31,3 +29,4 @@
 #define APPFWK_EXPECTED_PLATSEC_FINISH RDebug::Print(_L("*PlatSec* ERROR - EXPECTED ERROR - FINISH"))
 
 #endif
+
--- a/localisation/uiftestfw/inc/appfwk_test_AppUi.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/inc/appfwk_test_AppUi.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -32,6 +30,7 @@
 
 #include <test/testexecutestepbase.h>
 
+#include <test/appfwk_tmsteststep.h>
 
 // user panic descriptors
 _LIT(KPanicNullPointer,"Null pointer");
@@ -118,7 +117,7 @@
 class CTestCoeAppUi : public CCoeAppUi, public MAutoTestApp
 	{
 public:
-	IMPORT_C CTestCoeAppUi(CTestStep*		aStep);
+	IMPORT_C CTestCoeAppUi(CTmsTestStep* aStep);
 	IMPORT_C ~CTestCoeAppUi();
 	IMPORT_C void ConstructL(); // should be called from ConstructL of the child class
 	CTestExecuteLogger&	Logger() {return iStep->Logger();}
@@ -126,6 +125,24 @@
 		{
 		iStep -> testBooleanTrue(aCondition, aFile, aLine);
 		}
+
+	// provide access to TMS methods
+	inline void SetTestStepID(const TDesC& aStepName)
+		{
+		iStep->SetTestStepID( aStepName );
+		}
+	inline void RecordTestResultL()
+		{
+		iStep->RecordTestResultL();
+		}
+	inline void MultipleResultsForSameID( TBool aShowMultipleResults )
+		{
+		iStep->MultipleResultsForSameID( aShowMultipleResults );
+		}
+	inline void CloseTMSGraphicsStep()
+		{
+		iStep->CloseTMSGraphicsStep();
+		}
 	void testBooleanTrueL(TBool aCondition, const TText8* aFile, TInt aLine);
 	void testBooleanTrueWithErrorCode(TBool aCondition, TInt aErrorCode, const TText8* aFile, TInt aLine );
 	void testBooleanTrueWithErrorCodeL(TBool aCondition, TInt aErrorCode, const TText8* aFile, TInt aLine );
@@ -134,9 +151,10 @@
 protected:
 	inline CAutoTestManager& AutoTestManager() const;
 	
+	CTmsTestStep*		iStep;
+
 private:
 	CAutoTestManager* iAutoTestManager;
-	CTestStep		*iStep;
 	};
 
 CAutoTestManager& CTestCoeAppUi::AutoTestManager() const
@@ -165,7 +183,7 @@
 class CTestAppUi : public CEikAppUi, public MAutoTestApp
 	{
 public:
-	IMPORT_C CTestAppUi(CTestStep*	aStep, const TDesC& aRes, TInt aResourceHotKeysId = 0, TInt aResourceMenuBarId = 0, TInt aResourceToolBarId = 0);
+	IMPORT_C CTestAppUi(CTmsTestStep*	aStep, const TDesC& aRes, TInt aResourceHotKeysId = 0, TInt aResourceMenuBarId = 0, TInt aResourceToolBarId = 0);
 	IMPORT_C ~CTestAppUi();
 	IMPORT_C void ConstructL(); // should be called from ConstructL of the child class
 	CTestExecuteLogger&	Logger() {return iStep->Logger();}
@@ -174,9 +192,26 @@
 		iStep -> testBooleanTrue(aCondition, aFile, aLine, ETrue);
 		}
 
+	// provide access to TMS methods
+	inline void SetTestStepID(const TDesC& aStepName)
+		{
+		iStep->SetTestStepID( aStepName );
+		}
+	inline void RecordTestResultL()
+		{
+		iStep->RecordTestResultL();
+		}
+	inline void MultipleResultsForSameID( TBool aShowMultipleResults )
+		{
+		iStep->MultipleResultsForSameID( aShowMultipleResults );
+		}
+	inline void CloseTMSGraphicsStep()
+		{
+		iStep->CloseTMSGraphicsStep();
+		}
+
 protected:
 	inline CAutoTestManager& AutoTestManager() const;
-	inline CTestStep& TestStep() const;
 	IMPORT_C void ReduceRect(TRect& aRect) const;	//reduce client rectangle if toolbar or/and menu exist hide menu from screen
 	IMPORT_C void ProcessCommandL(TInt aCommand);
 
@@ -191,7 +226,9 @@
 	TInt iResourceMenuBarId;
 	TInt iResourceToolBarId;
 	TFileName iRes;
-	CTestStep *iStep;
+
+protected:
+	CTmsTestStep *iStep;
 	};
 
 CAutoTestManager& CTestAppUi::AutoTestManager() const
@@ -199,11 +236,6 @@
 	return *iAutoTestManager;
 	}
 
-CTestStep& CTestAppUi::TestStep() const
-	{
-	return *iStep;
-	}
-
 //to prevent from alloc memory error in the User::__DbgMarkEnd 
 //we need to call this function if we are using  CCoeEnv and memory heap macros
 IMPORT_C void PreallocateHALBuffer();
--- a/localisation/uiftestfw/inc/appfwk_test_utils.h	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/inc/appfwk_test_utils.h	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -102,3 +100,4 @@
 	};
 
 #endif	// __APPFWK_TEST_UTILS_SERVER_H__
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/inc/appfwk_test_utils_server.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,97 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+
+#ifndef __APPFWK_TEST_UTILS_SERVER_H__
+#define __APPFWK_TEST_UTILS_SERVER_H__
+
+#include <e32base.h>
+#include <f32file.h>
+
+enum TTestPanic
+	{
+	ETestPanicBadDescriptor,
+	ETestPanicIllegalFunction,
+	ETestPanicAlreadyReceiving
+	};
+
+void PanicClient(RMessage2& aMessage,TTestPanic TMyPanic);
+
+
+class CShutdown : public CTimer
+	{
+	enum {KMyShutdownDelay=0x200000};	// approx 2s
+public:
+	inline CShutdown();
+	inline void ConstructL();
+	inline void Start();
+private:
+	void RunL();
+	};
+
+
+class CSmlTestUtilsServer : public CServer2
+	{
+public:
+	static CServer2* NewLC();
+	void AddSession();
+	void DropSession();
+private:
+	CSmlTestUtilsServer();
+	void ConstructL();
+	CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
+private:
+	TInt iSessionCount;
+	CShutdown iShutdown;
+	};
+
+
+class CSmlTestUtilsSession : public CSession2
+	{
+public:
+	CSmlTestUtilsSession();
+	void CreateL();
+private:
+	~CSmlTestUtilsSession();
+	inline CSmlTestUtilsServer& Server();
+	void ServiceL(const RMessage2& aMessage);
+	void ServiceError(const RMessage2& aMessage,TInt aError);
+	inline TBool ReceivePending() const;
+private:
+	TInt DoCreateDirectoryL(const RMessage2& aMessage);
+	TInt DoRenameDirectoryL(const RMessage2& aMessage);
+	TInt DoDeleteDirectoryL(const RMessage2& aMessage);
+	TInt DoCreateFileL(const RMessage2& aMessage);
+	TInt DoDeleteFileL(const RMessage2& aMessage);
+	TInt DoDeleteFileUsingWildcardL(const RMessage2& aMessage);
+	TInt DoCopyFileL(const RMessage2& aMessage);
+	TInt DoReplaceFileL(const RMessage2& aMessage);
+	TInt DoIsFilePresentL(const RMessage2& aMessage);
+	TInt DoSetReadOnlyL(const RMessage2& aMessage);
+	TInt DoGetAttL( const RMessage2& aMessage );
+	TInt DoSetAttL( const RMessage2& aMessage );	
+	TInt DoCopyDirectoryL(const RMessage2& aMessage);
+	TInt DoChangeFilePermissionL(const RMessage2& aMessage);
+private:
+	RFs iFs;
+	CFileMan* iFileMan; 
+	};
+
+#endif //__APPFWK_TEST_UTILS_SERVER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/inc/appfwk_tmsteststep.h	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+/**
+@file
+@test
+@internalComponent
+*/
+
+#ifndef tmsteststep_
+#define tmsteststep_
+
+#include <test/testexecutestepbase.h>
+#include <w32std.h>
+#include <flogger.h>
+#include <badesca.h> 
+
+// default name that a test will be called if not specifically set in the calling object
+_LIT(KUnknownSYMTestCaseIDName, "@SYMTestCaseID Unnamed test");
+_LIT(KUndefinedSYMTestCaseIDName, "@SYMTestCaseID is not defined");
+_LIT(KNotATestSYMTestCaseIDName, "This is not a test");
+
+class CTmsTestStep : public CTestStep
+	{
+public:
+	IMPORT_C CTmsTestStep();
+	IMPORT_C virtual ~CTmsTestStep();
+	IMPORT_C void CloseTMSGraphicsStep();
+	IMPORT_C void MQCTest(TBool aCondition, const TText8* aFile, TInt aLine);
+	IMPORT_C void MQCTestL(TBool aCondition, const TText8* aFile, TInt aLine);
+	IMPORT_C void SetTestStepID(const TDesC& aStepName);
+	IMPORT_C void SetOverallTestStepID(const TDesC& aStepName);
+	IMPORT_C void RecordTestResultL();
+	IMPORT_C void MultipleResultsForSameID(TBool aShowMultipleResults);
+
+	static void DebugLogL(const TDesC8 &aText, const TDesC8 &aText1, TInt aPos);
+	static TInt DebugLogPosL();
+protected:
+	static TInt ReadNextLineL( RFile &aFile, TDes8 &aLine );
+	void CleanUpAndWriteResults();
+	TBuf8<KMaxTestExecuteNameLength> iCurrentTestStepName;
+	TBool iStepPassFail;
+	TBool iShowMultipleResults;
+	CDesCArrayFlat* iTestStepNames;
+	RArray<TInt> iTestStepPositions;
+	};
+
+#endif /*tmsteststep_*/
--- a/localisation/uiftestfw/src/appfwk_test_AppUi.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/src/appfwk_test_AppUi.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -22,8 +20,8 @@
 */
 
 
-#include <eikmenub.h>
-#include <eikbtgpc.h>
+#include <mw/eikmenub.h>
+#include <mw/eikbtgpc.h>
 #include <eikenv.h>
 #include <hal.h>
 
@@ -140,7 +138,7 @@
 	}
 
 
-EXPORT_C CTestCoeAppUi::CTestCoeAppUi(CTestStep* aStep) :
+EXPORT_C CTestCoeAppUi::CTestCoeAppUi(CTmsTestStep* aStep) :
 		iStep(aStep) 
 	{
 	}
@@ -168,7 +166,7 @@
 	}
 
 
-EXPORT_C CTestAppUi::CTestAppUi(CTestStep* aStep, const	TDesC& aRes, TInt aResourceHotKeysId,  TInt aResourceMenuBarId, TInt aResourceToolBarId) :
+EXPORT_C CTestAppUi::CTestAppUi(CTmsTestStep* aStep, const	TDesC& aRes, TInt aResourceHotKeysId,  TInt aResourceMenuBarId, TInt aResourceToolBarId) :
 		CEikAppUi(),
 		iResourceHotKeysId(aResourceHotKeysId), 
 		iResourceMenuBarId(aResourceMenuBarId),
@@ -286,3 +284,5 @@
 	{
 	return 0;
 	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/src/appfwk_test_dummytest.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,35 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// A dummy test to workaround DEF059510 for the first test case failure.
+// 
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+
+#include <e32debug.h>
+#include "appfwk_test_utils.h"
+
+GLDEF_C TInt E32Main()
+	{	
+	// debug statement for DABS script to recognise that the test has completed successfully
+	RDebug::Print(_L("RTEST: SUCCESS : Dummy Test completed"));
+	return KErrNone;
+    }
+
+
+
--- a/localisation/uiftestfw/src/appfwk_test_utils.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/uiftestfw/src/appfwk_test_utils.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -13,8 +13,6 @@
 // Description:
 //
 
-
-
 /**
  @file
  @test
@@ -240,3 +238,4 @@
 	TInt ret = SendReceive(EChangeFilePermission, args);
 	return ret;	
 	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/src/appfwk_test_utils_server.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,376 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+
+#include <e32std.h>
+
+#include "appfwk_test_utils_server.h"
+#include "appfwk_test_utils.h"
+
+inline CShutdown::CShutdown()
+	:CTimer(-1)
+	{CActiveScheduler::Add(this);}
+
+inline void CShutdown::ConstructL()
+	{CTimer::ConstructL();}
+
+inline void CShutdown::Start()
+	{After(KMyShutdownDelay);}
+
+inline CSmlTestUtilsServer::CSmlTestUtilsServer()
+	:CServer2(0,ESharableSessions)
+	{}
+
+inline CSmlTestUtilsSession::CSmlTestUtilsSession()
+	{}
+
+inline CSmlTestUtilsServer& CSmlTestUtilsSession::Server()
+	{return *static_cast<CSmlTestUtilsServer*>(const_cast<CServer2*>(CSession2::Server()));}
+
+
+/**
+  RMessage::Panic() also completes the message. This is:
+	(a) important for efficient cleanup within the kernel
+	(b) a problem if the message is completed a second time
+*/
+static void PanicClient(const RMessage2& aMessage,TTestPanic aPanic)
+	{
+	_LIT(KPanic,"TestServer");
+ 	aMessage.Panic(KPanic,aPanic);
+	}
+
+
+void CSmlTestUtilsSession::CreateL()
+	{
+	Server().AddSession();
+	User::LeaveIfError(iFs.Connect());
+	iFileMan = CFileMan::NewL(iFs);
+	}
+
+
+CSmlTestUtilsSession::~CSmlTestUtilsSession()
+	{
+	Server().DropSession();
+	iFs.Close();
+	delete iFileMan;
+	}
+
+
+void CSmlTestUtilsSession::ServiceL(const RMessage2& aMessage)
+	{
+	TInt result = KErrNone;
+
+	switch (aMessage.Function())
+		{
+	case ECreateDir:
+		result = DoCreateDirectoryL(aMessage);
+		break;
+	case ERenameDir:
+		result = DoRenameDirectoryL(aMessage);
+		break;
+	case EDeleteDir:
+		result = DoDeleteDirectoryL(aMessage);
+		break;
+	case ECreateFile:
+		result = DoCreateFileL(aMessage);
+		break;
+	case EDeleteFile:
+		result = DoDeleteFileL(aMessage);
+		break;
+	case EDeleteFileUsingWildcard:
+		result = DoDeleteFileUsingWildcardL(aMessage);
+		break;
+	case ECopyFile:
+		result = DoCopyFileL(aMessage);
+		break;
+	case EReplaceFile:
+		result = DoReplaceFileL(aMessage);
+		break;
+	case EIsFilePresent:
+		result = DoIsFilePresentL(aMessage);
+		break;
+	case ESetReadOnly:
+		result = DoSetReadOnlyL(aMessage);
+		break;
+	case EGetAttributes:
+		result = DoGetAttL( aMessage );
+		break;
+	case ESetAttributes:
+		result = DoSetAttL( aMessage );
+		break;		
+	case ECopyDirectory:
+		result = DoCopyDirectoryL(aMessage);
+		break;
+	case EChangeFilePermission:
+		result = DoChangeFilePermissionL(aMessage);
+		break;	
+	default:
+		PanicClient(aMessage,ETestPanicIllegalFunction);
+		break;
+		}
+	aMessage.Complete(result);
+	}
+	
+
+TInt CSmlTestUtilsSession::DoCreateDirectoryL(const RMessage2& aMessage)
+	{
+	TBuf<255> path;
+	aMessage.ReadL(0, path);
+	TInt ret = iFs.MkDirAll(path);
+	return ret;
+	}
+	
+	
+TInt CSmlTestUtilsSession::DoRenameDirectoryL(const RMessage2& aMessage)
+	{
+	TBuf<100> srcpath;
+	aMessage.ReadL(0, srcpath);
+	TBuf<100> destpath;
+	aMessage.ReadL(1, destpath);
+	TInt ret = iFs.Rename(srcpath, destpath);
+	return ret;	
+	}
+	
+	
+TInt CSmlTestUtilsSession::DoDeleteDirectoryL(const RMessage2& aMessage)
+	{
+	TBuf<255> path;
+	aMessage.ReadL(0, path);
+	TInt ret = iFs.RmDir(path);
+	return ret;
+	}
+	
+	
+TInt CSmlTestUtilsSession::DoCreateFileL(const RMessage2& aMessage)
+	{
+	TBuf<100> path;
+	aMessage.ReadL(0, path);
+	RFile file;
+	CleanupClosePushL(file);
+	TInt ret = file.Create(iFs, path, EFileRead);
+	CleanupStack::PopAndDestroy(&file);
+	return ret;
+	}
+	
+	
+TInt CSmlTestUtilsSession::DoDeleteFileL(const RMessage2& aMessage)
+	{
+	TBuf<100> path;
+	aMessage.ReadL(0, path);
+	TInt ret = iFs.Delete(path);
+	return ret;	
+	}
+	
+
+TInt CSmlTestUtilsSession::DoDeleteFileUsingWildcardL(const RMessage2& aMessage)
+	{
+	TBuf<100> path;
+	aMessage.ReadL(0, path);
+	TInt ret = iFileMan->Delete(path);
+	return ret;	
+	}
+
+
+TInt CSmlTestUtilsSession::DoCopyFileL(const RMessage2& aMessage)
+	{
+	TBuf<100> srcpath;
+	aMessage.ReadL(0, srcpath);
+	TBuf<100> destpath;
+	aMessage.ReadL(1, destpath);
+	TInt ret = iFileMan->Copy(srcpath,destpath);
+	return ret;	
+	}
+	
+
+TInt CSmlTestUtilsSession::DoReplaceFileL(const RMessage2& aMessage)
+	{
+	TBuf<100> srcpath;
+	aMessage.ReadL(0, srcpath);
+	TUint lFileMode;
+	TPckgBuf<TUint> temp;
+	aMessage.ReadL(1, temp);
+	lFileMode=temp();
+	RFile file;
+	TInt ret = file.Replace(iFs,srcpath,lFileMode);
+	return ret;	
+	}
+	
+
+TInt CSmlTestUtilsSession::DoIsFilePresentL(const RMessage2& aMessage)
+	{
+	TFileName srcpath;
+	aMessage.ReadL(0, srcpath);
+	TEntry entry;
+	TInt err = iFs.Entry(srcpath, entry);
+	if (err == KErrNone)
+		{
+		aMessage.WriteL(1,TPckgBuf<TBool>(ETrue));
+		}
+	else
+		{
+		aMessage.WriteL(1,TPckgBuf<TBool>(EFalse));
+		}
+	return KErrNone;
+	}
+
+
+TInt CSmlTestUtilsSession::DoSetReadOnlyL(const RMessage2& aMessage)
+	{
+	TBuf<100> srcpath;
+	aMessage.ReadL(0, srcpath);
+	TUint attMask;
+	TPckgBuf<TUint> temp;
+	aMessage.ReadL(1, temp);
+	attMask=temp();
+	TInt ret = iFs.SetAtt(srcpath,attMask,KEntryAttReadOnly);
+	return ret;	
+	}
+	
+	
+TInt CSmlTestUtilsSession::DoGetAttL( const RMessage2& aMessage )
+	{
+	TFileName nameBuf;
+	TUint attributes = 0;
+	aMessage.ReadL( 0, nameBuf );
+	TInt err = iFs.Att( nameBuf, attributes );	
+	if ( KErrNone == err )
+		{
+		aMessage.WriteL( 1, TPckgBuf<TInt>(attributes) );
+		}
+	return err;
+	}
+
+
+TInt CSmlTestUtilsSession::DoSetAttL( const RMessage2& aMessage )
+	{
+	
+	TFileName nameBuf;
+	aMessage.ReadL( 0, nameBuf );
+	TUint setAttMask = *(TUint*)aMessage.Ptr1();
+	TUint clearAttMask = *(TUint*)aMessage.Ptr2();
+	TInt err = iFs.SetAtt( nameBuf, setAttMask, clearAttMask );
+	return err;
+	}
+	
+	
+/**
+  Handle an error from CMySession::ServiceL()
+  A bad descriptor error implies a badly programmed client, so panic it;
+  otherwise use the default handling (report the error to the client)
+*/
+void CSmlTestUtilsSession::ServiceError(const RMessage2& aMessage,TInt aError)
+	{
+	if (aError==KErrBadDescriptor)
+		PanicClient(aMessage,ETestPanicBadDescriptor);
+	CSession2::ServiceError(aMessage,aError);
+	}
+
+
+TInt CSmlTestUtilsSession::DoCopyDirectoryL(const RMessage2& aMessage)
+	{
+	TBuf<100> source;
+	aMessage.ReadL(0, source);
+	TBuf<100> target;
+	aMessage.ReadL(1, target);
+	TInt ret = iFileMan->Copy(source,target, CFileMan::ERecurse);
+	return ret;		
+	}
+
+
+/**
+  Initiate server exit when the timer expires
+*/
+void CShutdown::RunL()
+	{ // this implementation of this method does not leave but further derived implementations may if they choose
+	CActiveScheduler::Stop();
+	}
+
+
+CServer2* CSmlTestUtilsServer::NewLC()
+	{
+	CSmlTestUtilsServer* self=new(ELeave) CSmlTestUtilsServer;
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+
+/**
+  2nd phase construction - ensure the timer and server objects are running
+*/
+void CSmlTestUtilsServer::ConstructL()
+	{
+	StartL(KTestServerName);
+	iShutdown.ConstructL();
+	// ensure that the server still exits even if the 1st client fails to connect
+	iShutdown.Start();
+	}
+
+
+/**
+  Cretae a new client session. This should really check the version number.
+*/
+CSession2* CSmlTestUtilsServer::NewSessionL(const TVersion&,const RMessage2&) const
+	{
+	return new(ELeave) CSmlTestUtilsSession();
+	}
+
+
+/**
+  A new session is being created. Cancel the shutdown timer if it was running
+*/
+void CSmlTestUtilsServer::AddSession()
+	{
+	++iSessionCount;
+	iShutdown.Cancel();
+	}
+
+
+/**
+  A session is being destroyed. Start the shutdown timer if it is the last session.
+*/
+void CSmlTestUtilsServer::DropSession()
+	{
+	if (--iSessionCount==0)
+		{
+		iShutdown.Start();
+		}
+	}
+	
+
+TInt CSmlTestUtilsSession::DoChangeFilePermissionL(const RMessage2& aMessage)
+	{
+	TInt ret(0);
+	TRequestStatus status;
+	TTime time((TInt64)0); 
+	// lint warns of custodial pointer (fileman) not being freed,
+	// which is done via the cleanup stack, hence disabled here
+	//lint -esym(429,fileman)
+	CFileMan* fileman = CFileMan::NewL (iFs);
+	CleanupStack::PushL(fileman);
+	TBuf<100> path;
+	aMessage.ReadL(0, path);
+	ret = fileman->Attribs(path,KEntryAttNormal,KEntryAttReadOnly, time,0,status);
+	User::WaitForRequest(status); 
+	ret = status.Int(); 
+	CleanupStack::PopAndDestroy(); 
+	return ret;	
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/src/appfwk_test_utils_server_main.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,76 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code 
+*/
+
+
+#include "appfwk_test_utils_server.h"
+#include "appfwk_test_utils.h"
+
+
+
+/**
+  Perform all server initialisation, in particular creation of the scheduler and server and then run the scheduler
+*/
+static void RunServerL()
+	{
+	// create and install the active scheduler we need
+	CActiveScheduler* s = new(ELeave) CActiveScheduler;
+	CleanupStack::PushL(s);
+	CActiveScheduler::Install(s);
+
+	// create the server (leave it on the cleanup stack)
+	CSmlTestUtilsServer::NewLC();
+
+	// naming the server thread after the server helps to debug panics
+	User::LeaveIfError(RThread::RenameMe(KTestServerName));
+
+	// Initialisation complete, now signal the client
+	RProcess::Rendezvous(KErrNone);
+
+	// Ready to run
+	CActiveScheduler::Start();
+
+	// Ready to exit. Cleanup the server and scheduler
+	CleanupStack::PopAndDestroy(2);
+	}
+	
+
+/**
+  Main entry-point for the server thread
+*/
+static TInt RunSmlTestServer()
+	{
+	__UHEAP_MARK;
+	CTrapCleanup* cleanup = CTrapCleanup::New();
+	TInt r = KErrNoMemory;
+	if (cleanup)
+		{
+		TRAP(r, RunServerL());
+		delete cleanup;
+		}
+	__UHEAP_MARKEND;
+	return r;
+	}
+
+TInt E32Main()
+	{
+	return RunSmlTestServer();
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/src/appfwk_tmsteststep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,363 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+/**
+@file
+@test
+@internalComponent
+*/
+
+#include <bautils.h>
+#include <test/appfwk_tmsteststep.h>
+#include "f32file.h"
+#include <e32std.h>
+
+
+_LIT(KLogLocation,"c:\\logs\\testexecute\\TMS_Log.txt");
+_LIT8(KLogPass," PASS");
+_LIT8(KLogFail," FAIL");
+_LIT8(KRet, "\n");
+_LIT8 (KBlankSpace," ");
+
+// Special notes about using this class
+//
+// In any derived CTxxxxStep class after the __CONSTRUCT_STEP__(xxxx) macro (generally at the end of the file)
+// if the methods void CTxxxxxStep::TestSetupL() and void CTxxxxStep::TestClose() do not exist
+// they should be added as follows :-
+//
+//	void CTxxxxStep::TestSetupL()
+//		{
+//		MultipleResultsForSameID(ETrue); // true or false set on test requirements
+//		}
+//
+//	void CTxxxxStep::TestClose()
+//		{
+//		iTestStepNames.Close();
+//		}
+//
+// if the methods do already exist add the MultipleResultsForSameID and iTestStepNames.Close lines to them respectivly
+//
+
+TInt CTmsTestStep::ReadNextLineL( RFile &aFile, TDes8 &aLine )
+// read a cr/lf limiited line from the file,  assumes file is a valid file
+// and that aLine is of sufficient length to hold the data
+	{
+	aLine.Zero();
+	TBuf8<1> chr;
+	for (;;)
+		{
+		aFile.Read(chr);
+		if ( chr.Length() == 0 )
+			{
+			break;
+			}
+		if (chr.CompareF(KRet) == 0)
+			{
+			// got a line, exctract newline as well
+			aFile.Read(chr);
+			break;
+			}
+		else
+			{
+			aLine.Append(chr);
+			}
+		}
+
+	return aLine.Length();
+	}
+
+void CTmsTestStep::CleanUpAndWriteResults()
+	{
+	RFs fs;
+	fs.Connect();
+	CleanupClosePushL(fs);
+
+	iTestStepPositions.Close();
+	if (iTestStepNames != NULL)
+		{
+		iTestStepNames->Reset();
+		delete iTestStepNames;
+		iTestStepNames = NULL;
+
+		if (BaflUtils::FolderExists(fs, KLogLocation))
+		   	{
+			RFile file;
+			if (BaflUtils::FileExists( fs, KLogLocation ))
+				{
+				// open the temporary tms log
+				TInt err = file.Open( fs, KLogLocation, EFileRead|EFileShareAny);
+			    if(err == KErrInUse)
+			    	{
+			       	CleanupStack::PopAndDestroy();
+			       	return;
+				   	}
+			    if (err == KErrNone)
+			    	{
+			    	CleanupClosePushL(file);
+			    	TBuf8<256> line;
+			    	TBuf<250> testID;
+			    	TBuf<6> testResult;
+			    	// get a line from the temporary tms log
+			    	while (CTmsTestStep::ReadNextLineL(file,line))
+			    		{
+			    		TInt blankPos = line.Find(KBlankSpace);
+
+			    		// get the ID from the line
+			    		testID.Copy(line.Left(blankPos));
+
+			    		//get the pass or fail result from the line
+			    		testResult.Copy(line.Mid(blankPos+1,4));
+
+			    		// print into the standard tef log the id and the result in the correct format
+			    		// so that they are correctly parsed into the TMS csv file
+			    		INFO_PRINTF2(_L("START_TESTCASE %S"),&testID);
+			    		INFO_PRINTF2(_L("Line = 1 Command = START_TESTCASE %S"),&testID);
+			    		INFO_PRINTF2(_L("END_TESTCASE %S"),&testID);
+			    		INFO_PRINTF3(_L("Line = 1 Command = END_TESTCASE %S ***TestCaseResult = %S"),&testID,&testResult);
+			    		}
+			    	CleanupStack::PopAndDestroy();
+			    	}
+			    // remove the temporary tms log
+			    fs.Delete(KLogLocation);
+			    }
+			}
+		}
+	CleanupStack::PopAndDestroy();
+	}
+
+EXPORT_C CTmsTestStep::CTmsTestStep() : iStepPassFail(ETrue), iShowMultipleResults(EFalse)
+	{
+	iCurrentTestStepName.Copy(KUnknownSYMTestCaseIDName);
+	iTestStepNames=new CDesCArrayFlat(1);
+	RFs fs;
+	fs.Connect();
+	CleanupClosePushL(fs);
+	if (BaflUtils::FolderExists(fs, KLogLocation))
+		   {
+		   if (BaflUtils::FileExists( fs, KLogLocation ))
+			   {
+			   // remove the temporary tms log
+			   fs.Delete(KLogLocation);
+			   }
+		   }
+	CleanupStack::PopAndDestroy();
+	}
+
+EXPORT_C void CTmsTestStep::CloseTMSGraphicsStep()
+	{
+	CTmsTestStep::CleanUpAndWriteResults();
+
+	}
+
+EXPORT_C CTmsTestStep::~CTmsTestStep()
+	{
+	CTmsTestStep::CleanUpAndWriteResults();
+	}
+
+// writes out the results of a test that has just been executed to the log file(s)
+// the first time a test result is written it is also added to the iTestStepNames array.
+// This array is then checked on subsequent tests to see if the test has already been written to log
+// if it has and multiple test results are not wanted further logging of this test is omitted.
+
+
+void CTmsTestStep::DebugLogL(const TDesC8& aTestCaseID, const TDesC8& aResult, TInt aPos = -1)
+	{
+    TInt pos = 0;
+	RFs fs;
+	fs.Connect();
+	CleanupClosePushL(fs);
+
+	if (BaflUtils::FolderExists(fs, KLogLocation))
+	   {
+		RFile file;
+		if (!BaflUtils::FileExists( fs, KLogLocation ))
+			{
+		    User::LeaveIfError( file.Create( fs, KLogLocation, EFileWrite|EFileShareAny));
+			}
+		else
+			{
+		    TInt err = file.Open( fs, KLogLocation, EFileWrite|EFileShareAny);
+		    if(err == KErrInUse)
+			   {
+		       CleanupStack::PopAndDestroy();
+			   return;
+			   }
+		    if (aPos == -1)
+		    	file.Seek(ESeekEnd, pos);
+		    else
+		    	file.Seek(ESeekCurrent, aPos);
+	        }
+			file.Write(aTestCaseID);
+			file.Write(aResult);
+			file.Write(_L8("\r\n "));
+			file.Flush();
+			file.Close();
+	   }
+		CleanupStack::PopAndDestroy();
+	}
+
+TInt CTmsTestStep::DebugLogPosL()
+	{
+    TInt pos = 0;
+    TInt pos1 = 0;
+	RFs fs;
+	fs.Connect();
+	CleanupClosePushL(fs);
+
+	if (BaflUtils::FolderExists(fs, KLogLocation))
+	   {
+		RFile file;
+		if (!BaflUtils::FileExists( fs, KLogLocation ))
+			{
+		    User::LeaveIfError( file.Create( fs, KLogLocation, EFileWrite|EFileShareAny));
+			}
+		else
+			{
+		    TInt err = file.Open( fs, KLogLocation, EFileWrite|EFileShareAny);
+		    if(err == KErrInUse)
+			   {
+		       CleanupStack::PopAndDestroy();
+			   return KErrGeneral;
+			   }
+		    file.Seek(ESeekEnd, pos);
+		    file.Seek(ESeekCurrent, pos1);
+		    file.Close();
+	        }
+
+
+	   }
+	   CleanupStack::PopAndDestroy();
+	   return pos1;
+	}
+
+EXPORT_C void CTmsTestStep::RecordTestResultL()
+	{
+	TBuf<64> unknownTMSID(KUnknownSYMTestCaseIDName);
+	TBuf8<64> unknownID8;
+	unknownID8.Copy(unknownTMSID);
+
+	TBuf<64> undefinedTMSID(KUndefinedSYMTestCaseIDName);
+	TBuf8<64> undefinedID8;
+	undefinedID8.Copy(undefinedTMSID);
+
+	TBuf<64> notaTMSID(KNotATestSYMTestCaseIDName);
+	TBuf8<64> notaID8;
+	notaID8.Copy(notaTMSID);
+
+	TBuf<128> currentTSName;
+	currentTSName.Copy(iCurrentTestStepName);
+
+	if (iCurrentTestStepName.Compare(unknownID8) == 0) 	// unknown tests logged to warning file
+		{
+		INFO_PRINTF1(_L("ID NOT SET"));
+		}
+	else if (iCurrentTestStepName.Compare(undefinedID8) == 0)	// undefined tests logged to warning file
+		{
+		INFO_PRINTF1(_L("ID UNDEFINED"));
+		}
+	else if (iCurrentTestStepName.Compare(notaID8) == 0)
+		{
+		}
+	else if(iShowMultipleResults)	// multiple results for same test should be logged
+		{
+		if( iStepPassFail == EFalse)
+			{
+			INFO_PRINTF2(_L("%S FAILED"), &currentTSName );
+			DebugLogL(iCurrentTestStepName, KLogFail);
+			}
+		else
+			{
+			INFO_PRINTF2(_L("%S PASSED"), &currentTSName );
+			DebugLogL(iCurrentTestStepName, KLogPass);
+			}
+		}
+	else if (!iShowMultipleResults)
+		{
+		TInt existsInArray;
+		if (iTestStepNames == NULL)
+			iTestStepNames=new CDesCArrayFlat(1);
+
+		if( iTestStepNames->Find(currentTSName,existsInArray) == 0)
+			{
+			if( iStepPassFail == EFalse)
+				{
+					INFO_PRINTF2(_L("%S FAILED"), &currentTSName );
+					DebugLogL(iCurrentTestStepName, KLogFail, iTestStepPositions[existsInArray] );
+				}
+			}
+		else
+			{
+			iTestStepPositions.AppendL(DebugLogPosL());
+			iTestStepNames->AppendL(currentTSName);
+
+			if( iStepPassFail == EFalse)
+				{
+					INFO_PRINTF2(_L("%S FAILED"), &currentTSName );
+					DebugLogL(iCurrentTestStepName, KLogFail );
+				}
+				else
+				{
+					INFO_PRINTF2(_L("%S PASSED"), &currentTSName );
+					DebugLogL(iCurrentTestStepName, KLogPass);
+				}
+			}
+		}
+	}
+
+// sets the name and pass/fail state of the individual test that is about to be executed
+EXPORT_C void CTmsTestStep::SetTestStepID(const TDesC& aStepName)
+	{
+	iCurrentTestStepName.Copy(aStepName);
+	iStepPassFail = ETrue;
+	}
+
+EXPORT_C void CTmsTestStep::SetOverallTestStepID(const TDesC& aStepName)
+	{
+	iCurrentTestStepName.Copy(aStepName);
+	iStepPassFail = ETrue;
+	if (!TestStepResult() == EPass)
+				TEST(EFalse);
+	}
+
+// needed for the overide of CTGraphicsBase::testBooleanTrue to allow us to set
+// whether an individual test has passed or failed
+EXPORT_C void CTmsTestStep::MQCTest(TBool aCondition, const TText8* aFile, TInt aLine)
+	{
+	if(!aCondition)
+		{
+		iStepPassFail = EFalse;
+		}
+	testBooleanTrue( aCondition, aFile, aLine, ETrue);
+	}
+
+// needed for the overide of CTGraphicsBase::testBooleanTrue to allow us to set
+// whether an individual test has passed or failed
+EXPORT_C void CTmsTestStep::MQCTestL(TBool aCondition, const TText8* aFile, TInt aLine)
+	{
+	if(!aCondition)
+		{
+		iStepPassFail = EFalse;
+		}
+	testBooleanTrueL( aCondition, aFile, aLine, ETrue);
+	}
+
+// sets whether tests with the same @SYMTestCaseID xxxxxx name are printed multiple times in the log files
+EXPORT_C void CTmsTestStep::MultipleResultsForSameID(TBool aShowMultipleResults)
+	{
+	iShowMultipleResults = aShowMultipleResults;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/src/scripts/emulator/mulscreens_sw_test.cmd	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,87 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@echo off
+setlocal
+
+set OPT_CT=
+if /i "%2"=="changetracking" set OPT_CT=1
+if /i "%1"=="uninstall" goto :uninstall
+if /i "%1"=="install" goto :install
+goto :done
+
+rem *** START STANDARD FILE-REPLACEMENT FUNCTIONS ***
+:replace
+	set DST=%1
+	set SRC=%2
+	echo INFO: Replacing %DST% with %SRC%
+	copy /y %DST% %DST%.original >NUL
+	if defined SRC copy /y %SRC% %DST% >NUL
+	goto :EOF
+:restore
+	echo INFO: Restoring %1 
+	if not exist %1.original echo ERROR: %1.original does not exist
+	copy /y %1.original %1 >NUL
+	del %1.original >NUL
+	goto :EOF
+:replace_em
+	if defined EMULATOR_DATA_DIR (
+		call :replace %EMULATOR_DATA_DIR%\%1 %2
+	) else (
+		call :replace %EPOCROOT%epoc32\release\winscw\udeb\%1 %2
+		call :replace %EPOCROOT%epoc32\release\winscw\urel\%1 %2
+	)
+	goto :EOF
+:replace_em2
+	if defined EMULATOR_DATA_DIR (
+		call :replace %EMULATOR_DATA_DIR%\%1 %EMULATOR_DATA_DIR%\%2
+	) else (
+		call :replace %EPOCROOT%epoc32\release\winscw\udeb\%1 %EPOCROOT%epoc32\release\winscw\udeb\%2
+		call :replace %EPOCROOT%epoc32\release\winscw\urel\%1 %EPOCROOT%epoc32\release\winscw\urel\%2
+	)
+	goto :EOF
+:restore_em
+	if defined EMULATOR_DATA_DIR (
+		call :restore %EMULATOR_DATA_DIR%\%1
+	) else (
+		call :restore %EPOCROOT%epoc32\release\winscw\udeb\%1
+		call :restore %EPOCROOT%epoc32\release\winscw\urel\%1
+	)
+	goto :EOF
+rem *** END STANDARD FILE-REPLACEMENT FUNCTIONS ***
+
+
+:install
+	echo Replacing files with test versions
+	set WSINI_TEST=z\appfwk\test\mulscreens.ini
+	if defined OPT_CT set WSINI_TEST=z\appfwk\test\mulscreens_changetracking.ini
+	call :replace_em2 z\system\data\wsini.ini   %WSINI_TEST%
+	call :replace_em2 z\resource\data\wsini.ini %WSINI_TEST%
+	call :replace %EPOC_INI%
+	echo. >> %EPOC_INI%
+	echo _NewScreen_ >> %EPOC_INI%
+	echo ScreenWidth 640 >> %EPOC_INI%
+	echo ScreenHeight 240 >> %EPOC_INI%
+	goto :done
+
+
+:uninstall
+	call :restore_em z\system\data\wsini.ini
+	call :restore_em z\resource\data\wsini.ini
+	call :restore    %EPOC_INI%
+
+:done
+endlocal
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/uiftestfw/src/scripts/hardware/mulscreens_hw_test.cmd	Tue Aug 03 10:20:34 2010 +0100
@@ -0,0 +1,57 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@echo off
+
+
+set WSINI= %EPOCROOT%epoc32\data\z\system\data\wsini.ini
+set WSINI_BAK= %EPOCROOT%epoc32\data\z\system\data\wsini.bak
+set WSINI_TEST= %EPOCROOT%epoc32\data\z\appfwk\test\mulscreens.ini
+set WSINI_TEST_CHANGETRACKING= %EPOCROOT%epoc32\data\z\appfwk\test\mulscreens_changetracking.ini
+
+if /i "%1"=="uninstall" goto :uninstall
+
+if /i "%1"=="install" if /i "%2"=="changetracking" set CHANGETRACKING=on
+if defined CHANGETRACKING goto :install_changetracking
+if /i "%1"=="install" if not defined CHANGETRACKING goto :install
+if /i "%1"=="help" goto :help
+
+:help
+	echo.
+	echo Description:
+	echo This script substitutes in the wsini ini file to run multiple screens on the H4
+	echo reference platform. 
+	echo.It takes as a first argument "install or "uninstall"
+	echo.It can can also take "changetracking" as a second argument in order to use a wsini ini file 
+	echo that enables CHANGETRACKING
+goto :EOF
+
+:install
+echo Replacing WSINI.INI files with test versions.
+	if not exist %WSINI_BAK% if exist %WSINI% copy %WSINI% %WSINI_BAK% >NUL
+	if exist %WSINI% xcopy /r /y %WSINI_TEST% %WSINI% >NUL 
+goto :EOF
+
+:install_changetracking
+echo Replacing WSINI.INI files with test versions htat enable CHANGETRACKING.
+	if not exist %WSINI_BAK% if exist %WSINI% copy %WSINI% %WSINI_BAK% >NUL
+	if exist %WSINI% xcopy /r /y %WSINI_TEST_CHANGETRACKING% %WSINI% >NUL 
+goto :EOF
+
+:uninstall
+echo Restoring WSINI.INI files.
+	if exist %WSINI_BAK% copy %WSINI_BAK% %WSINI% >NUL
+	if exist %WSINI_BAK% del %WSINI_BAK% >NUL
+goto :EOF